设置 GridSearch 的参数
超参数是函数内部使用的参数。例如,max_depth 或 min_samples_leaf 是 DecisionTreeClassifier() 函数的超参数。超参数调优是指测试不同的超参数取值,以找到最优的那组:也就是在您的目标下能给出最佳预测的取值。在 sklearn 中,您可以使用 GridSearch 来测试不同的超参数组合。更进一步,您可以使用 GridSearchCV() 在一个函数中同时测试不同组合并执行交叉验证!
在本练习中,您将准备要用于测试的 max_depth 和 min_samples_leaf 的不同取值。随后,您会把这些值放入一个字典中,因为 GridSearchCV() 需要这样传参:
- 字典的键是超参数名称
- 字典的值是您想要测试的属性(超参数取值)
为了避免手动逐一列出,您将使用 range() 函数,它可以按步长生成一系列数值。例如,range(1, 10, 2) 会生成一个列表,包含从 1(包含)到 10(不包含),步长为 2 的数值。最终结果是 [1, 3, 5, 7, 9]。
本练习是课程的一部分
HR Analytics:用 Python 预测员工流失
练习说明
- 参考上面的示例格式,生成最大深度从 5 到 20、步长为 1 的取值
- 用同样的方法,生成最小样本数从 50 到 450、步长为 50 的取值
- 使用刚创建的变量,指定要尝试的
max_depth和min_samples_leaf的取值,创建对应的字典
交互式实操练习
通过完成这段示例代码来试试这个练习。
# Generate values for maximum depth
depth = [i for i in ____(5,21,1)]
# Generate values for minimum sample size
samples = [i for i in range(____,500,____)]
# Create the dictionary with parameters to be checked
parameters = dict(max_depth=depth, min_samples_leaf=____)