自动化选择超参数
在不为成百上千个模型手写成百上千行代码的情况下找到关注的最佳超参数,是一个能显著提升效率的做法,对您今后的机器学习建模大有裨益。
对 GBM 算法而言,一个重要的超参数是学习率。对于当前问题,哪一个学习率更好?通过编写循环遍历若干候选值、汇总并查看结果,您就能找到最佳值。
可尝试的学习率包括 0.001、0.01、0.05、0.1、0.2 和 0.5。
您已经拥有 X_train、X_test、y_train 与 y_test 数据集,且已为您导入 GradientBoostingClassifier。
本练习是课程的一部分
Python 中的超参数调优
练习说明
- 创建一个
learning_rates列表来存放学习率,并创建一个results_list来保存预测的准确率分数。 - 编写循环:针对上述每个学习率构建一个 GBM 模型,并为每个模型生成预测。
- 将学习率与对应的准确率分数保存到
results_list。 - 将该结果列表转换为 DataFrame 并打印输出。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# Set the learning rates & results storage
learning_rates = ____
results_list = ____
# Create the for loop to evaluate model predictions for each learning rate
for learning_rate in ____:
model = ____(learning_rate=____)
predictions = ____.fit(____, ____).predict(____)
# Save the learning rate and accuracy score
results_list.append([____, accuracy_score(y_test, ____)])
# Gather everything into a DataFrame
results_df = pd.DataFrame(____, columns=['learning_rate', 'accuracy'])
print(results_df)