上周基本完成了数据预处理与特征选择的部分,并使用KNN和决策树这两个简单的模型达到了接近0.7的评分。本周主要从上次课提及的一些内容出发,学习一些更复杂的模型。
随机森林
随机森林是Bagging算法的一个特例,基分类器全部采用决策树。它随机选择一些特征并构建决策树,通过投票等策略综合随机森林中所有树对样本的预测结果,从而得到随机森林的预测结果。这是一种通过引入随机性并综合大量结果来降低方差,缓解单一决策树的过拟合问题的策略。
XGBoost
XGBoost是GBDT(梯度提升决策树)的一种实现。GBDT算法使用多颗决策树,综合所有树的结论,大大缓解了单一决策树易出现的过拟合问题。GBDT中,每棵树学习的是之前所有树的残差(即预测值与真实值的偏差),这一思想与传统的Boosting类似,使模型能够更好地针对错误进行学习。XGBoost作为GBDT的一种实现,加入了一些优化,比如加入L2正则项和叶子节点权重,有利于降低模型方差,同时通过把含缺失值的样本划分到左、右子树并比较,可实现自动处理缺失特征。
两种模型都用到了多棵决策树,相比之前的单一决策树,可有效降低方差,缓解过拟合问题。此外,XGBoost还通过对残差的学习降低偏差,提升对错误样本的分类性能。在下周的实践中,我计划找到相应的库,并分别使用这两种模型,观察性能的提升,争取将score提高到0.7以上。
本文介绍了两种用于提升模型性能的方法——随机森林和XGBoost。随机森林通过构建多个决策树并综合其预测结果来降低方差;XGBoost作为一种梯度提升决策树的实现,通过学习残差进一步降低偏差。两者都能有效缓解过拟合问题。
682





