美文网首页机器学习
06 回归算法 - 损失函数、过拟合欠拟合

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

作者: 白尔摩斯 | 来源:发表于2018-10-14 09:45 被阅读122次

    == 损失函数 ==

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

    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

    相关文章

      网友评论

        本文标题:06 回归算法 - 损失函数、过拟合欠拟合

        本文链接:https://www.haomeiwen.com/subject/gyaoaftx.html