算法模型构建流程
模型训练
模型训练是通过不断训练、验证和调优,让模型达到最优的一个过程。
那怎么理解这个模型最优呢?
还是以用户流失预测模型为例。
首先你要搞清楚一个概念:决策边界,你可以把它简单理解为我们每天生活当中的各种决策。比如,当华为 Mate 降价到 5000 元的时候我就打算购买,那这种情况下我的决策边界就是 5000 元,因为大于 5000 元的时候我不会购买,只有小于 5000 元时我会选择购买。
那放到预测用户流失这个案例中,我们模型训练的目标就是,在已知的用户中用分类算法找到一个决策边界,然后再用决策边界把未知新用户快速划分成流失用户或者是非流失用户。
不同算法的决策边界也不一样,比如线性回归和逻辑回归这样的线性算法,它们的决策边界也是线性的,长得像线条或者平面,而对于决策树和随机森林这样的非线性算法,它们的决策边界也是非线性是一条曲线。
因此,决策边界是判断一个算法是线性还是非线性最重要的标准。
上图就是三种算法的决策边界。决策边界的形式无非就是直线和曲线两种,并且这些曲线的复杂度(曲线的平滑程度)和算法训练出来的模型能力息息相关。
一般来说决策边界曲线越陡峭,模型在训练集上的准确率越高,但陡峭的决策边界可能会让模型对未知数据的预测结果不稳定。
这就类似于我们投资股票,低收益低风险,高收益高风险,所以我们一般都会平衡风险和收益,选择出最合适的平衡点。
对于模型训练来说,这个风险和收益的平衡点,就是拟合能力与泛化能力的平衡点。
拟合能力代表模型在已知数据上表现得好坏,泛化能力代表模型在未知数据上表现得好坏。
它们之间的平衡点,就是我们通过不断地训练和验证找到的模型参数的最优解,因此,这个最优解绘制出来的决策边界就具有最好的拟合和泛化能力。这是模型训练中'最优'的意思,也是模型训练的核心目标,我们一定要记住。
具体到我们这个流失用户预测的例子上,模型训练的目的就是找到一个平衡点,让模型绘制出的决策边界,能够最大地区分流失用户和非流失用户,也就是预测流失用户的准确率最高,并且还兼顾了模型的稳定性。
一般情况下,算法工程师会通过交叉验证(Cross Validation)的方式,找到模型参数的最优解。
模型验证
刚才我们说了,模型训练的目标是找到拟合能力和泛化能力的平衡点,让拟合和泛化能力同时达到最优。那这该怎么做呢?
如果算法工程师想让拟合能力足够好,就需要构建一个复杂的模型对训练集进行训练,可越复杂的模型就会越依赖训练集的信息,就很可能让模型在训练集上的效果足够好,在测试集上表现比较差,产生过拟合的情况,最终导致模型泛化能力差。
这个时候,如果算法工程师想要提高模型的泛化能力,就要降低模型复杂度,减少对现有样本的依赖,但如果过分地减少对训练样本的依赖,最终也可能导致模型出现欠拟合的情况。
因此,算法工程师需要花费大量的时间去寻找这个平衡点,而且很多时候我们认为的最优,未必是真正的最优。这个时候,模型验证就起到了关键性的作用。
模型验证主要是对待验证数据上的表现效果进行验证,一般是通过模型的性能指标和稳定性指标来评估。
首先是模型性能。模型性能可以理解为模型预测的效果,你可以简单理解为'预测结果准不准',它的评估方式可以分为两大类:分类模型评估和回归模型评估。
分类模型解决的是将一个人或者物体进行分类,例如在风控场景下,区分用户是不是'好人',或者在图像识别场景下,识别某张图片是不是包含人脸。
对于分类模型的性能评估,我们会用到包括召回率、F1、KS、AUC 这些评估指标。
而回归模型解决的是预测连续值的问题,如预测房产或者股票的价格,所以我们会用到方差和 MSE 这些指标对回归模型评估。
对于产品经理来说,我们除了要知道可以对模型性能进行评估的指标都有什么,还要知道这些指标值到底在什么范围是合理的。
虽然,不同业务的合理值范围不一样,我们要根据自己的业务场景来确定指标预期,但我们至少要知道什么情况是不合理的。
其次是模型的稳定性,你可以简单理解为模型性能(也就是模型的效果)可以持续多久。
我们可以使用 PSI 指标来判断模型的稳定性,如果一个模型的 PSI > 0.2,那它的稳定性就太差了,这就说明算法同学的工作交付不达标。
总的来说,模型的验证除了是算法工程师必须要做的事情之外,也是产品经理要重点关注的。就好像研发同学需要单元测试,测试同学需要冒烟测试,产品经理需要产品验收一样。
这篇文章,我们先熟悉模型验证在整个模型构建中所扮演的角色,后续也会专门讲解模型评估的核心指标、计算逻辑及合理值范围。
模型融合
前面我们讲的 4 个环节都是针对一个模型来说的,但在实际工作中,为了解决很多具体的细节问题,算法工程师经常需要构建多个模型才获得最佳效果。
这个时候,就要涉及多个模型集成的问题了。那模型集成或者说集成学习究竟是怎么一回事儿呢?
我们先来看一个生活中的例子,如果你打算买一辆车,你会直接找一家 4S 店,然后让汽车销售员推销一下,就直接决定购买了吗?大概率不会,你会先去各头部汽车咨询网站看看其他车主的评价,或者咨询一下同事或朋友的意见,甚至会自己整理一堆汽车各维度的专业对比资料,再经过几次讨价还价,才会最终做出购买的决定
模型融合就是采用的这个思路,同时训练多个模型,再通过模型集成的方式把这些模型合并在一起,从而提升模型的准确率。


