首先学习逻辑回归之前,需要先了解一下什么是线性回归:
https://blog.csdn.net/u013236891/article/details/90772643
logistic回归又称logistic回归分析,是一种广的线性回归分析模型,既然已经有了线性回归模型,我们为什么还要使用逻辑回归?
如下图所示:在线性回归中使用0.5作为阈值来判断正例和负例的依据,但是在下图中,如果继续使用0.5作为阈值就不合适了,会导致错误的样本分类。二逻辑回归可以将预测范围从实数域压缩到(0,1)范围内,进而提升预测准曲率。
逻辑回归使用sigmoid函数将预测值映射为(0, 1)上的概率值,帮助判断结果。如下图所示:
使用Py代码可以实现上图:
import matplotlib.pyplot as plt
import numpy as np
def Sigmoid(x):
return 1.0 / (1.0 + np.exp(-x))
x = np.arange(-10, 10, 0.1)
h = Sigmoid(x) # Sigmoid函数
plt.plot(x, h)
plt.axvline(0.0, color='k') # 坐标轴上加一条竖直的线(0位置)
plt.axhspan(0.0, 1.0, facecolor='1.0', alpha=1.0, ls='dotted')
plt.axhline(y=0.5, ls='dotted', color='k')
plt.yticks([0.0, 0.5, 1.0]) # y轴标度
plt.ylim(-0.1, 1.1) # y轴范围
plt.show()
线性回归不足以满足二分类问题,使用 Sigmoid函数可以很好的将数据二分,将数据的结果转化到0--1的范围内。
如果我们要用线性回归算法来解决一个分类问题,(对于分类,y 取值为 0 或者 1),但如果你使用的是线性回归,那么假设函数的输出值可能远大于 1,或者远小于 0,就算所有训练样本的标签 y 都是 0 或 1但是如果算法得到的值远大于 1 或者远小于 0 的话,就会感觉很奇怪。所以我们在接下来的要研究的算法就叫做逻辑回归算法,这个算法的性质是:它的输出值永远在 0 到 1 之间。
损失函数
最小化
梯度下降
逻辑回归的优点和缺点
优点:
1)预测结果是介于0和1之间的概率;
2)可以适用于连续性和类别性自变量;
3)容易使用和解释。
缺点:
1)对模型中自变量多重共线性较为敏感,例如两个高度相关自变量同时放入模型,可能导致较弱的一个自变量回归符号不符合预期,符号被扭转。需要利用因子分析或者变量聚类分析等手段来选择代表性的自变量,以减少候选变量之间的相关性;
2)预测结果呈“S”型,因此从log(odds)向概率转化的过程是非线性的,在两端随着log(odds)值的变化,概率变化很小,边际值太小,slope太小,而中间概率的变化很大,很敏感。 导致很多区间的变量变化对目标概率的影响没有区分度,无法确定阀值。