模型评估和选择

  1. 评估方法。
    1),留出法。
    将数据集D划分为两个互斥的子集,一个作为测试集,一个作为验证集。为保证准确性,可以随机,可以分层采样。
    一般是2/3-4/5用作训练,其余用作测试。
    2), 交叉验证法。
    平均划分为K个大小相似得互斥子集,尽量数据分布与原数据集保持一致(可以用分层),每次用一个作为验证集,其他作为训练集,训练K次。最后结果取均值。
    留一法:
    有m个样本点,m=k.
    优点:不受随机样本划分影响。
    缺点:数据集太大时训练模型得代价太大。
    3).自助法。
    对m个样本得数据集D。从D中抽出D’,然后放回,重复m次之后。大概有36.8%的样本没有被取到,这些可以被作为验证集。
  2. 性能度量。
    1).
    值是离散型:
    错误率:
    Ef;D=i=1m(f(xi)yi)

    精度:
    acc(f;D)=1/mi=1m(f(xi=yi))=1E(f;D)

    值是连续型:
    E(f;D)=x D(f(x)y)p(x)dx

    x D(f(x)=y)p(x)dx

    2).查全率查准率与F1:
s 正例 反例
正例 TP(真正例) FN(假反例)
反例 FP(假反例) TN(真反例)

查准率:

P=TP/(TP+FP)

查全率:
R=TP/(TP+FN)

PS:查全率与查准率是一对矛盾的度量,查准率高时,查全率可能会偏低。
P-R图:
P-R图能直观地显示下、出学习器在样本总体上的查全率,查准率。包含的面积越大性能越好。在“平衡点”取得查全率与查准率都双高(此时,查全率=查准率)。
模型评估和选择
F1:
因为BEP(平衡点)过于简化,我们更常用F1度量:
F1=(2PR)/(P+R)=(2TP)/(+TPTN)

F1是基于查准率与查全率的调和平均:
1/F1=1/2(1/P+1/R)

Fβ:
1/Fβ=1/(1+β2)(1/p+β2/R)

Fβ=(1+β2)PR/(β2P)+R

Fβ
2)ROC与AUC:
ROC曲线的纵轴是真正例率,横轴是假正例率:
TPR=TP/TP+FN

FPR=FP/TN+FP

模型评估和选择
绘图过程:
给定m+个正例和m个反例,根据预测结果对样例进行排序,把分类阈值设为最大,此时所有的样例均预测为反例,在(0,0)处有一个坐标点。然后依次将分类阈值设置为每个样例的预测值,即依次将每个样例划分为正例。若为真正例,则对应坐标点为(x,y+1/m+);若当前结点为假正例,则对应坐标点为(x+1/my),然后用线段连接相邻点就可。
AUC:
AUC就是对ROC包围的下面的面积求和而得,若ROC曲线是由坐标(x1,y1),.....,(xn,yn)的点按序连接而成,则AUC可估计为:
AUC=1/2i=1(m1)(xi+1xi)(yi+yi+1)

3**)代价敏感曲线:**
因为有时候不同类型的错误会有不同的代价,我们可以依次为这些错误定义他们的代价。
二分类代价矩阵:

真实类别\预测类别 第0类 第1类
第0类 0 cost01
第1类 cost10 0

costij是将第i类预测为第j类所要付出的代价。
代价敏感度的错误率:

E(f;D;cost)=1/m(xiD+(f(xiyi))cost01+xiD(f(xiyi))cost10)

代价曲线:
模型评估和选择
横轴是
P(+)cost=pcost01/pcost01+(1p)cost10

纵轴是归一化代价:
costnorm=FNRpcost01+FPR(1P)cost10/pcost01+(1p)cost10

ROC上坐标为(FPR,TPR),可根据此计算出FNR=1-TPR,在代价平面上画一条从(0,FPR)到(1,FNR)的线段,线段下的面积就是期望总体代价。如上图阴影面积所示。
4)比较检验:
假设检验:
在我们做一次留出法估计时得到一个泛化错误率ϵ和一个测试错误率ϵ
此时我们可以用二项检验”ϵ<=ϵ0”这样的假设来进行检验。
一般我们做多次留出法估计,这时候可以用K个测试错误率,和样本的平均测试错误率和方差做“t检验”。
交叉验证t检验:
对两个学习器,我们用相同的数据集进行交叉验证法对他们进行检验,我们可以假设两个学习器的性能相同,这时候可以用“成对t检验”对他们进行检验。