[Machine Learning] 4 逻辑回归(Logistic Regression)

在这里插入图片描述

4 Logistic Regression(逻辑回归)

4.1 Classification

在分类问题中,需要预测的变量 𝑦 是离散的值,这种学习算法称为逻辑回归 (Logistic Regression) 的算法,这也是目前最流行的一种学习算法。

分类问题的例子有:判断一封电子邮件是否是垃圾邮件;判断一次金融交易是否是欺诈;区别一个肿瘤是恶性的还是良性的。

以二元的分类问题为例
将因变量(dependent variable)可能属于的两个类分别称为负向类(negative class)和正向类(positive class),则因变量y∈0,1,其中 0 表示负向类,1 表示正向类。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
使用线性回归算法解决分类问题

  • 对于分类, 𝑦 取值为 0 或者 1。
  • 对于线性回归,那么假设函数的输出值可能远大于 1,或者远小于 0,即使所有训练样本的标签 𝑦 都等于 0 或1。尽管标签应该取值 0 或者 1,但是算法得到的值可能远大于 1 或者远小于 0的话。
  • 所以需要研究一种新的算法——逻辑回归算法,这个算法的性质是:逻辑回归实质上是在线性回归的基础上进行改进的,逻辑回归将线性回归的输出经过Sigmoid函数转换为(0, 1)之间的概率值,通过与阈值0.5进行判断决定样本属于哪一个类别。逻辑回归算法是分类算法,它是作为分类算法使用。

4.2 Hypothesis Representation(假设陈述)

在这里插入图片描述
sigmoid函数也叫做logistic函数,也是逻辑回归的激活函数,用于隐层神经元输出,取值范围为(0,1),它可以将一个实数映射到(0,1)的区间,可用作二分类。并且是一个单调上升的函数,具有良好的连续性,不存在不连续点。

4.3 Decision Boundary(决策边界)

决策边界(decision boundary) 的概念能更好地理解逻辑回归的假设函数在计算什么。

在具有两个类的统计分类问题中,决策边界或决策表面是超曲面,其将基础向量空间划分为两个集合,一个集合。 分类器将决策边界一侧的所有点分类为属于一个类,而将另一侧的所有点分类为属于另一个类。
决策界限并不总是明确的。 也就是说,从特征空间中的一个类到另一个类的过渡不是不连续的,而是渐进的。
在决策边界上的样本点,即满足决策边界条件的样本点,分为哪一类都可以,但实际应用中很少发生。

在这里插入图片描述
在这里插入图片描述
case1 线性决策边界:
在这里插入图片描述
参数𝜃 是向量[-3 1 1],则当−3 + 𝑥1 + 𝑥2 ≥ 0,即𝑥1 + 𝑥2 ≥ 3时,模型将预测 𝑦 =1。 我们可以绘制直线𝑥1 + 𝑥2 = 3,这条线便是我们模型的分界线,将预测为 1 的区域和预测为 0的区域分隔开。这个过程其实是感知机。

Logistic 回归还需要加一层,它要找到分类概率 P(Y=1) 与输入向量 x 的直接关系,然后通过比较概率值来判断类别。

case2 非线性决策边界:
在这里插入图片描述
𝑦 = 0 的区域和 𝑦 = 1 的区域需要曲线才能分隔,二次方特征:ℎ𝜃(𝑥) = 𝑔(𝜃0 + 𝜃1𝑥1 + 𝜃2𝑥2 + 𝜃3𝑥12 + 𝜃4𝑥22),其参数𝜃 是向量[-1 0 0 1 1],则得到的决策边界恰好是圆点在原点且半径为 1 的圆形。

逻辑回归的思路是,先拟合决策边界(不局限于线性,还可以是多项式),再建立这个边界与分类的概率联系,从而得到了二分类情况下的概率。

4.4 Cost Function(代价函数)

监督学习问题中的逻辑回归模型的拟合问题,即是要定义用来拟合参数的优化目标/代价函数。
在这里插入图片描述
对于线性回归模型,定义的代价函数是所有模型误差的平方和。理论上来说,逻辑回归模型可以沿用这个定义,但是问题在于,当将在这里插入图片描述
代入到这样定义的代价函数中时,得到的代价函数将是一个非凸函数(non-convexfunction)。这意味着我们的代价函数有许多局部最小值,这将影响梯度下降算法寻找全局最小值。
在这里插入图片描述

在这里插入图片描述
这样构建的𝐶𝑜𝑠𝑡(ℎ𝜃(𝑥), 𝑦)函数的特点是:当实际的 𝑦 = 1 且ℎ𝜃(𝑥)也为 1 时误差为 0,当 𝑦 = 1 但ℎ𝜃(𝑥)不为 1 时误差随着ℎ𝜃(𝑥)变小而变大;当实际的 𝑦 = 0 且ℎ𝜃(𝑥)也为 0 时代价为 0,当𝑦 = 0 但ℎ𝜃(𝑥)不为 0 时误差随着 ℎ𝜃(𝑥)的变大而变大。
在这里插入图片描述
python代码实现:

import numpy as np
def cost(theta, X, y):
	 theta = np.matrix(theta)
	 X = np.matrix(X)
	 y = np.matrix(y)
	 first = np.multiply(-y, np.log(sigmoid(X* theta.T)))
	 second = np.multiply((1 - y), np.log(1 - sigmoid(X* theta.T)))
	 return np.sum(first - second) / (len(X))

在得到这样一个代价函数以后,我们便可以用梯度下降算法来求得能使代价函数最小的参数了。算法为:
在这里插入图片描述
求导后,得:
在这里插入图片描述
推导过程:
在这里插入图片描述
注:虽然得到的梯度下降算法表面上看上去与线性回归的梯度下降算法一样,但是这里的ℎ𝜃(𝑥) = 𝑔(𝜃T𝑋)与线性回归中不同,所以实际上是不一样的。另外,在运行梯度下降算法之前,进行特征缩放依旧是非常必要的。

线性回归和逻辑回归是同一个算法吗?
线性回归的假设函数:在这里插入图片描述
逻辑函数假设函数:在这里插入图片描述
因此,即使更新参数的规则看起来基本相同,但由于假设的定义发生了变化,所以逻辑函数的梯度下降,跟线性回归的梯度下降实际上是两个完全不同的东西。

当使用线性回归的梯度下降法时,监控梯度下降法以确保其收敛,同样的方法用在逻辑回归中,来监测梯度下降,以确保它正常收敛。

当使用梯度下降法来实现逻辑回归时,有不同的参数𝜃,就是𝜃0 𝜃1 𝜃2 一直到𝜃𝑛,需要用表达式来更新这些参数。我们还可以使用 for 循环来更新这些参数值,用 for i=1 to n,或者 for i=1 to n+1。当然,不用 for 循环也是可以的,理想情况下,更提倡使用向量化的实现,可以把所有这些 n 个参数同时更新。

另外,线性回归的特征缩放的方法也适用于逻辑回归。如果特征范围差距很大的话,那么应用特征缩放的方法,同样也可以让逻辑回归中,梯度下降收敛更快。

4.5 Advanced Optimization(高级优化)

高级优化的思路是通过梯度下降,进行逻辑回归的速度大大提高,而这也将使算法更加适合解决大型的机器学习问题,比如,我们有数目庞大的特征量。 另外,想要使代价函数𝐽(𝜃)最小化,那么需要做的是编写代码,当输入参数 𝜃 时,程序会计算出两样东西:𝐽(𝜃) 以及𝐽 等于 0、1 直到 𝑛 时的偏导数项。
在这里插入图片描述
假设已经完成了可以实现这两件事的代码,那么梯度下降所做的就是反复执行这些更新。

另一种考虑梯度下降的思路是:需要写出代码来计算𝐽(𝜃) 和这些偏导数,然后把这些插入到梯度下降中,然后它就可以最小化这个函数。

对于梯度下降来说,从技术上讲,实际并不需要编写代码来计算代价函数𝐽(𝜃)。只需要编写代码来计算导数项,但是,如果希望代码还要能够监控这些𝐽(𝜃) 的收敛性,那么就需要编写代码来计算代价函数𝐽(𝜃)和偏导数项 𝜕/𝜕𝜃𝑗 𝐽(𝜃)。所以,在写完能够计算这两者的代码之后,就可以使用梯度下降。

然而梯度下降并不是唯一可使用的算法,还有其他一些算法,更高级、更复杂。如果能用这些方法来计算代价函数𝐽(𝜃)和偏导数项𝜕/𝜕𝜃𝑗 𝐽(𝜃)两个项的话,那么这些算法就是为优化代价函数的不同方法,Conjugate gradient(共轭梯度法)BFGS (变尺度法)L-BFGS (限制变尺度法) 就是其中一些更高级的优化算法,它们需要有一种方法来计算𝐽(𝜃),以及需要一种方法计算导数项,然后使用比梯度下降更复杂的算法来最小化代价函数。

三种算法的优缺点

  • 优点是:一、通常不需要手动选择学习率𝛼,对于这些算法的一种思路是,给出计算导数项和代价函数的方法,可以认为算法有一个智能的内部循环,称为线性搜索(line search)算法,它可以自动尝试不同的学习速率 𝛼,并自动选择一个好的学习速率𝑎,因此它甚至可以为每次迭代选择不同的学习速率,那么就不需要手动选择。二、这些算法实际上不仅仅是选择一个好的学习率,它们最终收敛的速度一般快于梯度下降
  • 缺点是:它们比梯度下降法复杂多了。

4.6 Multiclass Classification: One-vs-all(多类别分类:一对多)

在这里插入图片描述
对于二元分类可以使用逻辑回归,对于直线可以将数据集一分为二为正类和负类,对于一对多的分类思想可以将其用在多类分类问题上,有时这个方法也被称为 "一对余"方法

将多个类中的一个类标记为正向类(𝑦 = 1),然后将其他所有类都标记为负向类,这个模型记作ℎ𝜃(1)(𝑥)。接着,类似地选择另一个类标记为正向类(𝑦 = 2),再将其它类都标记为负向类,将这个模型记作 ℎ𝜃(2)(𝑥),依此类推,得到一系列的模型简记为: ℎ𝜃(𝑖)(𝑥) = 𝑝(𝑦 = 𝑖|𝑥; 𝜃)其中:𝑖 = (1,2,3. . . . 𝑘)。 最后,在预测时,将所有的分类机都运行一遍,然后对每一个输入变量,都选择最高可能性的输出变量。
在这里插入图片描述

4.7 Classification and Regression(分类与回归)

在这里插入图片描述
即, 把雨天误分为晴天和把雨天误分为阴天这两种情况的“错误程度”是否相当,若是则是分类问题,若不是则是回归问题。

上一篇:3 多变量线性回归(Linear Regression with Multiple Variables)
下一篇:5 正则化(Regularization)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值