统计学习方法概论

前言

之前看机器学习导论和龙星计划的视频,觉得相当枯燥-_-||,于是了解了一下每一类模型算法大致是怎么回事,然后开始敲代码着手实践,涉及到算法选择和优化部分的时候,显得相当吃力,于是重新拾起机器学习理论部分,打算在把原理公式认认真真的推导一遍,完全吃透,西瓜书作为学习教材,李航的《统计学习方法》作为参考教材,希望能把机器学习的基础打牢,虽然公式很多,但是作为推导了四年多公式的物理科班生来说,还是可以接受的。。。

前两张大概记了五页多的笔记,有点乱,我给总结一下
- 统计学习三要素
- 模型
- 策略
- 模型评估与选择
- 性能度量


统计学习三要素

模型+策略+算法 MSA

模型

F={ f|Y=f(x) } ;
F ={ f|Y=fi(x),iRn }, inRn
非概率模型:决策函数 f(x) 表示;概率模型:条件概率表示

策略

损失函数&风险函数
loss function: L(Y,f(x))
1.0-1损失函数:
L(Y,f(x))=1,0,Yf(x)Y=f(x)
2.平方损失函数:
L(Y,f(x))=(Yf(x))2
3.绝对损失函数:
L(Y,f(x))=|Yf(x)|
4.对数损失函数:
L(Y,p(y|x))=logp(y|x)
5.损失函数期望:
Rexp(f)=Ep[L(Y,f(x))]=xyL(Y,f(x))p(x,y)dxdy
6.模型 f(x) 的平均损失(经验风险):
Remp(f)=1NNi=0L(yi,f(xi)) 经验风险最小化原则
7.极大似然估计:
8.结构风险:经验风险+正则化项(或罚项,表示模型的复杂度)
Rsrm(f)=1NNi=1L(yi,f(xi))+λJ(f)

模型评估与选择

模型评估:
1. Y=f(x) (不重要,判断给定的问题是否易学习)
etest(f)=1NNi=1L(yi,f(xi)) ,N为训练样本容器(重要,反应对未知测试数据的预测能力)
2.测试误差:
et=1NNi=1L(yi,f(xi))
3.泛化能力:将学习方法对未知的数据预测能力称为泛化能力
4.过拟合:将数据的自身特点当做了潜在样本的一般性质,使得模型的复杂度很高,泛化能力降低。
5.欠拟合:对数据的一般性质没有学好。
当复杂度增大时,训练误差会逐渐减小并趋向于0;而测试误差会先减小,达到最小值后又增大,当选择的模型复杂度过大时,过拟合现象就会发生。这样,在学习时就要防止过拟合,进行最优的模型选择
这里写图片描述
模型选择:
1.正则化(结构风险最小化的实现)的一般形式:

minfF1Ni=1NL(yi,f(xi))+λJ(f)

第一项为经验风险;第二项为正则化项, λ>=0 为调整两者之间的关系系数,在回归问题中,损失函数是平方损失,正则化项可以是参数向量 L2 的范数: L(w)=1NNi=0(f(xi,w)yi)2+λ2||w||2 ;
也可以是参数向量的 L1 范数:
L(w)=1NNi=0(f(xi,w)yi)2+λ||w||1
2.交叉验证:重复使用数据,把给定的数据进行切分,将切分的数据集组合为训练集和测试集,在此基础上反复进行训练、测试和模型的选择。
简单交叉验证:随机将数据分为两部分(一般情况下70%为训练集,30%为测试集),在各种条件下训练模型,选出测试误差最小的模型;
k折交叉验证:随机将已给的数据切分为k个互不相交大小相同的子集,然后利用k-1个子集的数据训练数据,余下的子集测试模型;对k种选择重复进行,选出平均测试误差最小的模型;
留一交叉验证:k=N,其中N为数据集的容量(复杂度太高了);
自助法:对包含m个样本的数据集D,对其进行有放回的采样,构造一个容量为m的数据集D’,显然,D中一部分样本会在D’中多次出现,但是有一部分不会出现,样本不被采样到的概率:
p=(11m)mlimm(11m)m=1e0.368

因此有36.8%的数据未出现在采样数据集D’当中,因此将D’做训练集,将D’中未出现的数据构成的集合为测试集(在数据集小,难以划分数据集时很有用,但是可能会改变初始数据集的分布,引入估计偏差,因此在数据量充足时交叉验证法更常用一些)

性能度量

一.误差率和准确率
当损失函数是0-1损失时,测试误差就变成了常见的测试数据集上的误差率:
etest(f)=1NNi=1I(yif(xi)) ; yif(xi) 时为1,否则为0。
同样,测试数据集上的准确率为:
rtest(f)=1NNi=1I(yi=f(xi)) ; rtest+etest=1

二.查准率、查全率与 F1
对于二分类问题,分类结果的混淆矩阵如下:

真实情况预测结果预测结果
正例反例
正例TP(真正例)FN(假反例)
反例FP(假正例)TN(真反例)

P=TPTP+FP;R=TPTP+FN
一般情况下,查准率和查全率是一对矛盾的度量。
通过瓜农摘瓜的例子(classic)更好的理解这两个概念:摘取的瓜都预测为熟的,如果认为所有瓜都熟了而摘取,查准率必然会比较低,但是查全率比较高;若选出好瓜的比例尽可能高的话,会漏掉不少的好瓜,这样会降低查全率。
P-R图:
这里写图片描述
图解:
若一个学习器的P-R曲线被另一个学习器完全“包住”,则后者性能高于前者
若有交叉:
1.可以找出平衡点,即查全率等于查准率的点,平衡点值大则性能较优;
2.F1度量:F1是基于查准率和查全率的调和平均定义的:
1F1=12(1P+1R) 得到 F1=2PRP+R=2TP+TPTN
3. Fβ 度量:
针对查准率和查全率的重视程度,例如在商品推荐系统中,为了尽可能少打扰用户,更希望推荐内容确实用户感兴趣的,此时查准率更重要;而在逃犯信息检索系统中,更希望尽可能少漏掉逃犯,此时查全率更重要。F1度量的一般形式—— Fβ ,能让我们表达出对查准率/查全率的不同偏好。
他加权调和平均定义为: 1Fβ=11+β2(1P+β2R) 得到

Fβ=(1+β2)PRβ2P+R
其中, β>0 度量了查全率和查准率的相对重要性,\beta =1,退化为标准的F1度量;\beta>1,查全率有更大的影响;\beta<1,查准率有更大的影响。

三.ROC和AUC
ROC(受试者工作特征)曲线,与P-R曲线类似,通过ROC曲线来判断学习器的泛化性能。
方法:将“(FPR)假正例率”和“(TPR)真正例率”,分别将其作为横纵坐标,FPR和TPR的定义如下:

TPR=TPTP+FNFPR=FPTN+FP
,根据学习器的预测结果对样例进行排序,然后把分类阈值设为最大,即把所有样例均预测为反例,此时真正例率和假正例率均为0。然后,将分类阈值依次设为每个样例的预测值,即依次将每个样例划分为正例。设前一个标记点坐标为 (x,y) ,当前若为真正例,则对应标记点的坐标为 (x,y+1m+) ;若为假正例,则对应标记点的坐标为 (x+1m) ,然后用线段连接相邻点即得。( m+m )
这里写图片描述
AUC:若ROC曲线被另一个ROC曲线包住,则后者性能优于前者,若有交叉,则可以通过AUC来判断学习器的性能。AUC曲线为ROC曲线下的面积,计算公式为
AUC=12i=1m1(xi+1xi)(yi+yi+1)

四.代价敏感错误率与代价曲线

真实类别预测类别预测类别
01
00 cost01
1 cost10 0

代价敏感(cost-sensitive)错误率:

E(f;D;cost)=1m(xiD+II(f(xi)yi)cost01+xiDII(f(xi)yi)cost10)

“代价曲线”可以直接反应出学习器的期望总体代价,正例代价:
P(+)cost=pcost01pcost01+(1p)cost10

归一化代价:
costnorm=FNRpcost01+FPR(1p)cost10pcost01+(1p)cost10

绘制步骤:ROC曲线上每一点对应了代价平面上的一条线段,设ROC曲线上点的坐标为(FPR,TPR),则可相应计算出FNR,然后在代价平面上绘制一条(0,FPR)到(1,FNR)的线段,将每个点转化为代价平面上的一条线段,然后取所有线段的下界,得到学习器的期望总体代价,如下图:
这里写图片描述

to be continued

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值