机器学习菜鸟笔记01

机器学习菜鸟笔记01

模型评估与选择

经验误差与过拟合

一般把学习器的实际预测值与样本真实输出值之间的差异称为“误差”,

学习器在训练集上的误差称为“训练误差”或者“经验误差” ;

学习器在新样本上的误差 称为泛化误差

过拟合:如果学习器将训练样本学习到误差接近为0,则会把训练样本自身的一些特点当做所有潜在样本都会具有的一般性质,这样会导致泛化性能降低。

评估方法

如果仅有一个数据集,就要对该数据集进行适当的处理,从而产生适当的训练集与测试集。

留出法

保持数据集中数据分布的一致性,直接将数据集划分为两个互斥的集合,分别作为训练集S和测试集T。S,T中的样本类别比例应当近似。

使用留出法一般采用多次随机划分,重复进行试验评估取平均值。

缺点在于:

  • 若S较小,T较大,则训练样本集和数据集偏差大
  • 若S较大,T较小,则测试集得到的泛化误差偏大

通常2/3~4/5用于训练样本

交叉验证法

将数据集划分为k个互斥子集,每个子集尽可能保持数据分布的一致性,然后依次将一个子集作为测试集,其余k-1个子集作为训练集,进行k次试验后求平均值。通常把交叉验证法称为 k折交叉验证。通常也会将数据集使用不同的划分重复p次。

自助法

数据集D中包含m个样本,从中随机挑选一个样本,拷贝一份放入空数据集D1,然后原样本放回数据集D,重复m次试验,经过计算得初始数据集D中一共有36.8%的样本未出现在D1中,一般将D1作为训练集,将D\D1作为测试集,此时,实际评估的样本和期望评估的样本都是m个训练样本。自助法评估也称包外估计

调参与最终模型

大多数学习算法都有参数需要设定,所以除了对适用学习算法进行选择,还要对参数进行设定,即调参

每种参数配置都会训练出模型,常常选择的方法是 对每个参数选定一个范围和变化步长,实际评估的时候就选择按照要求选中的几个点作为参数配置训练模型。

性能度量

性能度量就是对学习器的泛化性能进行评估时,衡量模型泛化能力的评价标准。

回归任务中最常用的性能度量是“均方误差”

错误率和精度

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

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

查准率,查全率与F1

二分类问题:常将样本数据根据其真实值和学习器预测类型组合划分为真正例(TP),假正例(FP), 真反例(TN),假反例(FN).满足TP+FP+TN+FN = 样本总数,真正例表示真实情况和模型预测结果都是正例,假正例表示真正情况为反例,但是预测结果为正例,真反例表示真实情况为反例,预测结果也是反例,假反例表示真实情况为正例,但是预测结果为反例。

查准率:P = TP/(TP+FP) 真正例/(真正例+假正例) 预测结果为正例中精度为多少

查全率:R = TP/(TP+FN) 真正例/(真正例+假反例) 真实情况为正例有两种预测结果,分别是真正例和假反例,所以查全率表示的是真实情况为正例的情况中真正例的比例

一般来说,查准率和查全率成反比关系,因为要提高查全率,就会把很多不符合的选进来,则查准率降低。

PR图像

若一个学习器的PR曲线被另一个包住,则该学习器的性能比包住他的差。若曲线发生了交叉,则一般比较PR曲线下的面积大小。

平衡点(BEP):是查准率和查全率相等的取值。此时BEP等于查准率和查全率。比较BEP大小即可判断性能优劣。

F1:使用BEP过于简化,用的更多的是F1度量:

F1 = 2PR/(P+R) = 2*TP/(样例总数+TP-TN)

Fβ = (1+β2)PR/[(β2*P)+R]

F1是Fβ中β等于1时退化的形式,β>0度量的是查全率对查准率的相对重要性。β>1:查全率有更大影响;

β<1:查准率影响更大。

多次二分类混淆矩阵,执行多分类任务(两两对应一个混淆矩阵)

方法1:在各混淆矩阵上分别计算出查准率查准率和查全率,记为(P1,R1),(P2,R2),…,(Pn,Rn),再算平均值,得到的查准率平均值为 宏查准率(macro-P),得到的查全率平均值为 宏查全率(macro-R),以及相应的 宏F1(macro-F1)

方法2:先将混淆矩阵的对应元素进行平均,得到TP,FP,TN,FN的平均值。再基于这些平均值计算出 微查准率(micro-P),微查全率(micro-R),微F1.

ROC与AUC

ROC曲线就是基于考虑学习器在不同任务下的“期望泛化性能”好坏来研究学习器泛化性能的曲线。其全称为“受试者工作特征”曲线。根据学习器的预测结果对测试样本进行排序,然后逐个把样本作为正例进行预测,计算出 假正例率(FPR),真正例率(TPR),并作为ROC曲线的横轴,纵轴。其中TPR = TP/(TP+FN),FPR = FP/(TN+FP)

AUG:表示的是ROC曲线下的面积。

排序损失(loss):给定m+ 个正例和m-个反例,D+,D-分别表示正例反例集合。对于每一对正反例:

  • 若正例预测值小于反例,则记一个“罚分”
  • 若正例预测值等于反例,则记半个“罚分”

Lrank对应的是ROC曲线上方的面积,所以AUG = 1- Lrank

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

代价矩阵:第i行第j列的costij代表第i类样本预测为第j类样本的代价。一般costij的绝对值不重要,但是比值重要。

非均等代价指的是赋予每个类别造成的损失代价不同的情况,在非均等代价下,考虑的不是错误的次数,而是最小化总体代价

代价曲线的绘制:(横轴:取值为[0-1]的正例概率代价;纵轴:取值为[0-1]的归一化代价)

ROC曲线上的每一点对应代价平面上的一条线段

设ROC上一点坐标为(TPR,FPR),则可相应计算出FNR(假反例率 = 1-TPR)

然后在代价平面上绘制一条从(0,FPR)到(1,FNR)的线段,线段下的面积即表示该条件下的期望总体代价。

诸如此类将所有ROC曲线上的点转化到代价平面上去

围成的面积就是在所有条件下学习器的期望总体代价,所有线段下界形成代价曲线

比较检验

假设检验

这里的假设是对学习器泛化错误率分布的某种判断或猜想。一般泛化错误率与测试错误率不相等但是相近,所以可以根据测试错误率估推出泛化错误率的分布。

泛化错误率等于学习器在一个样本上犯错的概率。测试错误率可以算出在测试样本中误分类的样本数m,然后可以计算出恰好将测试样本集中m个样本误分类的概率,这也表示在测试样本集上,泛化错误率被测为测试错误率的概率。这个概率符合二项分布,当测试错误率和泛化错误率相等时,概率取最大值。

你可能感兴趣的:(机器学习)