Evaluation

本文深入探讨了机器学习中的训练与测试过程,包括错误率、交叉验证、损失函数、Kappa系数、提升图表和ROC曲线等核心概念,旨在提供可靠且有效的错误评估方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Training and Testing

引言

Classification的一般过程如下:
1.选择一个Classifier(Modell)
2.根据已有信息对这个Classifier进行训练
3.把Classifier使用与对新的数据的预测
与数据库中一般如下:
目标:根据前n个属性,对第n+1个属性进行推测
训练数据是已有的n+1个属性的数据
经典的方法比如有建立决策树(Entscheidungsbaum)

Training and Testing

Resubstitution Error
首先错误率(Fehlerrate)就不说了,先认识一个新的名词:Resubstitution Error. Rebsubstitution Error就是指这对训练数据库的错误率。
一般的Training的过程
1.并不会把所有的数据都用于训练
2.训练后的Classifier使用剩余的数据进行测试,并进行评估
Testdaten
所谓TestDaten就是指,在构建Classifier的过程中,木有使用到的数据。又叫Hold out Daten。
更切确的
经常区分为以下三个步骤:
1.训练(training)
2.Validation(Validieren):调整参数或进行的可能的替换 //这个不是很了解??
3.测试(Test):测试
然后
通过以上三个步骤后,确定了要使用的Classifier。之后就可以使用之前的Testdaten,进一步细化Classifier。

Cross validation(Crossvalidierung)

Stratification
把原始数据进行分堆,同时确保特定属性的分布均匀。
//如果分得很畸形会怎么样呢??比如同一个堆里的属性对应的值都相同???
**基本思想:**repeated holdout
分辨那种Classifier最适合当前的数据?//这才是目的吗??
将生成的堆随机的分配给Training和Test。并不断重复实验
分别算出各个实验的错误率(Fehlerrate),求出均值。
一种做法
比如分成n堆,然后选出n-1堆用于training,最后一堆用于测试。从n个堆中选出n-1个堆共有n中情况,相应的可以分别用于训练Classifier,从而得到n个训练后的Classifier。对这n个Classifier进行测试,选出其中评价最优的。
目的(Ziel)
可靠的错误评估 //不理解这里,这方法并不能使评估更加可信啊??
使用原因(Ausgangssituation)
仅有少量的原始数据可以用于Training和Test

用概率表示预测结果-Evaluation(Wahrscheinlichkeiten als Vorhersageergebnisse)

//小问题,如何把决策树改成用概率表示预测结果呢?
//又要如何把它用于Instanzbasierten Lernen呢??

Loss function

loss function:
loss function即损失函数,指出因为错误而照成的损失。
0-1 loss function:
当正确是不造成损失,错误则损失为一。
这种方法忽略了不同错误带来的损失上的差异。
Quadratic loss function(Quadratische loss function):
假设有k种可能预测结果。
pi1<=i<=k表示预测各种结果出现的概率。(iPi=1)。
用向量(a1,...ak)描述真实的结果,仅与结果相应的ai的值是1,其他的值为0。
Quadratic loss function为j(pjaj)2
这种做法同样掩盖了具体的错误。比如(0,0,…,1),(1,0,…,0)这两种错误并没法从结果上区分出来,他们的结果都是2(同时这也是最大的错误率)。
informational loss function:
Informational loss function:log2pi
其中i为真实结果所在的分类。预测越准结果越小。
另外预测结果中不允许出现pi=0得情况。
//问题来了,为什么要使用log函数呢??????
掩盖错误的能力比前者更厉害了,比如(0.1,0.1,0.8)(0,0.2,0.8)。假设真实结果为第三类,那么上面两个Tupel对informational loss function来说并没有区别。而对于Quadratic loss function来说,两个Tupel是不一样的。

错误类型和其相应的措施(Fehlerarten und entsprechende Maße)

Bias和Variance

//与Training Data无关
针对Classifier的学习方法存在两种错误类型,他们分别是Bias和Variance
Bias:
Bias指由该学习方法本身存在的局限性所导致的错误,他是没有办法通过增大训练量来消除的。
Variance:
学习方法的Variance指由于训练数据的局限性而导致的错误。
Bias-Variance Decomposition:
//不知是啥???

错误类型和成功率(Fehlerarten und Erfolgsquote)

两类问题的可能的错误类型:

yesnoyestruePositivefalsePositivenofalseNegativetrueNegative

总得正确率(Gesamt-Erfolgsquote):=(TP+TN)/(TP+TN+FP+FN)

Kappa Koeffizient

下面是一个三类问题的confusion matrix

abctotala881418120b10401060c261220total1006040

那么可以很简单的算出他的总得正确率是(88+40+12)/200=70%
那么这个70%到底是有多好呢?以上是根据复杂的Classifier预测得到的结果,那么如果我们不用Classifier,而是直接根据a,b,c之间的比例来进行预测呢??
下面是根据比例预测得到的结果:
abctotala603624120b30181260c106420total1006040

抽出上面两个表的对角线数据(表示预测正确的数据),我们求出他的Kappa Coeffizient(以此来看出70%的威力):
k=(140-(60+18+4))/(200-(60+18+4))=58/118=49.2%
这个值给出了Classifier比按比例分好了50%。
他的值域是[0,1]。
当比较双方正确预测的数量一样时k=0。表示两个方法一样好。
当一个方法全错而另一个全对时k=1。

关注不同错误造成的损失

上面的方法没有区分不同错误造成的损失。这其实是不合理的。举个例子把一个号的投资者误判为坏得,和把一个坏得投资者误判为好得所带来的损失明显的不同的。

Lift Charts

举个例子比如做市场调查用得传单。假设给100万个人发传单,而得到的回应只有0.1%。现在经过数据分析,我们知道对特定的100号人发传单,得到的回应的比例是0.4%。那么我们是否只针对这100号人发传单呢??
Lift:所谓的lift就是指上述例子中回应率提高的倍数。比如上例中的lift=0.4%/0.1%=4
那么我们最好的做法是什么呢?
假设我们要发k张传单,那么我们需要找得就只是最有可能回复的人群,在这里我们看重的只是关于预测的可能性的排序,而对于具体的数值并不敢兴趣。由此我们可以得到下面这个图表:
//上传不了 先欠着!!!!
也可以用另外的表达方式,只要x坐标不变,把y坐标改成盈利或损失,即是相应得Cost/Benefit Curve。

ROC

ROC=receiver operating characteristics
本来是信号处理中的一个概念
先看一下他长什么样子:
//还上传不了 拖着吧!!!
那么这个图是怎么来得?
首先他的数据基础是一个按照预测概率排序的一系列数据
其次其上得点是这么来的:对于前k个数据,我们要知道其中错误估计的个数f,和正确预测的个数r。那么f:r就是图上得一个点
//是吗????
Formel:
x坐标:FP-Rate(Precision) = 100 * FP/(FP+TN)
y坐标:TP-Rate(Recall)= 100 * TP/(TP+FN)
//FP rate的值域是多少呢?在什么情况下取得最大值呢??
当对所有都预测为yes的时候,因为没有no的预测所以TN=0 FN=0,此时FP-Rate取得最大为1 TP-Rate同样取得最大值等于1;
与之相反的当对所有的都预测为no的时候,FP=0 TP=0,FP-Rate=0最小 TP-Rate=0最小。
AUC:
AUC:area under curve
即指ROC曲线下面的区域
其他关于错误率的参数:
f-Measure: (2*recall*precision)/(recall+precision)=2*TP/(2*TP+FP+FN)
正确率:(TP+TN)/(TP+FP+TN+FN)

数字表达预测质量

Mean-squared error:(p1a1)2+...+(pnan)2n

Root mean-squared error:(p1a1)2+...(pn=an)2n

mean-absolute error:|p1a1|+...|pnan|n

relative-squared error: (p1a1)2+...+(pnan)2(a1a)2+...+(ana)2

root relative-squared error: (p1a1)2+...+(pnan)2(a1a)2+...+(ana)2

relative-absolute error:|p1a1|+...|pnan||a1a|2+...+|ana|2

correlation coefficient:SPASPSA SPA=i(pip)(aia)n1 SP=i(pip)2n1 SA=i(aia)2n1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值