【美团机器学习实践】问题建模

机器学习解决问题的通用流程,主要分为4大部分:
1.问题建模
2.特征工程
3.模型选择
4.模型融合

在这里插入图片描述
问题建模包含三部分:评估指标、样本选择、交叉验证

1.1评估指标

评估指标用于反映模型效果,预测问题中,将预测结果和真实结果进行比较,为:
在这里插入图片描述
实际项目中,线下和线上的评估指标尽可能变化趋势保持一致,线上成本明显高于线下实验成本,在线上实验较长时间并对效果进行可信度检验(如 t − t e s t t-test ttest)才能得到结论,必然导致模型迭代进度缓慢。

1.1.1分类指标

1.精确率和召回率
多用于二分类问题
在这里插入图片描述
在这里插入图片描述
T P TP TP表示真实结果为正例,预测结果也是正例; F N FN FN表示真实结果为正例,预测结果为负例; F P FP FP表示真实结果为负例,预测结果为正例; T N TN TN表示真实结果为负例,预测结果也是负例。

P-R曲线

在这里插入图片描述
P − R P-R PR曲线越靠近右上角性能越好,曲线下面积为 A P AP AP分数(平均精确率分数),面积大小能够反映不同模型的性能指标,但是这个值计算方法不好使,设计综合考虑两者的指标。
F 1 F_1 F1值是精确率和召回率的调和平均值:
在这里插入图片描述
准确率( a c c u r a c y accuracy accuracy)= T P + T N T P + F P + F N + T N \frac{TP+TN}{TP+FP+FN+TN} TP+FP+FN+TNTP+TN

错误率( e r r o r r a t e error rate errorrate)= F P + F N T P + F P + F N + T N \frac{FP+FN}{TP+FP+FN+TN} TP+FP+FN+TNFP+FN

精确率是一个二分类指标,而准确率常用于多分类,其计算公式为:

准确率( a c c u r a c y accuracy accuracy)= 1 n ∑ i = 1 n I ( f ( x i ) = y i ) \frac{1}{n}\sum_{i=1}^{n} I(f(x_i)=y_i) n1i=1nI(f(xi)=yi)

2. R O C ROC ROC A U C AUC AUC
很多机器学习模型中,输出为预测概率,而对于预测概率设定阈值,当预测概率大于阈值时为正例,小于阈值时为负例,这会多出一个阈值这个位置参数,且会影响模型的泛化能力。
在这里插入图片描述
假正率
在这里插入图片描述
下图为ROC曲线示意图。
在这里插入图片描述
上图为ROC曲线,纵坐标为真正率,横坐标为假正率,模型靠近左上角性能越好。

如何绘制?

将样本预测概率按照从大到小排序,以每个样本的预测概率为阈值,大于阈值的预测为正例,小于阈值到的预测为负例,再根据样本本身的真假计算FPR和TPR大小,将其作为坐标,绘制在图中,当所有样本绘制结束后,形成的曲线就是ROC曲线。
AUC(Area Under Roc Curve)即ROC曲线下的面积。面积大小表示正样本排在负样本的可能性大小,表示正确率越高;AUC考虑的是样本排序的质量,对于预测分数大小没有这么敏感。

3.对数损失

3.1熵
熵表示一件事情发生的不确定性或系统的不确定性,熵越大,不确定性就越大。
表达式为:

H ( x ) = − p ( x ) log ⁡ ( p ( x ) ) H(x)=-p(x)\log(p(x)) H(x)=p(x)log(p(x))

p ( x ) = 0 或 1 p(x)=0或1 p(x)=01时表示时间必定发生或者不发生,其熵为0;当 p ( x ) = 1 2 p(x)=\frac{1}{2} p(x)=21时,其不确定性最大,熵为 1 2 \frac{1}{2} 21,为最大值。
当某个模型作用在样本上对于其预测值为0-1之间的数时,假设有M个样本,每个样本的预测分数为 p i p_i pi,则这个模型的熵大小为 ∑ i p i ∗ log ⁡ p i \sum_{i} p_i*\log p_i ipilogpi
H ( x ) H(x) H(x)也叫做平均信息量,当不确定性越大时,其平均信息量就越大。当信息确定时,则得到的信息就确定了,信息量就少了。

3.2交叉熵
定义为:在真实分布下,若存在非真实分布,用非真实分布指定的策略消除系统中的不确定性所付出的成本。也就是非真实分布和真实分布之间的差异大小。我得理解就是像最大释然估计一样,用非真实的分布区拟合真实分布所付出的代价大小就是交叉熵。
公式如下:
H ( p , q ) = − p ( x ) log ⁡ ( q ( x ) ) H(p,q)=-p(x)\log(q(x)) H(pq)=p(x)log(q(x))

上面的p(x)表示真实分布,q(x)表示非真实分布, H ( p , q ) H(p,q) H(p,q)表示两个分布的差异大小,非真实分布越接近真实分布,其交叉熵越低,该非真实分布也就越优。
二分类上:
例: y = 1 y=1 y=1的似然函数是对于y标签的预测y^,
y = 0 y=0 y=0的似然函数是对于y标签的预测1-y^;
最大化似然函数: p ⃗ ( x ) log ⁡ p ( x ) = y ∗ log ⁡ ( y ⃗ ) + ( 1 − y ) ∗ log ⁡ ( 1 − y ⃗ ) \vec p(x)\log p(x)=y*\log(\vec y) +(1-y)*\log(1-\vec y) p (x)logp(x)=ylog(y )+(1y)log(1y )
交叉熵函数: − ( p ⃗ ( x ) log ⁡ p ( x ) = y ∗ log ⁡ ( y ⃗ ) + ( 1 − y ) ∗ log ⁡ ( 1 − y ⃗ ) ) -(\vec p(x)\log p(x)=y*\log(\vec y) +(1-y)*\log(1-\vec y)) (p (x)logp(x)=ylog(y )+(1y)log(1y ))
他们区别在于:交叉熵与最大似然函数相差一个负号
关系为最大似然函数=最小化交叉熵(相同)
也就是让非真实分布和真实分布之间的差异能够减小,这也是最大似然函数的宗旨。

3.3对数损失函数

lgloss是对预测概率的似然估计,其标准形式为:

l o g l o s s = − log ⁡ P ( Y ∣ X ) logloss=-\log P(Y|X) logloss=logP(YX)

其中P(Y|x)表示在已知分布X下,Y发生概率大小。
对数损失函数最小化表示用样本的已知分布,求解导致这种分布的最佳模型参数(这和最大似然估计的思想基本相同,都是利用样本分布来求解模型参数)。

对数损失函数对应的二分类的计算公式为:

l o g l o s s = − 1 N ∑ i − 1 N ( y i ∗ log ⁡ p i + ( 1 − y i ) ∗ log ⁡ p i ) logloss =-\frac{1}{N} \sum_{i-1}{N} (y_i*\log p_i +(1-y_i)*\log p_i) logloss=N1i1N(yilogpi+(1yi)logpi)

其中, y ∈ 0 , 1 , p i y \in {0,1} ,p_i y0,1,pi为第i个样本预测为1的概率。

在多分类任务中,其计算公式为:

l o g l o s s = − 1 N ∗ 1 C ∗ ∑ i = 1 N ∑ j = 1 C y i j ∗ log ⁡ p i j logloss=-\frac{1}{N}*\frac{1}{C}*\sum_{i=1}^{N} \sum _{j=1}^{C} y_{ij}* \log p_{ij} logloss=N1C1i=1Nj=1Cyijlogpij
其中,N为样本数,C为类别数, y i j = 1 y_{ij}=1 yij=1表示第i个样本的类别是j, p i j p_{ij} pij为第i个样本类别为j的概率。
与交叉熵思想一样,Logloss衡量的是预测概率分布和真实概率分布的差异性,取值越小越好。和AUC不同,logloss对预测概率敏感。

参考文献:
1.https://www.jianshu.com/p/d0c59c2470ba
2.《美团机器学习实践》
3.自己的笔记

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值