目录
GridSearchCV 是一个用于超参数调优的工具,它在给定的参数网格中执行交叉验证,以确定最佳的参数组合。通过穷举搜索(exhaustive search)来寻找最佳参数,即尝试所有可能的参数组合,并使用交叉验证来评估每个参数组合的性能。
1)定义要调优的模型,包括模型类型和初始参数。
2)定义要搜索的参数网格,即每个参数的可能取值组成的字典或列表。
3)创建GridSearchCV对象,将模型、参数网格和评估指标等作为参数传入。
5)调用fit方法,GridSearchCV会执行交叉验证,遍历参数网格中的所有组合,并在每个组合上评估模型性能。
6)根据交叉验证的结果,返回具有最佳性能的参数组合。
- from sklearn.model_selection import GridSearchCV
- from sklearn.svm import SVC
-
- # 定义要调优的模型
- model = SVC()
-
- # 定义参数网格
- param_grid = {
- 'C': [0.1, 1, 10],
- 'kernel': ['linear', 'rbf'],
- 'gamma': [0.1, 1, 10]
- }
-
- # 创建GridSearchCV对象
- grid_search = GridSearchCV(model, param_grid, cv=5)
-
- # 执行超参数搜索
- grid_search.fit(X, y)
-
- # 输出最佳参数组合和最佳得分
- print("Best parameters:", grid_search.best_params_)
- print("Best score:", grid_search.best_score_)
在上述示例中,我们使用GridSearchCV来调优支持向量机模型(SVC)。我们定义了一个参数网格,其中包含了三个参数(C、kernel和gamma)的不同取值。cv参数指定了交叉验证的折数。通过调用fit方法,GridSearchCV会执行交叉验证和参数搜索。在搜索完成后,可以通过best_params_属性获取最佳参数组合,并通过best_score_属性获取最佳得分。
GridSearchCV 可以自动化地搜索最佳参数组合,减少了手动调优的工作量,并且提供了对模型性能的可靠评估。然而,由于需要尝试所有可能的参数组合,它可能会在参数空间较大时变得计算密集。因此,在使用GridSearchCV 时需要注意参数网格的大小和计算资源的限制。