机器学习学习笔记——线性模型和Logistic回归

1.基本形式

给定由d个属性描述的示例x=\left ( x_1;x_2;x_3;...;x_d \right )(,其中x_ix在第i个属性上的取值,线性模型通过对属性的线性组合来预测的函数:

                                                          f(x)=w_1x_1+w_2x_2+...+w_dx_d+b(一般写成向量形式);

参数w的大小可以反映对应属性的“偏好”;

2.线性回归

使用均方误差衡量预测与真实之间误差大小,即(f(x_i)-y_i)^2,求最小值使误差最小;

                                                                    \left ( w^*,b^* \right )=argmin\sum ^m_{i=1}\left ( f\left(x_i \right )-y_i \right )^2

分别对w和b求偏导,在令偏导为0,则可得到最优解,多选线性回归问题类似。

3.对数几率回归

对数几率回归问题主要对用于分类问题,对数几率问题在很多地方称为逻辑回归。用直线y=w^Tx+b对数据点进行拟合的过程叫做回归,用公式​表示线性回归。由于输入到输出是非线性映射的,因此考虑单调可微函数g(\cdot)​,令

                                                                                  y=g^{-1}(w^Tx+b)

用对数几率函数(logistic function)替代​g(\cdot)的回归模型称为Logistic回归,常用

                                                                                       y=\frac{1}{1+e^{-z}}

代替,通过对y=0.5点判断进行分类,解决了阶跃函数不连续的问题。。函数图像如下:

                                                                

                                                                                         图1 sigmoid函数图像

Logistic回归优缺点:

  • 优点:计算代价不高,易于理解实现;

  • 缺点:容易欠拟合,分类精度不高;

  • 适用数据类型:数值型和标称型。

4.梯度上升法

梯度是一个向量,指一个函数在某一点处沿着梯度方向变化最快,变化率最大。将梯度记为\bigtriangledown​,则函数​f(x,y)的梯度可以表示为 :

                                                                    \bigtriangledown f(x,y)=\binom{\frac{\partial{f(x,y)}}{\partial{x}}}{\frac{\partial{f(x,y)}}{\partial{y}}}

该公式表示在二维空间中,梯度沿​x方向移动\frac{\partial{f(x,y)}}{\partial{x}}​,沿y​方向移动\frac{\partial{f(x,y)}}{\partial{y}}​。用公式表示题都上升为

                                                                 w_{n+1}=w_n+\alpha\bigtriangledown_wf(w)

其中\alpha表示沿梯度方向前进的步长。上式会一直迭代,直到降到目标误差或者达到迭代次数位置。

def gradAscent(data_mat, label_mat):
    dataMatrix = np.mat(data_mat)
    classMatrix = np.mat(label_mat).transpose()
    m, n = np.shape(dataMatrix)
    alpha = 0.001
    epoch = 400
    weights = np.ones((n, 1))
    for k in range(epoch):
        mul = dataMatrix * weights
        h = sigmoid(mul)
        error = h - classMatrix
        weights = weights + alpha * dataMatrix.transpose() * error #1
    return weights

在注释1处的梯度上升公式有变化,推导如下:


由于输入向量为​z=w_1x_1+w_2x_2+\cdots+w_nx_n,可转化为矩阵形式

                                                                        z= \begin{bmatrix} w_1&w_2&\cdots&w_3 \end{bmatrix} \begin{bmatrix} x_1 \\ x_2\\ \vdots \\ x_n \end{bmatrix}=\textbf{w}^T\cdot\textbf{x}

其中\textbf{w}=\begin{bmatrix}w_1\\w_2\\\vdots\\w_n\end{bmatrix}​,\textbf{x}=\begin{bmatrix}x_1\\x_2\\\vdots\\x_n\end{bmatrix}​。原sigmoid函数可改为

                                                                                     h_w(x)=\frac{1}{1+e^{-\textbf{w}^T\cdot\textbf{x}}}                                                                              (1)

对于二分类问题,若用h_w(x)​表示分类为0和1的概率,则概率分别为:

                                                                                P(y=1|x;w)&=h_w(x)\\ P(y=0|x;w)&=1-h_w(x)

对似然函数求对数得到

                                                                LL(w)&=log(\prod^m_{i=1}(h_w(x_i))^{y_i}(1-h_w(x_i))^{1-y_i})\\ &=\sum_{i=1}^mlog(h_w(x_i)^{y_i})+log(1-h_w(x_i))^{1-y_i})\\ &=\sum_{i=1}^my_ilogh_w(x_i)+(1-y_i)log(1-h_w(x_i))

对上式求导

                                           \frac{\partial{LL(w)}}{\partial{w}}=\sum^{m}_{i=1}y_i\cdot\frac{1}{h_w(x_i)}\cdot\frac{\partial{h_w(x_i)}}{\partial{w}}+(1-y_i)\cdot\frac{-1}{1-h_w(x_i)}\cdot\frac{\partial{h_w(x_i)}}{\partial{w}}\\=\sum_{i=1}^m\frac{\partial{h_w(x_i)}}{\partial{w}}\cdot(\frac{y_i}{h_w(x_i)}-\frac{1-y_i}{1-h_w(x_i)})

将公式(1)带入上式得到

                                              \frac{\partial{LL(w)}}{\partial{w}}=\sum^{m}_{i=1}x_i\cdot h_w(x_i)\cdot(1-h_w(x_i))\cdot(\frac{y_i}{h_w(x_i)}-\frac{1-y_i}{1-h_w(x_i)})\\ =\sum^{m}_{i=1}x_i\cdot y_i\cdot(1-h_w(x_i))-x_i\cdot h_w(x_i)\cdot(1-y_i)\\ =\sum^{m}_{i=1}x_i\cdot(y_i-h_w(x_i))

上式中​(y_i-h_w(x_i))为真实值和期望值的差,即误差error​。


5.梯度下降法

梯度下降法与梯度上升法原理相同,将​w_{n+1}=w_n+\alpha\bigtriangledown_wf(w)改为​w_{n+1}=w_n-\alpha\bigtriangledown_wf(w)即可,唯一不同的是梯度上升法是求最大值,而梯度下降法是求最小值。

6.线性判别分析

线性判别分析思想很简单,将平面上的点投影到一条直线上,通过在直线上的投影进行分类。通过均值向量和协方差矩阵等度量。欲使同类样例的投影点尽可能接近,让同类样例投影点协方差尽可能小;欲使异类样例投影点尽可能远,让中心之间距离尽可能大。

7.多分类学习

多分类学习氛围OvO,OvR,和MvM。

  • OvO即一对一,每次从类别中选取两个进行分类,则会产生N(N-1)/2个分类任务(N为分类数),最后通过投票产生结果,即选取多数。
  • OvR即一对剩余,每次将一个类选为正例,其余所有选为反例进行学习,这样会产生N个分类任务。
  • MvM即多对多,每次选取若干个为正例,若干个为反例进行学习。OvO和OvR是MvM的特殊情况。
  • MvM正反例构造技术:纠错输出码(ECOC)。ECOC有二元和三元码。ECOC具有一定的容错与修正能力。

常用距离判定:

  • 欧氏距离:d=\sqrt\left ( y_1-y_2 \right )^2
  • 海明距离:即编码中不同的个数。

8.总结

第三章主要介绍线性模型,对回归和分类问题进行了解释,线性模型是最基本的模型,其中原理不难理解,推导过程需要加强理解。

参考文献

[1] Peter Harringtom. 机器学习实战[M].北京, 人民邮电出版社, 2013.

[2] 周志华. 机器学习[M].北京,清华大学出版社,2016.

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值