过拟合和欠拟合
在模型评估与调整的过程中,往往会遇到“过拟合”或“欠拟合”的情况。如何有效地识别“过拟合”和“欠拟合”现象,并有针对性地进行模型调整,是不断改进算法模型的关键。采用多种方法、从多个角度降低“过拟合”和“欠拟合”的风险是模型优化需要考虑的。
泛化误差、偏差和方差
模型调优,第一步是要找准目标:我们要做什么?一般来说,这个目标是提升某个模型评估指标,比如对于随机森林来说,我们想要提升的是模型在未知数据上的准确率(由score或oob_score_来衡量)。找准了这个目标,我们就需要思考:模型在未知数据上的准确率受什么因素影响?常用来衡量模型在未知数据上的准确率的指标,叫做泛化误差(Genelization error)。
模型评估
在机器学习中,我们通常把样本分为训练集和测试集,训练集用于训练模型,测试集用于评估模型。在样本划分和模型验证的过程中,存在着不同的抽样方法和验证方法。我们应当熟知这些方法及其优缺点、以便能够在不同问题中挑选合适的评估方法。
集成学习
面对一个机器学习问题,通常有两种策略。一种是研发人员尝试各种模型,选择其中表现最好的模型做重点调参优化。这种策略类似于奥运会比赛,通过强强竞争来选拔最优的运动员,并逐步提高成绩。另一种重要的策略是集各家之长,如同贤明的君主广泛地听取众多谋臣的建议,然后综合考虑,得到最终决策。后一种策略的核心,是将多个分类器的结果统一成一个最终的决策。使用这类策略的机器学习方法统称为集成学习。其中的每个单独的分类器称为基分类器。 俗语说“三个臭皮匠,顶一个诸葛亮”,基分类器就类似于“臭皮匠”,而之前介绍的很多复杂模型可以认为是“诸葛亮”。即使单一一个“臭皮匠”的决策能力不强,我们有效地把多个“臭皮匠”组织结合起来,其决策能力很有可能超过“诸葛亮”。而如何将这些基分类器集成起来,就是本章要讨论的重点。集成学习不仅在学界的研究热度不减,在业界和众多机器学习竞赛中也有非常成功的应用。例如在Kaggle竞赛中所向披靡的XGBoost,就是成功应用集成学习思想的一个例子。