11.13 可视化超参数值的效果
问题描述
希望了解超参数值的变化对模型性能的影响。
解决方案
画出验证曲线(见下页图):
讨论
大多数算法(包括本书所讲的许多算法)都包含超参数,而且必须在模型训练开始之前就选择好。例如,随机森林分类器创建决策树的“森林”,每个决策树对样本的预测分类投票。随机森林分类器中有一个超参数是森林中树的数量(Number of Trees)。大多数情况下,超参数的值是在模型选择阶段(参见第12章)确定的。但是,将模型性能与超参数值之间的关系画出来偶尔也很有用。上述解决方案中绘制的图展示了随着树的数量增加,一个随机森林分类器在训练集上和交叉验证时的准确率的变化。当树的数量较少时,训练集和交叉验证的准确率分数都很低,表明该模型欠拟合。当树的数量增加到250,两个准确率分数(Accuracy Score)都没什么变化,表明使用更多计算资源训练大规模随机森林可能并不能带来很高价值。
在scikit-learn中,我们可以使用validation_curve计算验证曲线,它包含3个重要参数:
● param_name 是需要变化的超参数的名字。
● param_range 是超参数取值的区间。
● scoring 是模型的评估指标。
延伸阅读
● scikit-learn文档:验证曲线(http://bit.ly/2FuwYFG)
本书评论