== 损失函数 ==
损失函数是衡量一个模型好坏的指标,一般来说损失函数的值越小越好。
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 )是定义在整个训练集上的,是所有样本误差的平均,也就是损失函数的平均。
损失函数是评估模型好坏的一个指标,而一个模型坏的时候无非就是过拟合和欠拟合的问题。
下面我们看看模型过拟合和欠拟合分别是怎样的情况。
过拟合的预测会去刻意得迎合异常值,导致预测值的方差Ω(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、虽然有误差但是误差始终保持在直线的上下两侧。
而曲线模型为了拟合每一个点,导致增减的趋势不明确,会对预测造成偏差。
所以最优的模型是当拟合程度处于虚线位置附近时的模型,取的是偏差和方差之间的权衡。
至于下面的公式为何成立,我们后续再解答。