分类器常见的评价指标

CTR

CTR又称广告点击率,英文名(click through rate)
计算公式为:
C T R = c l i c k 次 数 i m p r e s s i o n 次 数 CTR=\frac{click次数}{impression次数} CTR=impressionclick
CTR预估的最终目标就是epcm,每千次展示的期望收益

评价指标

logloss

当我们用一个概率值预测一个事件是真(1)还是假(0),我们是logloss这个错误度量,评判这个模型的好坏
公式:
l o g l o s s = − 1 N ∑ i = 1 N ( y i l o g ( p i ) + ( 1 − y i ) l o g ( 1 − p i ) ) logloss=-\frac{1}{N}\sum_{i=1}^{N}(y_ilog(p_i)+(1-y_i)log(1-p_i)) logloss=N1i=1N(yilog(pi)+(1yi)log(1pi))
这个衡量标准也可以由另外一个数学公式推导得到—KL距离
KL距离,又称相对熵,它衡量的是相同时间空间里的两个分布概率的差异情况
D ( p ∣ q ) = ∑ i p ( x ) l o g p ( x ) q ( x ) D(p|q)=\sum_ip(x)log\frac{p(x)}{q(x)} D(pq)=ip(x)logq(x)p(x)
对学习的泛化性能进行评估,不仅需要有效可行的实验估计方法,还需要有衡量模型泛化能力的评价标准,这就是性能度量。

查准率、查全率与F1

对于二分类问题,可将样例根据真实值和预测值组合,划分成四种形式,真正例(true positive)、假正例(false positive)、真反例(true negative)和假反例(false negative)
分类结果的混淆矩阵,如下

分类真实值:1真实值:0
预测值:1TP(True Positive)FP(False Positive)
预测值:0FN(False Negative)TN(True Negative)

查准率 P P P的定义是:
P = T P T P + F P P=\frac{TP}{TP+FP} P=TP+FPTP
查全率 R R R的定义是:
P = T P T P + F N P=\frac{TP}{TP+FN} P=TP+FNTP
查准率和查全率是一对矛盾的度量
F 1 F1 F1被认为是基于查准率和查全率的调和平均
1 F 1 = 1 2 ( 1 P + 1 R ) \frac{1}{F1}=\frac{1}{2}(\frac{1}{P}+\frac{1}{R}) F11=21(P1+R1)

ROC

Receiver Operating Characteristic
ROC曲线的坐标,纵坐标为真正例率(True Positive Rate,TPR),横坐标为假正例率(False Positive Rate,FPR)
定义如下:
T P R = T P T P + F N TPR=\frac{TP}{TP+FN} TPR=TP+FNTP
F P R = F P T N + F P FPR=\frac{FP}{TN+FP} FPR=TN+FPFP
如何绘制ROC曲线?
我们按照预测结果对样例进行排序,按照顺序逐个把样本作为正例进行预测,每次计算出这两个重要的值,分别以它们的横纵坐标作图。

二分类问题

真实值model1model2
010
101
111
110
000
010
110

由上表可以得知:
model1

二分类真实值:1真实值:0
预测值:13(TP)2(FP)
预测值:01(FN)1(TN)

model2

二分类真实值:1真实值:0
预测值:12(TP)0(FP)
预测值:02(FN)3(TN)

横纵坐标

二分类模型1模型2
FP rate2/30
TP rate3/41/2

图形可以画出
这里写图片描述
模型越靠近 y y y上测说明效果越好,所以model2的效果要好于model1

AUC

CTR是一个二分类问题,不同的域值有不同的结果,按照预测值进行排序

真实值预测值
10.09
10.08
00.07
10.06
10.055
10.054
00.053
00.052
10.051

按照预测值大小,依次作为域值,求解FP rate和TP rate

域值TP rateFP rate
0.091/60
0.081/30
0.071/31/3
0.061/21/3
0.0552/31/3
0.0545/61/3
0.0535/62/3
0.0525/61
0.05111

按照上图的信息可以画出ROC曲线
这里写图片描述
曲线下的面积被称为AOC
AOC的意义:衡量正样本排在负样本前面的能力,这里的能力更具体一点就是出现的概率。与域值的选取没有关系。

示例代码

# 二分类
y_pred_score = lr.predict_proba(X_test)
from sklearn.metrics import classification_report, roc_curve
fpr, tpr, thresholds = roc_curve(y_test, y_pred_score[:,1])
auc(fpr, tpr)

混淆矩阵

对于多分类的相关问题,常用的评价标准是混淆矩阵
如果分成 n n n个类别的话,混淆矩阵的形式是一个 n ∗ n n*n nn的一个矩阵,具体的形式如下

labellabelPredicted classPredicted classPredicted class
DogCatRobbit
Actual classDog520
Actual classCat332
Actual classRobbit0111

上图中每一列代表预测的类别,每一行代表真实的类别的归属,第二行cat的总数量为8,表示类cat总共有8个样本,其中3个分类正确,3个被错误的分到了dog,2个被错误的分到了robbit。
如果计算cat的准确率计算公式如下:

P r e c i s i o n ( C a t ) = 3 2 + 3 + 1 Precision(Cat) = \frac{3}{2+3+1} Precision(Cat)=2+3+13

scikit-learn中有相关的计算函数可以直接调用

>>> from sklearn.metrics import confusion_matrix
>>> y_true = [2, 0, 2, 2, 0, 1]
>>> y_pred = [0, 0, 2, 2, 0, 2]
>>> confusion_matrix(y_true, y_pred)
array([[2, 0, 0],
       [0, 0, 1],
       [1, 0, 2]])

参考资料:
1、https://www.kaggle.com/wiki/LogarithmicLoss
2、 李航《统计学习方法》清华大学出版社
3、周志华 《机器学习》 清华大学出版社
4、https://en.wikipedia.org/wiki/Confusion_matrix
5、http://scikit-learn.org/stable/modules/generated/sklearn.metrics.confusion_matrix.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值