《机器学习》周志华 读书笔记

第一章:绪论

泛化能力:学到模型适用于新样本的能力。衍生:泛化偏差算法

概括偏好:算法在机器学习过程当中对某种假设的偏好bootstrap

“奥卡姆剃刀”原则:如有多个假设与观察一致,则选最简单的那个机器学习

NFL定理:没有免费的午饭。算法没有优劣好坏,针对具体问题具体分析工具

第二章:模型评估与选择

2.1经验偏差与过拟合P23

过拟合:为了获得一致假设而使假设变的过分复杂。模型过分拟合,在训练集上表现好,测试集上效果差。性能

欠拟合:模型拟合不够,在训练集上表现效果差。学习

缘由及解决办法:测试

  过拟合:spa

1:模型过于复杂→减小模型复杂度,增长正则化项,L1范数或L2范数.net

2:特征选取不合理→人工筛选特征,使用特征选择算法排序

  欠拟合:

1:模型过于简单→增长模型复杂度eg、使用线性模型拟合二次曲线数据

2:特征集过少、数据集过少、抽样数据不合理

2.2评估方法

测试集应该尽量与训练集互斥

2.2.1留出法P25

留出法:直接将数据集D划分为2个互斥的集合,通常是7:3(7为训练集,3为测试集)

评估:通常要采用若干次随机划分重复进行试验评估后取平均值做为留出法的评估结果。

常见作法:大约2/3~4/5的样本用于训练。通常而言,测试集至少应含有30个样例。

2.2.2交叉验证法P26

交叉验证法:先将数据集划分为k个大小类似的互斥子集,每一个子集都尽量保持数据分布一致性,即从数据集中经过分层采样获得;而后,每次用k-1个子集的并集做为训练集,余下的那个子集做为测试集;这样就可得到k组训练/测试集,从而可进行k次训练和测试,最终返回的是这k个测试结果的均值。也称为:k折交叉验证。K经常使用取值是10.

K折交叉验证一般要随机使用不一样的划分重复p次,最终的评估结果是这p次k折交叉验证结果的均值。

   交叉验证法的一个特例:留一法LOO:假定数据集中包含m个样本,若令k=m。缺陷:在数据集比较大时,训练模型的计算开销难以忍受。

2.2.3自助法

自助法:它直接以自助采样法(bootstrapsampling,便可重复或有放回采样)为基础,给定包含m个样本的数据集D,咱们对它进行采样产生数据集D’,每次随机从D中挑选一个样本,将其拷贝放入D’,而后再将该样本放回初始数据集D中,使得该样本在下次采样时仍有可能被采到;这个过程重复执行m次后,咱们就获得了包含m个样本的数据集D’,这就是自助采样的结果。

  包外估计:初始样本集D中约有36.8%的样本未出如今采样数据集D’中,因而咱们可将D’用做训练集,D\D’用做测试集(‘\’表示集合减法)。

特色:自助法在数据集较小、难以有效划分训练/测试集时颇有用;对集成学习等方法有很大的好处。自助法需引入估计误差。

2.2.4调参与最终模型

2.3性能度量

性能度量:对学习器的泛化性能进行评估,不只须要有效可行的实验估计方法,还须要有衡量模型泛化能力的评价标准。

模型好坏:不只取决于算法和数据,还决定于任务需求

回归任务最经常使用的性能度量是“均方偏差”

2.3.1错误率与精度

分类任务中最经常使用的两种性能度量:错误率与精度;既适用于二分类也适用于多分类。

  错误率:分类错误的样本数占样本总数的比例。

  精度:分类正确的样本数占样本总数的比例。

2.3.2查准率、查全率与F1

经常使用于信息检索、Web搜索等应用中常常出现。

对于二分类问题:

真实状况

预测结果

正例

反例

正例positive

TP真正例(true positive)

FN假反例(false negative)

反例negative

FP假正例(false positve)

TN真反例(true negative)

precision查准率P=TP/(TP+FP)

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

查准率-查全率曲线,简称“P-R曲线”,图为“P-R图”,评估性能好坏就是比较P-R曲线下面积的大小;引入“平衡点(BEP)”进行平衡点比较。

案例:

1:商品推荐系统中,为了尽量少打搅用户,更但愿推荐内容确是用户感兴趣的,查准率很关键。

2:逃犯信息检索系统中,更可能少漏掉逃犯,此时查全率比较重要。

  F1是基于查准率与查全率的调和平均。

Fβ是加权调和平均(根据对查准率/查全率不一样偏好设置权重)。β>0度量了查全率对查准率的相对重要性;β=1时退化为标准的F1;β>1时查全率有更大的影响,β<1时查准率有更大影响。

  P32,多个二分类混淆矩阵,用宏F1(macro-F),微F1(macro-F1)

2.3.3ROC与AUC

截断点(cut point),p与0.5比较,大于0.5为正例,反之。

ROC曲线则是从拍讯自己质量的好坏角度出发来研究学习期泛化性能的有力工具。

ROC全称是“受试者工做特征”曲线;ROC曲线纵轴是“真正例率(TPR)”,横轴是“假正例率(FPR)”。

  TPR=TP/(TP+FN)

 FPR=FP/(FN+FP)

AUC是ROC曲线下的面积。AUC=1—排序损失。AUC的取值范围在0.5和1之间。比较数值。

经典解析:ROC曲线图中的四个点和一条线。第一个点,(0,1),即FPR=0,TPR=1,这意味着FNfalse negative=0,而且FPfalse positive=0Wow,这是一个完美的分类器,它将全部的样本都正确分类。第二个点,(1,0),即FPR=1TPR=0,相似地分析能够发现这是一个最糟糕的分类器,由于它成功避开了全部的正确答案。第三个点,(0,0),即FPR=TPR=0,即FPfalse positive=TPtrue positive=0,能够发现该分类器预测全部的样本都为负样本(negative)。相似的,第四个点(1,1),分类器实际上预测全部的样本都为正样本。通过以上的分析,咱们能够断言,ROC曲线越接近左上角,该分类器的性能越好。

为何使用ROC曲线
既然已经这么多评价标准,为何还要使用ROC和AUC呢?由于ROC曲线有个很好的特性:当测试集中的正负样本的分布变化的时候,ROC曲线可以保持不变。在实际的数据集中常常会出现类不平衡(class imbalance)现象,即负样本比正样本多不少(或者相反),并且测试数据中的正负样本的分布也可能随着时间变化。

2.3.4代价敏感错误率与代价曲线 P35

没看太懂,但愿参考R或Python代码理解。

2.4比较检验 P37

2.4.1假设检验