我是靠谱客的博主 虚幻枕头,最近开发中收集的这篇文章主要介绍统计机器学习(三)性能度量,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

文章目录

    • 教程笔记概述
    • 本文阅读先决条件
    • 内容总结
      • MSE(mean square error)
      • 二分类任务的混淆矩阵Confusion matrix
      • F1-score以及多分类的混淆矩阵Confusion matrix
      • 混淆矩阵小结
    • ROC curve(Receiver Operating Characteristics受试者工作特征)
    • AUC
    • Kappa statistic
    • 损失函数简介
      • 分类时随机时的损失函数
    • 偏差方差分解
      • Error vs flexibility
    • 总结

教程笔记概述

来源于课程MA429,讲述统计机器学习。是算法工程师的基础。

本文阅读先决条件

阅读并尽可能理解intro naive bayes.pdf这个课件。

内容总结

MSE(mean square error)

数理统计中均方误差是指参数估计值与参数值之差平方的期望值,记为MSE。MSE的值越小,说明预测模型描述实验数据具有更好的精确度。

MSE可以用来评价回归任务,也可作为损失函数。

二分类任务的混淆矩阵Confusion matrix

课件里说得很清楚了。
主要是根据TP、TN、FP、FN延伸出来的几个概念。
Success rate, accuracy:
Error rate = 1 - accuracy

这里的召回率(recall,Sensitivity,hit rate,true positive rate)比较重要,也就是所有实际的正例里正确识别的正例比例。
Tip:为什么有这些指标,因为不同场景下对分类的要求不同。比如战斗机要宁杀错不放过,TP高重要,FN多的话比较糟糕,FP找错对象,杀成了鸟。这种情况可以容忍。

F1-score以及多分类的混淆矩阵Confusion matrix

多分类混淆矩阵
f1-score等公式
多分类中f1-score对每个类别取平均值
recall 体现了分类模型H HH对正样本的识别能力,recall 越高,说明模型对正样本的识别能力越强,precision 体现了模型对负样本的区分能力,precision越高,说明模型对负样本的区分能力越强。F1-score 是两者的综合。F1-score 越高,说明分类模型越稳健。

混淆矩阵小结

实际建模过程中,我们的最终目的是找到一个符合我们标准的分类器。这个标准就是混淆矩阵制作的最大化或者最小化某个函数。
在这里插入图片描述

ROC curve(Receiver Operating Characteristics受试者工作特征)

直接看西瓜书。
真正例率和假正例率为什么是正相关的?
如果认为都是正例,则FN和TN都为0,也即预测的反例都为0.所以TPR和FPR都是1。
如果认为都是正例,则FP和TP都为0,也即预测的反例都为0.所以TPR和FPR都是0。

AUC

直接看西瓜书,ROC下面的面积

Kappa statistic

在这里插入图片描述

损失函数简介

真实的损失函数很多种类,这里老师给的是针对分类任务的两个损失函数的刻画。
一个k分类任务,总共有k类,分类器分类完毕之后,所有样本中分到第i类的概率是 P i P_i Pi,

但实际上,样本中第i类分类的概率应该是 a i a_i ai,本课件中设置只有为 a h a_h ah,其他类别概率为0。那么也就希望预测后, P h P_h Ph尽可能大。
提出了两种损失函数:
在这里插入图片描述

分类时随机时的损失函数

相同的属性却具有不同的类别。此时添加随机概率 p i ∗ p_i^* pi
这里看不大懂了。有大手子教教我:

偏差方差分解

西瓜书里有
这个是本节课重点。

首先,有很多数据对 ( x , y ) (x, y) (x,y),输入x和对应的标签y,一个x可能对应多个y,因为随机噪声的影响。那么假设x和y的实际模型是:
y = f ( x ) + ε ( x ) (1) y=f(x)+varepsilon(x) tag{1} y=f(x)+ε(x)(1)
注意这里的 f f f是实际的模型,是无法观测的, ε ( x ) varepsilon(x) ε(x)就是噪声。那么,对于一个给定的x, f ( x ) f(x) f(x)是固定的fixed,但是噪声 ε ( x ) varepsilon(x) ε(x)不固定,我们可以认为噪声是x的函数,x大则噪声大,所以固定的f加上不固定的噪声,可能会导致相同的输入有不同的输出。
此外,噪声的平均值,也就是噪声的期望 E ( ε ( x ) ) = 0 E(varepsilon(x) )= 0 E(ε(x))=0

我们的评估函数和评估值(也就是模型):
y ^ = f ^ T r a i n i n g ( x ) (2) hat{y}=hat{f}_{Training}(x) tag{2} y^=f^Training(x)(2)
(2)公式中的帽子(^)就代码这是预测值,和实际值有差别。然后这个模型函数 f ^ T r a i n i n g hat{f}_{Training} f^Training是来自于训练数据的预测函数,并且可以有很多个训练出来的预测函数。在具体某一次训练中学习到的这个预测函数是固定的。

平均误差是:
M S E = E ( y ^ − y ) 2 = E ( f ^ T r ( x ) − f ( x ) − ε ) 2 (3) begin{aligned} M S E &=E(hat{y}-y)^{2} \ &=Eleft(hat{f}_{Tr}(x)-f(x)-varepsilonright)^{2} end{aligned} tag{3} MSE=E(y^y)2=E(f^Tr(x)f(x)ε)2(3)
也就是说,在测试集里,有很多个(x, y),我们的模型都是固定的,所以也能得到很多个(x, y_hat),y_hat - y再去计算均值。就可以知道在测试集上的平方误差。
在这里的随机误差,来源于两项,一是不同训练数据训练方法得到的评估函数是不同的,二是噪声每次不同。
下式为公式3:
M S E = E ( [ f ^ T r a i n i n g ( x ) − f ( x ) ] − ε ) 2 (3) MSE=Eleft(left[hat{f}_{Training}(x)-f(x)right]-varepsilonright)^{2} tag{3} MSE=E([f^Training(x)f(x)]ε)2(3)
首先有期望的公式:
E ( A − B ) 2 = E ( A 2 + B 2 − 2 A B ) E(A-B)^{2}=Eleft(A^{2}+B^{2}-2 A Bright) E(AB)2=E(A2+B22AB)
= E ( A 2 ) + E ( B 2 ) − 2 E ( A ) E ( B ) (期望的平方分解) =Eleft(A^{2}right)+Eleft(B^{2}right)-2 E(A) E(B) tag{期望的平方分解} =E(A2)+E(B2)2E(A)E(B)()
假设AB是相互独立的:
E ( A ) E ( B ) = 0 E(A) E(B) = 0 E(A)E(B)=0
此外 :
E ( ε 2 ) = V a r ( ε ) E(varepsilon^2) = Var(varepsilon) E(ε2)=Var(ε)
所以由期望的平方分解继续推导公式:
M S E = E ( f ^ π ( x ) − f ( x ) ) 2 + E ( ε 2 ) − 2 E ( f ^ π ( x ) − f ( x ) ) E ( ε ) MSE = Eleft(hat{f}_{pi}(x)-f(x)right)^{2}+Eleft(varepsilon^{2}right) - 2Eleft(hat{f}_{pi}(x)-f(x)right) E(varepsilon) MSE=E(f^π(x)f(x))2+E(ε2)2E(f^π(x)f(x))E(ε
E ( ε ) = 0 E(varepsilon) = 0 E(ε=0 E ( ε 2 ) = V a r ( ε ) E(varepsilon^2) = Var(varepsilon) E(ε2)=Var(ε)
所以:
M S E = E ( f ^ π ( x ) − f ( x ) ) 2 + E ( ε 2 ) (4) MSE = Eleft(hat{f}_{pi}(x)-f(x)right)^{2}+Eleft(varepsilon^{2}right) tag{4} MSE=E(f^π(x)f(x))2+E(ε2)(4)
继续定义:
f ^ ˉ ( x ) = E ( f ^ T r ( x ) ) bar{hat f}(x)=Eleft(hat{f}_{Tr}(x)right) f^ˉ(x)=E(f^Tr(x))
也就是说, f ^ ˉ ( x ) bar{hat f}(x) f^ˉ(x)是对于所有训练集的预测函数的均值,它是固定constant的,不是随机的。
在这里,我们加一个 f ^ ˉ ( x ) bar{hat f}(x) f^ˉ(x)再减一个 f ^ ˉ ( x ) bar{hat f}(x) f^ˉ(x)
M S E = E ( [ f ^ T r a i n i n g ( x ) − f ^ ˉ ( x ) ] + [ f ^ ˉ ( x ) − f ( x ) ] ) 2 + V a r ( ε ) (5) MSE=E([hat{f}_{Training}(x) - bar{hat f}(x)] + [bar{hat f}(x) - f(x)])^{2} +Var(varepsilon) tag{5} MSE=E([f^Training(x)f^ˉ(x)]+[f^ˉ(x)f(x)])2+Var(ε)(5)
右边这一项, [ f ^ ˉ ( x ) − f ( x ) ] [bar{hat f}(x) - f(x)] [f^ˉ(x)f(x)]是constant,对于一个给定的x,这个表达式是恒定的,不是随机的,因为既没有噪声,也没有训练数据噪声的影响。

继续利用期望的平方公式,
这里,显然 E ( f ^ T r a i n i n g ( x ) ‾ − f ^ ‾ ( x ) ) Eleft(underline{hat{f}_{Training}(x)}-overline{hat{f}}(x)right) E(f^Training(x)f^(x))为0,每个值减去平均值的期望就是0,所以2E(A)E(B)为0,另外, [ f ^ ˉ ( x ) − f ( x ) ] [bar{hat f}(x) - f(x)] [f^ˉ(x)f(x)]是常数,所以 E [ f ^ ˉ ( x ) − f ( x ) ] = [ f ^ ˉ ( x ) − f ( x ) ] E[bar{hat f}(x) - f(x)] = [bar{hat f}(x) - f(x)] E[f^ˉ(x)f(x)]=[f^ˉ(x)f(x)]
最后化解为:
M S E = E ( f ^ T r a i n i n g ( x ) ‾ − f ^ ‾ ( x ) ) 2 + ( f ^ ˉ ( x ) − f ( x ) ) 2 + var ⁡ ( ε ) MSE = Eleft(underline{hat{f}_{Training}(x)}-overline{hat{f}}(x)right)^{2}+(bar{hat{f}}(x)-f(x))^{2}+operatorname{var}(varepsilon) MSE=E(f^Training(x)f^(x))2+(f^ˉ(x)f(x))2+var(ε)
也就是说,MSE这个误差可以叫作泛化误差,由方差、偏差的平方以及噪声组成。

E ( f ^ T r a i n i n g ( x ) ‾ − f ^ ‾ ( x ) ) 2 Eleft(underline{hat{f}_{Training}(x)}-overline{hat{f}}(x)right)^{2} E(f^Training(x)f^(x))2是方差,可以写作 V a r ( f ^ T r a i n i n g ( x ) ‾ − f ^ ‾ ( x ) ) Varleft(underline{hat{f}_{Training}(x)}-overline{hat{f}}(x)right) Var(f^Training(x)f^(x)),也就某次训练函数值和平均训练函数值的波动程度。刻画了不同训练数据扰动造成的影响

偏差 ( f ^ ˉ ( x ) − f ( x ) ) (bar{hat{f}}(x)-f(x)) (f^ˉ(x)f(x)):期望预测和真实结果的偏离,算法的拟合能力
噪声:期望泛化误差的下界,越高则任务越难。
希望偏差和方差都小。

Error vs flexibility

课件里说的flexibility说的应该就是对训练数据的拟合程度,越高,在测试数据的误差可能就越大。
所以,偏差越小,越flexibility

总结

朴素贝叶斯不难,关键是找一些例子,仔细计算,走一遍流程。这个PPT就不错。

最后

以上就是虚幻枕头为你收集整理的统计机器学习(三)性能度量的全部内容,希望文章能够帮你解决统计机器学习(三)性能度量所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部