机器学习模型 知乎_机器学习-模型选择与评价

交叉验证

首先选择模型最简单的方法就是,利用每一种机器学习算法(逻辑回归、SVM、线性回归等)计算训练集的损失值,然后选择其中损失值最小的模型,但是这样是不合理的,因为当训练集不够、特征过多时容易过拟合,那么训练集的损失值就会不断变小,但是此时针对测试集可能损失值很高,所以训练集上的损失值是无法衡量模型的好坏的。

我们的办法就是增加交叉验证集,即将所有数据分为三部分:训练集、交叉验证集和测试集。交叉验证集不仅在选择模型时有用,在超参数选择、正则项参数

和评价模型中也很有用。

简单交叉验证利用训练集训练模型

利用交叉验证集在每一种模型上测试并计算损失值

选择损失值最小的模型

但是简单交叉验证存在一个问题,就是因为增加了验证集后,导致训练集的数据更少了,这样模型可能无法更好地的体现整体数据,所以提出以下交叉验证的方法。

k-折叠交叉验证假设训练集为

,将训练集等分为

份:

然后每次从集合中拿出

份进行训练

利用集合中剩下的那一份来进行测试并计算损失值

最后得到

次测试得到的损失值,并选择平均损失值最小的模型

Bias与Variance,欠拟合与过拟合

如下图,针对同一组数据的三种模型,可以看出来中间的模型可以更好的表现数据,其中左边的模型一般称为欠拟合,右边的模型称为过拟合。

欠拟合一般表示模型对数据的表现能力不足,通常是模型的复杂度不够,并且Bias高,训练集的损失值高,测试集的损失值也高。

过拟合一般表示模型对数据的表现能力过好,通常是模型的复杂度过高,并且Variance高,训练集的损失值低,测试集的损失值高。

具体如下图所示:

针对Bias于Variance,有多种解释方法。

第一种:

一般用下面两张图表示:

Bias描述的是模型与数据表现的真实情况的差别,Variance描述的是我们的假设与最好的假设之间的差别。

第二种:Bias是表明模型在整体数据上表现,不在乎其中某一个样本的正确与否

对于Variance,一个样本的变动会给整个模型带来很大的影响,是模型抗样本干扰能力有多强

如下图所示:

高Bias的模型,单个样本对模型影响不大。

高Variance的模型,一个样本的变化可以改变整个模型。

第三种:

解决方法

针对机器学习模型,在效果不佳时可以有如下解决办法:增加训练样本----解决高Variance情况

减少特征维数----解决高Variance情况

增加特征维数----解决高Bias情况

增加模型复杂度----解决高Bias情况

减小模型复杂度----解决高Variance情况

针对过拟合的情况,我们可以采取上述中的1、2、5的方法,除此之外,我们还可以在损失函数中增加正则项(L0、L1、L2范数)来解决过拟合的问题。

一般监督学习可以看做最小化下面目标函数:

其中

函数为损失函数,

就是规则化函数,也可以叫做正则项。我们增加正则项的主要原因是为了让

更稀疏,使模型不容易过拟合(后面会详细解释)。

函数具体可以有很多种选择,常见的有L0范数、L1范数、L2范数等。其中:L0范数是向量中非零元素的个数

L1范数是向量中各个元素绝对值之和,

L2范数是向量的模,

其中L0范数由于不好实现,所以一般不采用。

针对L1范数,它能实现特征的自动选择,一般来说,

的大部分元素(也就是特征)都是和最终的输出

没有关系或者不提供任何信息的,在最小化目标函数的时候考虑

这些额外的特征,虽然可以获得更小的训练误差,但在预测新的样本时,会干扰了对正确

的预测。稀疏规则化算子就是为了完成特征自动选择,它会自己学习去掉这些没有信息的特征,也就是把这些特征对应的权重置为0。

针对L2范数,与L1范数的区别是不会将权重置为0,而会是一个很小的数,这样可以通过

来控制模型拟合程度,如下图所示

针对正则项,我们还可以有如下理解(来自知乎问题机器学习中常常提到的正则化到底是什么意思? @陶轻松的回答 ):将函数

泰勒展开,

当n很大的时候,特征就越多,模型就越复杂,越容易过拟合。

因为

是我们学习到的,所以我们要做的就是改变

的大小减少特征维数,降低模型复杂度,也是让一部分

趋近于0。

所以在目标函数中加入正则项,利用L0、L1、L2范数来改变

参考

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值