机器学习基础 第六章 模型选择

1 模型选择方法

下图是不同阶多项式回归问题,从中可以看到不同的M取值所对应的不同效果,M=0和M=1时都是欠拟合,M=9多拟合,M=3时多项式回归模型刚好合适,在实际应用中不能将每个模型都画出来进行观察。


这里写图片描述

在模型选择中如何才能得到一个不过拟合也不欠拟合的模型?将数据集分为:训练集,交叉验证集,测试集。对于每个可能的模型,用训练数据训练模型然后在训练好的模型上做交叉验证,在所有的模型中选出交叉验证结果最好的模型最为最终模型,然后在最终模型上的测试数据的精度作为最终的模型精度。

2 交叉验证

有的时候也将数据集分为训练集和测试集,将训练数据集再次作为测试数据集用于测试模型的性能,在方法论上是错误的,因为这种测试方法会使模型对未知数据的预测误差变得很大。

为了避免过拟合,用训练集训练模型,用测试集测试模型的性能。

但是这种划分方法会减少训练集中的样本,也许对模型很有用的样本最终就没有被划分到训练集中。所以一种解决方法是将数据全集连续划分多次,使之成为多个训练集和测试集,最终的模型得分是这几个训练集和测试集的平均得分,这一过程称为交叉验证。交叉验证计算时间较长,但是不会浪费样本数据信息,交叉验证方法在小数据时相当有用。

2.1 计算交叉验证指标

有数据d,经过k次平均分割,每次分割成trainitesti 分别代表第i 个测试集合训练集,用traini 训练模型,并用testi 测试模型,得到的第i 个模型的得分是scorei ,当结果k 次执行后,共得到k 个得分[score1,score2,,scorek] ,求这k 个得分的平均值作为模型的最终得分。

2.2 数据集分割方法

2.2.1 K折法

将数据平均分成K 份,称为K 折。用其中的K1 份作为训练数据,剩下的一份作为测试,进行K 次训练和测试,得到K个得分作为最终的得分。

2.2.2 留一验证法(LOO)

留一验证从样本全集中取出一个作为测试样本,剩下的所有样本作为训练样本。假设有n 个样本,将会有n 个不同的训练集和测试集,这种方法不会浪费过多的训练数据,因为只有一个数据作为测试样本。

2.2.3 留P个样本验证(LPO)

这个方法和留一验证法类似,留一验证中留的是留一个样本作为测试样本,这里留的是P 个样本而已。

3 模型性能的评价准则

3.1 混淆矩阵

二分类问题的混淆矩阵如下,P,N 为预测结果。


这里写图片描述
图3.1.1 二分类问题混淆矩阵

定义:TP :为正类别预测为正类(正确预测);FP :正类被预测为负类(错误预测);FN :负类被预测为正类(错误预测);TN :负类被预测为负类(正确预测)。P,N 为预测结果

3.2 准确率、召回率、F-得分

1 二分类问题

定义:按照图1.2-1中的定义,得到二分类的准确率、召回率、F-measures如下

precision=TPTP+FP

recall=TPTP+FN

Fβ=(1+β2)precision×recallβ2×precision+recall

2 多分类问题

定义:

  • y 是预测结果(集合),集合元素为(sample,label)

  • y^ 是真实结果(集合),集合元素为(sample,label)

  • L 是类别集合

  • S 是样本集合

  • yl 是类别l 的预测结果

  • P(A,B)|AB||A|

  • R(A,B)|AB||B|

  • Fβ(A,B)(1+β)P(A,B)×R(A,B)β2P(A,B)+R(A,B)

1)对所有类别的准确率、召回率、Fβ 度量值求平均:

precision=1LlLP(yl,y^l)

recall=1LlLR(yl,y^l)

Fscore=1LlLFβ(A,B)

2)对整个样本计算准确率、召回率、Fβ 度量值:

precision=P(y,y^)

recall=R(y,y^)

这中算法中microprecision=micro_recallFscore=Fβ(y,y^)

3)支持度加权平均计算准确率、召回率、Fβ 度量值:

precision=1lL|yi^|lL|yi^|P(yl,y^l)

recall=1lL|yi^|lL|yi^|R(yl,y^l)

Fscore=1lL|yi^|lL|yi^|Fβ(yl,y^l)

4)分别计算每个类别的准确率、召回率、F-得分,类似于1)中的不加权情况。

发布了137 篇原创文章 · 获赞 91 · 访问量 67万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章