优化超参数时,首先的选中影响最重要的那些下手,因为超参数有很多,每个都优化的话会花费大量时间,并且得理解这些超参数是怎么影响模型的
下面是一些超参数优化的库
我们大概可以把超参数分为两种类型,一种是当值越大时,对模型限制越严格,也就是减低过拟合的可能,一种是值越大时,是模型拟合能力越强,越容易过拟合
tree-based models
max_depth [default=6]:数的最大深度,值越大,树越复杂,默认值6,典型值3-10
subsample[default=1]:采样率,0到1之间,选取样本的一定百分比作为训练集,如果设成0.8,即随机选择样本80%训练
colsample_bytree [default=1]:构造每棵树时,特征采样率,即选取多少特征
colsample_bylevel [default=1]:每执行一次分裂,列采样率,这个一般很少用
min_child_weight [default=1]:定义了一个子集的所有观察值的最小权重和,控制树分裂到某个程度就不再分裂,这个可以用来减少过拟合,但是过高的值也会导致欠拟合,因此可以通过CV来调整min_child_weight
lambda [default=1, alias: reg_lambda]:L2正则化
alpha [default=0, alias: reg_alpha]:L1正则化,这个主要是用在数据维度很高的情况下,可以提高运行速度
eta [default=0.3, alias: learning_rate]:学习率,典型值一般设置为:0.01-0.2
num_round:运行训练的轮数
seed [default=0]:随机数的种子,缺省值为0,可以用于产生可重复的结果(每次取一样的seed即可得到相同的随机划分)
随机森林:
神经网络:
Linear models:
Tips:
Practical guide
Pipeline guide