逻辑回归推导
我们在讲逻辑回归推导前,先给大家介绍下损失函数
损失函数用于描述模型预测值与真实值的差距大小。一般对于回归问题的算法有—均值平方差(MSE)和交叉熵。
1、均值平方差
均值平方差(Mean Squared Error,MSE),也称“均方误差”,在神经网络中主要是表达预测值和真实值之间的差异,在数理统计中,均方误差是指参数估计值与参数真值之差平方的预期值。
2、交叉熵
交叉熵(crossentropy)也是loss算法的一种,一般用在分类问题上,表达意思为预测输入样本属于哪一类的概率。其表达式如下,其中y代表真实值分类(0或1), a代表预测值。
二分类情况下的公式:
C=−1m∑i=1m[yln(ai)+(1−y)ln(1−ai)] C=-\frac{1}{m}\sum_{i=1}^{m}[{yln(a_{i}})+({1-y)ln(1-a_{i}})] C=−m1i=1∑m[yln(ai)+(1−y)ln(1−ai)]
交叉熵也是值越小,代表预测结果越准。
3、损失算法的选取
损失函数的选取取决于输入标签数据的类型:
如果输入的实数、无界的值,损失函数使用均值平方差。
如果输入标签是位矢量(分类标志),使用交叉熵会更适合。
下面我们正式进入推导过程
假如我们得到线性回归如下:
f(x)=θ0+θ1x1+θ2x2+⋅⋅⋅+θnxn f(x)=\theta _{0}+\theta _{1}x_{1} +\theta _{2}x_{2}+\cdot \cdot \cdot +\theta _{n}x_{n} f(x)=θ0+θ1x1+θ2x2+⋅⋅⋅+θnxn
线性回归是拟合函数,给我们提供的是一个预测值,值的范围是(-∞,+∞),如果我们想知道分布概率,这时候我们可以引入sigmoid函数,将f(x)f(x)f(x)值 从(-∞,+∞)压缩到(0,1),
对线性可分样本,我们将f(x)f(x)f(x) 代入sigmoid函数,即可得到:
Z=11+e−x=11+e−f(x) Z=\frac{1}{1+e^{-x}}=\frac{1}{1+e^{-f(x)}} Z=1+e−x1=1+e−f(x)1
这是 若 f(x)=0 ,则Z=0.5,
若f(x)>0 ,则Z>0.5,我们将Z>0.5,分为1类,令y=1,
若f(x)<0 ,则Z<0.5,我们将Z<0.5,分为0类,令y=0,
这里我们令
h(x)=Z=11+e−f(x) h(x)=Z=\frac{1}{1+e^{-f(x)}} h(x)=Z=1+e−f(x)1
这时我们可得到概率模型
P(xi)={
h(xi)ify=11−h(xi)ify=0 P(x_{i})=\left\{\begin{matrix} h(x_{i}) &if y=1 \\ 1-h(x_{i}) &if y=0 \end{matrix}\right. P(xi)={
h(xi)1−h(xi)ify=1ify=0
我们进一步把两式整合
P(x)=(h(xi))yi∗(1−h(xi))1−yi P(x)=(h(x_{i}))^{y_{i}}*(1-h(x_{i}))^{1-y_{i}} P(x)=(h(xi))