网格搜索
在 sklearn 中,您可以通过提供不同的输入参数来进行超参数调优,其中每个参数都可以借助 numpy 的函数来编码。一种穷举查看由 param_grid 指定的所有超参数组合的方法称为网格搜索。在本练习中,您将使用网格搜索来遍历示例随机森林分类器的超参数,并以 ROC 曲线的 AUC 作为评分函数。
X_train、y_train、X_test、y_test 已在您的工作区中可用。pandas 作为 pd、numpy 作为 np,以及 sklearn 也已可用。此外,来自 sklearn.model_selection 的 GridSearchCV() 也可用。
本练习是课程的一部分
用 Python 预测 CTR 的机器学习实战
练习说明
- 为
n_estimators和max_depth中的每个超参数创建取值列表。 - 创建一个随机森林分类器。
- 设置网格搜索以遍历所有超参数组合。
- 使用
.best_score_打印最佳 AUC 分数,并使用.best_estimator_打印得到该分数的最佳估计器。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# Create list of hyperparameters
n_estimators = [10, 50]
max_depth = [5, 20]
param_grid = {'n_estimators': ____, 'max_depth': ____}
# Use Grid search CV to find best parameters
print("starting RF grid search.. ")
rf = ____()
clf = ____(estimator = rf, param_grid = ____, scoring = 'roc_auc')
clf.fit(X_train, y_train)
print("Best Score: ")
print(clf.____)
print("Best Estimator: ")
print(clf.____)