开始使用免费开始使用

绘制学习曲线

当我们想为某个超参数测试很多不同的取值时,直接用 DataFrame 展示会不太直观。此前您学过一个很实用的分析技巧:使用"学习曲线"来直观展示调整某个超参数的增减对最终结果的影响。

这一次,您将不只测试少量学习率,而是测试很多取值,以便在更大的范围内观察该超参数的影响。NumPy 中有个有用的函数 np.linspace(start, end, num),可以在您指定的区间(startend)内,均匀生成给定数量(num)的取值。

您将可以使用数据集 X_trainX_testy_trainy_test

本练习是课程的一部分

Python 中的超参数调优

查看课程

练习说明

  • 创建一个包含 30 个学习率的列表,这些取值在 0.01 到 2 之间均匀分布。
  • 按照上一道练习的思路编写循环,但这次只将准确率分数保存到列表中。
  • 绘制学习率与准确率之间的关系图。

交互式实操练习

通过完成这段示例代码来试试这个练习。

# Set the learning rates & accuracies list
learn_rates = np.linspace(____, ____, num=____)
accuracies = []

# Create the for loop
for learn_rate in learn_rates:
  	# Create the model, predictions & save the accuracies as before
    model = GradientBoostingClassifier(learning_rate=____)
    predictions = model.fit(____, ____).predict(____)
    accuracies.append(accuracy_score(y_test, ____))

# Plot results    
plt.plot(____, ____)
plt.gca().set(xlabel='learning_rate', ylabel='Accuracy', title='Accuracy for different learning_rates')
plt.____
编辑并运行代码