机器学习之逻辑回归

   逻辑回归其实是一个分类算法而不是回归算法。通常是利用已知的自变量来预测一个离散型因变量的值(像二进制值0/1,是/否,真/假)。简单来说,它就是通过拟合一个逻辑函数(logit fuction)来预测一个事件发生的概率。所以它预测的是一个概率值,自然,它的输出值应该在0到1之间。--计算的是单个输出

1.假设函数(Hypothesis function)

首先要先介绍一下Sigmoid函数,也称为逻辑函数(Logistic function):

sigmoid函数图像

从上图可以看到sigmoid函数是一个s形的曲线,它的取值在[0, 1]之间,在远离0的地方函数的值会很快接近0或者1。它的这个特性对于解决二分类问题十分重要

因为在二分类中,输出y的取值只能为0或者1,所以在线性回归的假设函数外包裹一层Sigmoid函数,使之取值范围属于(0,1),完成了从值到概率的转换。逻辑回归的假设函数形式如下:

则若P(y=1|x;\theta )=0.7,表示输入为x时,y=1的概率为70%。

2.决策边界--假设函数的一个属性,决定于其参数

决策边界,也称为决策面,是用于在N维空间,将不同类别样本分开的直线或曲线,平面或曲面。

根据以上假设函数表示概率,我们可以推得

所以 h\theta (x)=0.5, 即\theta ^TX=0 时为决策边界。

线性决策边界:


决策边界为:x1+x2=3

非线性决策边界:


决策边界为:x1^2+x2^2=1

3.代价函数(优化目标):

在线性回归中,我们给出代价函数定义:

由于它是一个凸函数,所以可用梯度下降直接求解,局部最小值即全局最小值。

但在逻辑回归中,h_{\theta }(x) 是一个复杂的非线性函数,属于非凸函数,直接使用梯度下降会陷入局部最小值中。类似于线性回归,逻辑回归的J(\theta )的具体求解过程如下:

对于输入x,分类结果为类别1和类别0的概率分别为:

P(y=1|x;\theta )=h(x);        P(y=0|x;\theta )=1-h(x);

则整合之后为:P(y|x;\theta )=(h(x))^y(1-h(x))^(1-y)

似然函数为:

似然函数

对数似然函数为:

对数似然函数

根据最大似然估计,此时应该使用梯度上升求最大值,为了便于使用梯度下降法,这里将J(\theta )=-\frac{1}{m} l(\theta )

求解J(\theta )的最小值可以使用梯度下降法,根据梯度下降可得\theta 的更新过程为:

下面来求偏导,式中α学习步长:

由此,\theta 的更新过程可以写成:(下式的\frac{1}{m} 一般省略)

除了梯度下降之外,还有以下优化代价函数的方法:

1. 共轭梯度法(Conjugate Gradient)

2. BFGS

3. L-BFGS

在这些方法中,相比梯度下降,有以下优点和缺点:

1. 不需要主观的选择学习率α,算法中的内循环会自动调节

2. 速度更快

3. 算法更复杂

多元分类:一对多

多分类(multi-classification)是指分类的结果不只两类,而是有多个类别。

逻辑回归本质上是一种二分类的算法,但是可以通过搭建多个二分类器的思想,实现多分类。

针对类别A ,设 A 为正类,非A 为反类,搭建h_{\theta }^1 (x)二分类器 

针对类别B ,设  B为正类,非B 为反类,搭建h_{\theta }^2(x) 二分类器 

针对类别 ,设  为正类,非 为反类,搭建h_{\theta }^3(x)二分类器 

.......


这是我在进行机器学习的过程中关于逻辑回归的笔记和总结,希望能够帮助大家,如果文章中有错误,希望大家指出,我们一起进步。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容