机器学习中,无论是新建的学习模型还是对现有模型的优化,都需要对模型进行评估,并选择一个模型应用于实际问题中。
因本人非理科学生,故而本文未涉及到复杂公式的推理过程,仅简单的阐述一些原理上的概念,方便非理科学习理解机器学习的模型评估与选择,也当是自己看书做的笔记,方便后续回顾。
机器学习说白了是利用历史数据,基于一定的学习算法让计算机自己学习或者训练,得到一个模型的过程。我们可以用这个模型进行预测。比如预测用户的购买行为,或者阅读行为,从而对用户进行推荐或者排序。(非理科生的视角,有偏差的望容忍或者指出)。
机器学习得到一个或者多个模型时,我们怎么对模型进行评估和选择呢?
1、机器学习的评估方法
一般来说模型的评估有以下几种方法:留出法、交叉验证法、自助法。
作为非算法工程师,个人认为大概理解含义就行啦,本人曾经作为搜索排序的pm,使用到机器学习的模型进行排序,我其实不需要知道模型训练和评估的实际操作,仅需要了解评估的方法和结果即可,了解评估方法可大概知道评估结果会存在哪些不足。
2、模型的评价标准
评价标准也有很多,不同评价标准适用的场景不同,作为非理科生理解原理和概念就行,对于具体推到过程和实现过程交给技术大牛们即可。本文简单介绍几组评价标准。
(1)错误率与精度
一般的二分类和多分类任务中,常用的评估指标为错误率与精度,其中错误率E=分类错误的样本数/总样本数,而精度ACC=分类正确的样本数/总样本数=1-错误率。
(2)查准率、查全率、F1
信息检索或者web搜索中,需要评估“检索的信息中有多少比例是用户感兴趣的“,或者“”用户感兴趣的信息有多少被检索出来了“的问题时,错误率和精度则不能满足评估需求,故而用查准率和查全率来评估。
查准率P=TP/(TP+FP)=实际是正样本预测仍然为正样本的样本量/预测为正样本的样本量,含义即:预测出来的正样本中有多少在真实情况中也是正样本。
查全率R=TP/(TP+FN)=实际是正样本预测仍然为正样本的样本量/实际总的正样本量。含义即:真实情况的正样本中有多少被预测为正样本。
排序案例中,用机器学习的结果进行排序,排序在前面的被认为“最有可能“是正例的样本,相反排在后面的被认为“最有可能“是反例的样本,但是具体哪个是正样本没有唯一的标准。此时为了能对比不同模型的优劣,可以按顺序逐个把样本作为正样本进行预测,则每次都可计算出当时的查准率和查全率,例如先把排在第一个位置的认为是正例,其他为反例,计算查准率和查全率(P1,R1 ),然后再把排在前两个位置的认为是正例,其他为反例,计算查准率和查全率(P2,R2 ).....以此类推,可得到多个查准率和查全率(Pi,Ri),把查准率和查全率绘制在坐标轴上,可得到查准率--查全率曲线,简称P-R曲线,如下图:
不同的模型对应不同的P-R曲线,如果某个模型的P-R曲线完全包住另外一个模型的P-R曲线,则说明该模型比另外一个模型的性能更好,如图中A、B都优于C,而A和B有交叉难以判断谁优谁劣,通常的做法下是取平衡点对比,A的平衡点大于B,则说明A优于B,平衡点即查准率=查全率的点。
F1或者Fβ:直接对比平衡点,过于简单,有时候也用Fβ来度量模型优劣,一般的β>0的数值,其中β=1表示标准的F1,β>1时查全率影响更大,β<1时查准率影响更大。
Fβ=((1+β^2)×P×R)/(β^2×P+R)
(3)ROC与AUC
ROC曲线与P_R曲线类似,不同的地方在于ROC曲线的纵轴是“真正例率”简称TPR,横轴是“假正例率”简称FPR。
TPR=TP/(TP+FN)=实际是正样本预测仍然为正样本的样本量/真实情况中正样本数,含义即:真实情况的正样本中有多少仍被预测为正样本。
FPR=FP/(FP+TN)=实际是反样本预测仍然为反样本的样本量/真实情况中的反样本数。含义即:真实情况的反样本中有多少仍被预测为反样本。
与类似P_R曲线,在使用ROC曲线时,区分正例和反例的每个区分点都可计算出一个与之对应的点(FPR,TPR),很多个(FPR,TPR)点可绘制成一条曲线,称为ROC曲线。
模型评估时,如果一个模型C的ROC曲线完全包住另外一个模型D的ROC曲线,则说明模型C优于模型D,如果模型C和模型D有交叉,则用两个模型ROC曲线下的面积AUC值来比较,如果模型C的AUC值大于模型D的AUC值,则说明模型C优于模型D。
至于AUC的计算公式,感兴趣的可自己找相关数据查看。
(4)代价敏感错误率与代价曲线
实际应用中,有时候不同类型的错误所造成的后果不同,如医疗诊断中,把健康人诊断为患者,把患者诊断为健康人,前者只是增加进一步检查的麻烦和费用,但是可能后者可能错失治疗的最佳时间。这种非均等代价则不能用查全率、查准率或者ROC曲线来评估模型。此时可考虑用代价敏感错误率与代价曲线来评估模型。
以二分类问题举例说明代价敏感错误率和代价曲线。
若将第0类判别为第1类所造成的损失更大,则cost01>cost10,反之亦然,损失程度相差越大,cost01和cost10的值差别越大。
均等代价下,错误率直接计算错误次数,在非均等代价下,希望是总代价最小,故而计算的是代价敏感 的错误率,公式略过。
代价曲线的横轴是取值为【0,1】的正例概率代价:p是样例为正例的概率
代价曲线的纵轴是取值为【0,1】的归一化代价:p是样例为正例的概率
其中,FPR计算通ROC曲线中的FPR公式,即假正例率,FNR=1-TPR(TPR是ROC曲线中的TPR)。
ROC曲线上的每一个点,都能在代价平面上绘制一条从点(0,FPR)到点(1,FNR)的线段,线段下的面积表示该条件下的期望总代价,取ROC的每个点转化为代价平面上的一条线段,取所有线段的下界,围城的面积即为该模型的期望总代价。如下图。
不同模型期望总代价相比,期望总代价较小的模型更优。
3、小结
以上这些评估的方法基本都是技术上使用的判断标准,作为非技术人员,了解原理,能够理解模型评估的结果。但是对评估结果需要抱有怀疑的态度,一方面可结合业务的特点,制定业务指标对模型进行评估;另一方面,新的模型上线后,最好是进行AB-test后,再依据测试结果选择应用哪个模型。实际应用中,我们曾经遇到的问题是评估时模型C的AUC值比模型D高,但是实际上线后,模型C的表现并不理想。尤其是当模型C、D的AUC值都比较大时,上线后模型C和D谁表现更好,这个不确定性更高。
总之,在进行模型评估时,作为为技术人员,需要理解模型技术上的评估含义,同时需要结合具体业务的实际情况,制定业务特征上的评估标准,同时注重分析模型表现差异的业务原因。