【美团机器学习实践】问题建模
机器学习解决问题的通用流程,主要分为4大部分:
1.问题建模
2.特征工程
3.模型选择
4.模型融合
问题建模包含三部分:评估指标、样本选择、交叉验证
1.1评估指标
评估指标用于反映模型效果,预测问题中,将预测结果和真实结果进行比较,为:
实际项目中,线下和线上的评估指标尽可能变化趋势保持一致,线上成本明显高于线下实验成本,在线上实验较长时间并对效果进行可信度检验(如)才能得到结论,必然导致模型迭代进度缓慢。
1.1.1分类指标
1.精确率和召回率
多用于二分类问题
表示真实结果为正例,预测结果也是正例;表示真实结果为正例,预测结果为负例;表示真实结果为负例,预测结果为正例;表示真实结果为负例,预测结果也是负例。
P-R曲线
曲线越靠近右上角性能越好,曲线下面积为分数(平均精确率分数),面积大小能够反映不同模型的性能指标,但是这个值计算方法不好使,设计综合考虑两者的指标。
值是精确率和召回率的调和平均值:
准确率()=
错误率()=
精确率是一个二分类指标,而准确率常用于多分类,其计算公式为:
准确率()=
2.与
很多机器学习模型中,输出为预测概率,而对于预测概率设定阈值,当预测概率大于阈值时为正例,小于阈值时为负例,这会多出一个阈值这个位置参数,且会影响模型的泛化能力。
假正率
下图为ROC曲线示意图。
上图为ROC曲线,纵坐标为真正率,横坐标为假正率,模型靠近左上角性能越好。
如何绘制?
将样本预测概率按照从大到小排序,以每个样本的预测概率为阈值,大于阈值的预测为正例,小于阈值到的预测为负例,再根据样本本身的真假计算FPR和TPR大小,将其作为坐标,绘制在图中,当所有样本绘制结束后,形成的曲线就是ROC曲线。
AUC(Area Under Roc Curve)即ROC曲线下的面积。面积大小表示正样本排在负样本的可能性大小,表示正确率越高;AUC考虑的是样本排序的质量,对于预测分数大小没有这么敏感。
3.对数损失
3.1熵
熵表示一件事情发生的不确定性或系统的不确定性,熵越大,不确定性就越大。
表达式为:
时表示时间必定发生或者不发生,其熵为0;当时,其不确定性最大,熵为,为最大值。
当某个模型作用在样本上对于其预测值为0-1之间的数时,假设有M个样本,每个样本的预测分数为,则这个模型的熵大小为
也叫做平均信息量,当不确定性越大时,其平均信息量就越大。当信息确定时,则得到的信息就确定了,信息量就少了。
3.2交叉熵
定义为:在真实分布下,若存在非真实分布,用非真实分布指定的策略消除系统中的不确定性所付出的成本。也就是非真实分布和真实分布之间的差异大小。我得理解就是像最大释然估计一样,用非真实的分布区拟合真实分布所付出的代价大小就是交叉熵。
公式如下:
上面的p(x)表示真实分布,q(x)表示非真实分布,表示两个分布的差异大小,非真实分布越接近真实分布,其交叉熵越低,该非真实分布也就越优。
二分类上:
例:的似然函数是对于y标签的预测y^,
的似然函数是对于y标签的预测1-y^;
最大化似然函数:
交叉熵函数:
他们区别在于:交叉熵与最大似然函数相差一个负号
关系为最大似然函数=最小化交叉熵(相同)
也就是让非真实分布和真实分布之间的差异能够减小,这也是最大似然函数的宗旨。
3.3对数损失函数
lgloss是对预测概率的似然估计,其标准形式为:
其中P(Y|x)表示在已知分布X下,Y发生概率大小。
对数损失函数最小化表示用样本的已知分布,求解导致这种分布的最佳模型参数(这和最大似然估计的思想基本相同,都是利用样本分布来求解模型参数)。
对数损失函数对应的二分类的计算公式为:
其中,为第i个样本预测为1的概率。
在多分类任务中,其计算公式为:
其中,N为样本数,C为类别数,表示第i个样本的类别是j,为第i个样本类别为j的概率。
与交叉熵思想一样,Logloss衡量的是预测概率分布和真实概率分布的差异性,取值越小越好。和AUC不同,logloss对预测概率敏感。
参考文献:
1.https://www.jianshu.com/p/d0c59c2470ba
2.《美团机器学习实践》
3.自己的笔记