Standford 机器学习—第三讲 Logistic Regression 逻辑回归

来源:互联网 发布:上网监控软件下载 编辑:程序博客网 时间:2024/06/06 04:23

本栏目(Machine learning)包括单参数的线性回归、多参数的线性回归、Octave Tutorial、Logistic Regression、Regularization、神经网络、机器学习系统设计、SVM(Support Vector Machines 支持向量机)、聚类、降维、异常检测、大规模机器学习等章节。所有内容均来自Standford公开课machine learning中Andrew老师的讲解。

Logistic Regression 逻辑回归

  • Logistic Regression 逻辑回归
    • Classification
    • Decision Boundary 决策边界
    • cost function代价函数
    • 高级优化
    • Multi-class Classification One-vs-all
    • Regularization 正则化
      • 1 什么是过度拟合
      • 2 如何解决过拟合问题
      • 3 正则化线性回归regularized linear regression
      • 4 正则化逻辑回归

1. Classification

假设函数:
模型的输出变量范围始终在0和1之间。
假设模型为:hθ(x)=g(θTX)
其中:X代表特征向量,g代表逻辑函数,即S型函数

g(z)=11+ez

z=θTX

hθ(x)=11+eθTX

函数图如下:

这里写图片描述

hθ(x) 的作用是,对于给定输入变量,算出 y=1 的可能性,即hθ(x)=P(y=1|x;θ)
例如:对于给定x,得出hθ(x)=0.7,则表示有 70% 的概率 y=1。

2. Decision Boundary 决策边界

所谓Decision Boundary就是能够将所有数据点进行很好地分类的h(x)边界。
如下图所示,假设形如h(x)=g(θ0+θ1x1+θ2x2)的hypothesis参数   θ=311, 则有
predict Y=1, if -3+x1+x2>=0
predict Y=0, if -3+x1+x2<0
刚好能够将图中所示数据集进行很好地分类

这里写图片描述

除了线性boundary还有非线性decision boundaries,比如hθ(x)=g(θ0+θ1x1+θ2x2+θ3x21+θ4x22)
下图中,进行分类的decision boundary就是一个半径为1的圆,如图所示:

这里写图片描述

结论:
假设函数:hθ(x)=g(θTX),其中

z=θTX

g(z)=11+ez

预测:
hθ(x)0.5 时, y=1
hθ(x)<0.5 时, y=0
根据 S 型函数图像得出:
z0.5 时, g(z)0.5
z<0.5 时, g(z)<0.5
即:
θTX0.5 时, y=1
θTX<0.5 时,y=0

3. cost function代价函数

定义逻辑回归的cost function为:

这里写图片描述

y=0 和 y=1 时的cost funciton 函数图如下:

这里写图片描述

这里写图片描述
由于y只会取0,1,那么就可以写成

J(θ)=1m[i=1my(i)loghθ(x(i))+(1y(i))log(1hθ(x(i)))]

对应的梯度下降算法为:

θj:=θjαi=1m(hθ(x(i))y(i))x(i)j

对应的梯度 J(θ)θj 用矩阵的运算结果为

J(θ)θj=1m(XT(hθ(x(i))y(i))

这里的梯度和 θ 的维度是一样的

注意:必须要同时更新 θ 的值,虽然看上去和线性回归的梯度下降很像,但是这里的 hθ(x)=g(θTX)  与线性回归是不同的

4. 高级优化

这部分内容将对logistic regression 做一些优化措施,使得能够更快地进行参数梯度下降。本段实现了matlab下用梯度方法计算最优参数的过程。
首先声明,除了gradient descent 方法之外,我们还有很多方法可以使用,如下图所示,左边是另外三种方法,右边是这三种方法共同的优缺点,无需选择学习率α,更快,但是更复杂。具体的octave和matlab实现这里先略过,后续有机会补上。

这里写图片描述

5. Multi-class Classification One-vs-all

所谓 one-vs-all method 就是将 binary 分类的方法应用到多类分类中。
比如我想分成 K 类,那么就将其中一类作为 positive,另(k-1)合起来作为 negative,这样进行 K 个 hθ(x) 的参数优化,每次得到的一个 hθ(x) 是指给定 θ 和 x,它属于 positive 的类的概率。

这里写图片描述

在做预测时,需要把所有的分类 hθ(i)(x) 都运行一遍,求出最大的 hθ(x) ,就是x所分到的类,即预测的结果。

6. Regularization 正则化

正则化,是用来改善或者减少在回归的过程中产生的过度拟合(overfitting)的问题的。

6.1 什么是过度拟合

当我们有非常多的特征,我们通过学习得到的假设函数能够非常好的适应训练集(代价函数几乎为0),但是可能不能很好的应用到新的数据中去。例子如下:

这里写图片描述

左边图为欠拟合,右边图为过拟合,中间图为刚刚好。

6.2 如何解决过拟合问题

  1. 丢弃一些不能帮助我们预测的特征,可以手工选择保留哪些特征,或者使用模型来解决。

  2. 正则化。保留所有的特征,但是减少参数的大小。好处 :当特征很多时,每一个特征都会对预测y贡献一份合适的力量。

代价函数:

J(θ)=12mi=1m((hθ(x(i))y(i))2+λj=1nθ2j)

其中 λ 称为正则化参数(regularization parameter)

按照惯例,不对 θ0 进行惩罚。如果选择的 λ 的值过大,则会导致所有的参数 θ 都最小化了,导致模型变成 hθ(x)=θ0 ,造成欠拟合。所以必须要选取一个合理的 λ 的值。

6.3 正则化线性回归(regularized linear regression)

  1. 基于梯度下降的算法
    θ0:=θ0αmi=1m((hθ(x(i))y)x(i)0)

θj:=θj(1αλm)α1mi=1m(hθ(x(i))y(i))x(i)j

注意:j 从 1,2,3…,n

  1. 正规方程

这里写图片描述

正则化还可以解决 XTX 不可逆的问题

6.4 正则化逻辑回归

和linear regression一样,我们给J(θ)加入关于θ的惩罚项来抑制过拟合:

这里写图片描述

用Gradient Descent的方法,令J(θ)对θj求导都等于0,得到

这里写图片描述

这里我们发现,其实和线性回归的θ更新方法是一样的。

0 0
原创粉丝点击