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

一. 经验偏差与过拟合算法

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

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

显然有,错误率+精度=1 恒成立机器学习

偏差:学习器的实际预测输出,与样本的真实输出之间的差别。函数

训练偏差/经验偏差:学习器在训练集上的偏差性能

泛化偏差:学习器在新样本上的偏差学习


显然咱们的目标是获得“泛化偏差”尽量小的学习器,也即在新样本上能够表现得尽量好的学习器。这里涉及两个概念:测试

过拟合:学习能力“过强”。将训练集自己特性看成全部潜在样本的统一性质,使得泛化性能降低。spa

欠拟合:学习能力“过弱”。对训练集样本自己特性都未能学好。3d

例如,对一些散点咱们进行拟合。

                                                      

                              (图一:过拟合)                                                                                                                                        (图二:欠拟合)

显然这几个散点,用二次函数去拟合是比较适宜的。图一采用了四次函数,使得模型彻底的贴合训练集,使得其泛化性大大下降。

图二才用了线性关系,虽然也不错,但就这个例子中,其学习能力没有是不够的。


说明了“过拟合”和“欠拟合”的概念后,这里咱们须要强调的是。实际在机器学习应用中,“过拟合”是机器学习面临的关键障碍。而且,“过拟合是没法完全避免的”,咱们在各种算法中所作的措施,也只能是尽量去“缓解”过拟合。


同一问题有多种算法,而就算对于同一算法,也有不一样的参数配置。在机器学习中,咱们把“选择学习方法,选择参数配属”的这种过程,称为“模型选择


二.评估方法

测试集:用来判断学习器对新样本的判别能力的测试样本的集合。而且结果的“测试偏差”,也将做为泛化偏差的近似。


当咱们只有一个数据集,既要训练,又要测试的时候,咱们必须对数据集进行必定的处理。从中产生出数据集S和训练集T。如下是常见的几种方法:

1.留出法

将数据集D直接划分为两个互斥的集合,一个集合做为数据集S,另外一个做为测试集T。

在对数据集进行划分的时候,要采用“分层采样”

譬如D有500正例,500反例。训练集包含70%样本,则训练集S应含350正例,350反例。测试集T应含150正例,150反例。

注意的是,单次使用留出法,结果每每不稳定可靠。所以,使用留出法时,咱们要采用若干次随机划分、重复进行实验评估后取均值做为留出法的评估结果。


2.交叉验证法

交叉验证法,能够看做留出法的“增强版”

咱们将数据集D直接划分为k个互斥的集合,每一次,用(k-1)个集合的并集做为数据集S,余下那个做为测试集T。这样,咱们能够进行k次训练和测试,最终返回的是,这k个测试结果的均值。

“交叉验证法”一般也被称做“k折交叉验证”。其中最经常使用的是“10折交叉验证


特别的,若是数据集D中包含m个样本,咱们令k=m,此时有了交叉验证法特例中的“留一法”。

其优势是:不受随机样本划分方式的影响;  评估结果每每比较准。

缺陷:若数据集大,则计算量没法承受;由NFL定理,纵然这样的巨大计算量,也未必能保证它比其余方法更准确。


3.自助法(bootstrapping)

某数据集D包含m个样本,对这些样本进行m次有放回的抽样,并把每次抽样结果,放到D‘这个新的数据集里。


显然,初始数据集中,约有36.8%的样本未出如今采样数据集D’中。也就是说,D‘相比较于D,样本数量都为m,只是样本中有重复的。

自助法里,咱们以D’为训练集,而以从D中m次抽样,都未能抽到的部分为测试集。

相比较于“留出法”和“交叉验证法”, 自助法更适用于数据集较小、难以有效划分训练集、测试集时候使用。
而且因为它能产生不一样的训练集,由于对集成学习也有好处。

问题在于,它改变了初始数据集的分布。所以,在初始数据量足够时,这种方法使用较少。

三. 性能度量

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

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


在引入下面的概念前,咱们先看一个表格。

上面表格中,横坐标“classfication”表示“预测结果”。纵坐标“condition”表示“真实状况”。

所以由图显然可知,总共存在4种可能的状况,分别是:

FN:False Negative,即“假反例”。被断定为负样本,但事实上是正样本。

​FP:False Positive,即“假正例”。被断定为正样本,但事实上是负样本。

​TN:True Negative,即“真反例”。被断定为负样本,事实上也是负样本。

​TP:True Positive,即“真正例”。被断定为正样本,事实上也是正样本。


有了上述的基本概念,下面咱们能够给出“查准率”和“查全率”的定义和公式。

查准率:真正例的个数,占咱们所认为的正确的总个数的比例。

查全率:真正例的个数,占整个数据集里中的正确的总个数的比例。

即:

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

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

例如,在100个西瓜中,咱们认定当中的80个是好瓜。而这80个好瓜中,真正的好瓜数是60个。那么此时“查准率”是60/80*100%=75%

又如,在100个西瓜中,有80个是真正的好瓜。在咱们认定的好瓜数中,有40个是真正的好瓜。那么此时“查全率”是40/80*100%=50%


显然P与R是相互矛盾的一对量。当其中一个高的时候,另外一个通常都会低。而咱们实际中每每须要综合考量这二者,取这二者的综合性能更好的。

十几种,咱们会做出“P-R图”来帮助分析二者相互关系,而且以“平衡点BEP”(查准率=查全率时的取值)做为度量。

可是BEP仍是过于简化了,实际中咱们用的更多的是F1和Fp。








(未完待续)