06 回归算法 - 损失函数、过拟合欠拟合-阿里云开发者社区

开发者社区> 人工智能> 正文

06 回归算法 - 损失函数、过拟合欠拟合

简介: == 损失函数 == 损失函数是衡量一个模型好坏的指标,一般来说损失函数的值越小越好。 0~1损失函数: J(θ)=$begin{cases}1,Y≠f(X)\0,Y=f(X)\end{cases}$ 如果预测值不等于真实值,J(θ)值加1。

== 损失函数 ==

损失函数是衡量一个模型好坏的指标,一般来说损失函数的值越小越好。

0~1损失函数:

J(θ)=$begin{cases}
1,Y≠f(X)\
0,Y=f(X)\
end{cases}
$

如果预测值不等于真实值,J(θ)值加1。
该函数只能用在分类的模型中,因为回归预测出的结果不太可能完全一致,一般回归模型要求是预测结果误差越小越好。

感知损失函数:

J(θ)=$begin{cases}
1,|Y-f(X)|>t\
0,|Y-f(X)|≤t\
end{cases}
$

如果真实值和预测值之间的误差超过某个阈值t,J(θ)值加1。

平方和损失函数:

J(θ)=$sum_{i=1}^m(h_θ(x^i) - y^i)^2 $
预测值与实际值差的平方和,即最小二乘法。

绝对值损失函数:

J(θ)=$sum_{i=1}^m|h_θ(x^i) - y^i| $
预测值与实际值差的绝对值的和,即最小二乘法。

绝对值损失函数:

J(θ)=$sum_{i=1}^m (y^ilogh_θ(x^i)) $
解决多分类的损失函数,即logistic回归的损失函数。

== 过拟合欠拟合 ==

注意:上述公式中,有累加符号的是代价函数,去掉其累加符号就是对应的损失函数。这个概念要了解一下。

损失函数(Loss Function )是定义在单个样本上的,算的是一个样本的误差。

代价函数(Cost Function )是定义在整个训练集上的,是所有样本误差的平均,也就是损失函数的平均。

损失函数是评估模型好坏的一个指标,而一个模型坏的时候无非就是过拟合和欠拟合的问题。

下面我们看看模型过拟合和欠拟合分别是怎样的情况。
随着时间推移,话题k和用户兴趣之间的关系

过拟合
过拟合的预测会去刻意得迎合异常值,导致预测值的方差Ω(f)会比较大。

欠拟合
欠拟合的预测,预测值和真实值本身差距就很远。预测的偏差L(f)很大。

良好拟合的状态
好的模型不会刻意得迎合异常值,同时预测也相对的准确。

误差是有两部分构成的:过拟合的方差+欠拟合的偏差2
同时又有公式如下:
误差 = E(预测值-真实值)2; E表示期望 (求平均)

通过上述公式可以推导出一个$color{red}{方差偏差权衡}$ 的概念
这里推荐一篇英文文献《Understanding the Bias-Variance Tradeoff》
http://scott.fortmann-roe.com/docs/BiasVariance.html

方差偏差权衡
横坐标表示从欠拟合状态逐渐发展到过拟合状态的过程。
纵坐标表示误差的值由低到高。
1、首先看最上方的曲线,表示总体的误差值。当模型欠拟合的时候总体误差值是最很大的,当模型的拟合度逐渐提高的时候,总体模型预测的误差值随之减小。但当拟合程度向过拟合发展的时候,虽然训练集上的拟合程度越来越高,但是在测试集上的误差会越来越大。
2、中间的曲线,表示偏差。随着拟合程度的增加,偏差会逐渐减小。
3、最下方的曲线,表示方差。随着拟合程度的增加,方差会逐渐增大。

过拟合-方差
有同学反馈不明白 “ 过拟合的预测会去刻意得迎合异常值,导致预测值的方差Ω(f)会比较大。” 这句话的意思,我补充一下。
根据上面的图,x表示实际值,直线和曲线分别是两条模型。
这里的直线是一个比较优秀的模型,原来在于:
1、对于数据的预测该模型体现了一个明确的增长趋势。
2、虽然有误差但是误差始终保持在直线的上下两侧。
而曲线模型为了拟合每一个点,导致增减的趋势不明确,会对预测造成偏差。

所以最优的模型是当拟合程度处于虚线位置附近时的模型,取的是偏差和方差之间的权衡。

至于下面的公式为何成立,我们后续再解答。

误差 = 过拟合的方差+欠拟合的偏差2

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
人工智能
使用钉钉扫一扫加入圈子
+ 订阅

了解行业+人工智能最先进的技术和实践,参与行业+人工智能实践项目

其他文章