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

1 模型选择方法

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


这里写图片描述

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

2 交叉验证

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

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

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

2.1 计算交叉验证指标

有数据d,经过k次平均分割,每次分割成 traini testi 分别代表第 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_recall Fscore=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)中的不加权情况。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值