如上周周报所述,本周在之前的数据与处理和特征工程的基础上,用更复杂的模型代替KNN和决策树,并观察分类性能的提升。主要选用的是XGBoost和随机森林两个模型,理论部分在上周的周报中有提及,本次主要说明实际调参情况及结果分析。使用XGBoost模型获得的最好结果如下(相比两周前用决策树做到的0.6978有明显提升):
对XGBoost,我主要调整了一下4个参数:
max_depth=6, 类似决策树的最大深度,过大易过拟合,过少易欠拟合,一般为5-10
learning_rate=0.1, 学习率,即梯度下降的步长,与收敛速度和鲁棒性(或陷入局部最优的可能性)有关
n_estimators=300, 基分类器的数目
subsumple=0.8, 控制每棵树随机采样的比例,越小越保守,过大易过拟合
上述参数的具体取值根据一般经验及我自己的尝试确定。
随机森林模型的分类效果不如XGBoost好,且其运行速度较慢(可能是因为各决策树的计算没有很好地并行起来,且像Boost算法一样未考虑对残差做进一步学习),我使用的参数选择如下:
criterion="entropy",
n_estimators=500, 基分类器(决策树)数量
max_depth=6, 最大深度
min_samples_split=4, 最小分裂样本数,控制过拟合
min_samples_leaf=2, 最小叶节点样本数,控制过拟合
max_features=6, 使用的最大特征数,过大易过拟合,过少易欠拟合