- 评估方法。
1),留出法。
将数据集D划分为两个互斥的子集,一个作为测试集,一个作为验证集。为保证准确性,可以随机,可以分层采样。
一般是2/3-4/5用作训练,其余用作测试。
2), 交叉验证法。
平均划分为K个大小相似得互斥子集,尽量数据分布与原数据集保持一致(可以用分层),每次用一个作为验证集,其他作为训练集,训练K次。最后结果取均值。
留一法:
有m个样本点,m=k.
优点:不受随机样本划分影响。
缺点:数据集太大时训练模型得代价太大。
3).自助法。
对m个样本得数据集D。从D中抽出D’,然后放回,重复m次之后。大概有36.8%的样本没有被取到,这些可以被作为验证集。 - 性能度量。
1).
值是离散型:
错误率:
E(f;D)=∑i=1mⅡ(f(xi)≠yi)
精度:
acc(f;D)=1/m∑i=1mⅡ(f(xi=yi))=1−E(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=(2∗P∗R)/(P+R)=(2∗TP)/(样例总数+TP−TN)
F1是基于查准率与查全率的调和平均:
1/F1=1/2(1/P+1/R)
Fβ:
1/Fβ=1/(1+β2)(1/p+β2/R)
Fβ=(1+β2)∗P∗R/(β2∗P)+R
Fβ能让我们表达出对查全率和查准率不同的偏好
2)ROC与AUC:
ROC曲线的纵轴是真正例率,横轴是假正例率:
TPR=TP/TP+FN
FPR=FP/TN+FP
绘图过程:
给定m+个正例和m−个反例,根据预测结果对样例进行排序,把分类阈值设为最大,此时所有的样例均预测为反例,在(0,0)处有一个坐标点。然后依次将分类阈值设置为每个样例的预测值,即依次将每个样例划分为正例。若为真正例,则对应坐标点为(x,y+1/m+);若当前结点为假正例,则对应坐标点为(x+1/m−,y),然后用线段连接相邻点就可。
AUC:
AUC就是对ROC包围的下面的面积求和而得,若ROC曲线是由坐标(x1,y1),.....,(xn,yn)的点按序连接而成,则AUC可估计为:
AUC=1/2∑i=1(m−1)(xi+1−xi)∗(yi+yi+1)
3**)代价敏感曲线:**
因为有时候不同类型的错误会有不同的代价,我们可以依次为这些错误定义他们的代价。
二分类代价矩阵:
真实类别\预测类别 | 第0类 | 第1类 |
---|---|---|
第0类 | 0 | cost01 |
第1类 | cost10 | 0 |
costij是将第i类预测为第j类所要付出的代价。
代价敏感度的错误率:
E(f;D;cost)=1/m(∑xi∈D+Ⅱ(f(xi≠yi))∗cost01+∑xi∈D−Ⅱ(f(xi≠yi))∗cost10)
代价曲线:
横轴是
P(+)cost=p∗cost01/p∗cost01+(1−p)∗cost10
纵轴是归一化代价:
costnorm=FNR∗p∗cost01+FPR∗(1−P)∗cost10/p∗cost01+(1−p)∗cost10
ROC上坐标为(FPR,TPR),可根据此计算出FNR=1-TPR,在代价平面上画一条从(0,FPR)到(1,FNR)的线段,线段下的面积就是期望总体代价。如上图阴影面积所示。
4)比较检验:
假设检验:
在我们做一次留出法估计时得到一个泛化错误率ϵ和一个测试错误率ϵ′。
此时我们可以用二项检验”ϵ<=ϵ0”这样的假设来进行检验。
一般我们做多次留出法估计,这时候可以用K个测试错误率,和样本的平均测试错误率和方差做“t检验”。
交叉验证t检验:
对两个学习器,我们用相同的数据集进行交叉验证法对他们进行检验,我们可以假设两个学习器的性能相同,这时候可以用“成对t检验”对他们进行检验。