【基础知识】第八章 线性回归和逻辑回归

一:一元线性回归

线性回归是机器学习中很基础的知识,这里复习推导一下。

在中学时代我们就接触过一元线性方程, 由x->y。

y=\omega x+b

 线性回归就是,我们通过y->x的过程。这里我们通过计算预测值y,真实值\hat{y}的差距

                                      loss[y,\hat{y}]=(y-\hat{y})^{2}                单个样本点差距

                                             loss[y,\hat{y}]=\frac{1}{N}\sum^N_{i=1} (y_{i}-\hat{y_{i}})^{2}     整个数据集的差距和的均值

代入上述公式得

loss[y,\hat{y}]=\frac{1}{N}\sum^N_{i=1} ((wx_{i}+b)-\hat{y_{i}})^{2}

 第一种方法:牛顿法NewTon

思想:对现有极小值点附近对f(x)做二阶泰勒展开,进而找到下一个估计值。

f(x)=f(x_{k})+{f}'(x_{k})(x-x_{k})+{f}''(x_{k})(x-x_{k})^{2}

我们知道,当{f}'(x)=0时,f(x)取最小值。

{f}'(x)={f}'(x_{k})+{f}''(x_{k})(x-x_{k})

x=x_{k}-\frac{​{f}'(x_{k})}{​{f}''(x_{k}))}

进而:x_{k+1}=x_{k}-\frac{​{f}'(x_{k})}{​{f}''(x_{k}))} k=0,1,2....

【基础知识】第八章 线性回归和逻辑回归_第1张图片

 第二种:最小二乘法

L[w,b]=\frac{1}{N}\sum^N_{i=1} ((wx_{i}+b)-\hat{y_{i}})^{2}

1:先对w求导

\frac{\partial }{\partial w}L(w,b)=\frac{2}{N}\sum^{N}_{i=1}((wx_{i}+b)-y_{i})x_{i}

2:再对b求导 

\frac{\partial }{\partial b}L(w,b)=\frac{2}{N}\sum^{N}_{i=1}((wx_{i}+b)-y_{i})

令:\frac{\partial }{\partial w}L(w,b)=0 and \frac{\partial }{\partial b}L(w,b)=0

w=\frac{p-\bar{x}\bar{y}}{s^2-\bar{x}^2            b=\bar{y}-\bar{x}m

第三种:梯度下降法

这里使用均方误差

loss[w,b]=\frac{1}{2N}\sum^N_{i=1} ((wx_{i}+b)-\hat{y_{i}})^{2}

L[w,b]=\frac{1}{2N}\sum^N_{i=1} (g(wx_{i}+b)-\hat{y_{i}})^{2}

根据链式求导法则 ,对w求导

\frac{\partial L(w,b)}{\partial w}=\frac{\partial L(w,b)}{\partial g(x_{i})}\frac{\partial g(x_{i})}{\partial w}

\frac{\partial L(w,b)}{\partial w}=2\frac{1}{N}\sum^N_{i=1} (g(wx_{i}+b)-\hat{y_{i}})\frac{\partial g(x_{i})}{\partial w}

\frac{\partial L(w,b)}{\partial w}=2\frac{1}{2N}\sum^N_{i=1} (g(wx_{i}+b)-\hat{y_{i}})[g(wx_{i}+b)(1-g(wx_{i}+b))x_{i}]

 对b求导

 \frac{\partial L(w,b)}{\partial b}=2\frac{1}{N}\sum_{i=1}^{N}(g(wx_{i}+b)-\hat{y})\frac{\partial g(x_{i})}{\partial b}

 \frac{\partial L(w,b)}{\partial b}=2\frac{1}{N}\sum_{i=1}^{N}(g(wx_{i}+b)-\hat{y})

更新 w,b

w = w - \eta \frac{\partial L(w,b)}{\partial w}

b = b - \eta \frac{\partial L(w,b)}{\partial b}

二:多元线性回归

三:逻辑回归

1:机器学习中按照目的不同可以分为两大类:回归和分类.

  • 线性回归的线性关系可以来拟合一个事情的发生规律,找到这个规律的表达公式,将得到的数据带入公式以用来实现预测的目的,我们习惯将这类预测未来的问题称作回归问题.
  • 逻辑回归就可以用来完成分类任务.

 输入变量与输出变量均为连续变量的预测问题是回归问题,输出变量为有限个离散变量的预测问题成为分类问题.

2: 逻辑回归———分类问题

首先解决离群值问题将线性的  y=wx+b     替换为非线性的    g(y)=\frac{1}{1+e^{-y}}

 g(x)=\frac{1}{1+e^{-wx}}

函数表达形式   

 P(y=0|w,x)=1-g(x)

 P(y=1|w,x)=g(x)

P(True)=g(x)^{y}(1-g(x))^{1-y}

根据极大似然估计, 就是所有样本预测正确的概率相乘得到的P(总体正确)最大

令 g_{\theta }(x)=\frac{1}{1+e^{-wx}}

L(\theta )=\prod_{i=1}^{N}g_{\theta }(x_{i})^{y_{i}}(1-g_{\theta }(x_{i}))^{1-y_{i}}

 上述公式最大时公式中W的值就是我们要的最好的W.下面对公式进行求解.我们知道,一个连乘的函数是不好计算的,我们可以通过两边同时取log的形式让其变成连加.

l(\theta )=logL(\theta )=\sum_{i=1}^{N}y_{i}log(g_{\theta }(x_{i}))+(1-y_{i})log(1-g_{\theta }(x_{i}))

 得到的这个函数越大,证明我们得到的W就越好.因为在函数最优化的时候习惯让一个函数越小越好,所以我们在前边加一个负号.得到公式如下: 这个函数就是我们逻辑回归(logistics regression)的损失函数,我们叫它交叉熵损失函数.

J(\theta )=logL(\theta )=\sum_{i=1}^{N}-y_{i}log(g_{\theta }(x_{i}))-(1-y_{i})log(1-g_{\theta }(x_{i}))

3:求解——梯度下降 

 \frac{\partial J(\theta )}{\partial \theta_{j} }=-\frac{1}{N}\sum_{i=1}^{N}[y_{i}\frac{1}{g_{\theta }(x_{i})}\frac{\partial g_{\theta }(x_{i})}{\partial \theta_{j} }+(1-y_{i}) \frac{1}{1-g_{\theta }(x_{i})} \frac{\partial (1-g_{\theta }(x_{i}))}{\partial \theta_{j} }]

=-\frac{1}{N} \sum_{i=1}^{N} [y_{i}\frac{1}{g_{\theta }(x_{i})}) - (1-y_{i})\frac{1}{1-g_{\theta }(x_{i})} \frac{\partial g_{\theta }(x_{i})}{\partial \theta _{j}} ]

=-\frac{1}{N}\sum_{i=1}^{N} [y_{i}\frac{1}{g(\theta ^Tx_{i})} - (1-y_{i}) \frac{1}{1-g(\theta ^Tx_{i})}] \frac{\partial g(\theta ^Tx_{i})}{\partial \theta _{j}} 

=-\frac{1}{N}\sum_{i=1}^{N} [y_{i}\frac{1}{g(\theta ^Tx_{i})} - (1-y_{i}) \frac{1}{1-g(\theta ^Tx_{i})}] g(\theta ^Tx_{i})[1-g(\theta ^Tx_{i})] \frac{\partial g(\theta ^Tx_{i})}{\partial \theta _{j}}

=-\frac{1}{N}\sum_{i=1}^{N}(y_{i}(1-g(\theta ^Tx_{i}))-(1-y_{i})g(\theta ^Tx_{i}))x_{i}^{j}

=-\frac{1}{N}\sum_{i=1}^{N}(y_{i}-g(\theta ^Tx_{i}))x_{i}^{j}

=-\frac{1}{N}\sum_{i=1}^{N}(g_{\theta }(x_{i})-y_{i})x_{i}^{j}

你可能感兴趣的:(机器学习基础知识,线性回归,机器学习,算法)