4.2 逻辑回归模型
简单理解逻辑回归模型,就是在线性回归的基础上加一个Sigmoid函数对线性回归的结果进行压缩,令其最终预测值y在一个范围内。
这里Sigmoid函数的作用就是将一个连续的数值压缩到一定的范围之内,它将最终预测值y的范围压缩到0到1之间。
虽然逻辑回归也有回归这个词,但由于这里的自变量和因变量呈现的是非线性关系,因此严格意义上讲逻辑回归模型属于非线性模型。
逻辑回归模型则通常用来处理二分类问题,在逻辑回归中,计算出的预测值是一个0到1的概率值,我们通常以0.5为分界线,如果预测的概率值大于0.5则会将最终结果归为1这个类别,如果预测的概率值小于等于0.5则会将最终结果归为0这个类别。
而1和0在实际项目中可能代表了很多含义,比如1代表恶性肿瘤,0代表良性肿瘤,1代表银行可以借给小王贷款,0代表银行不能借给小王贷款等。
虽然逻辑回归很简单,但它被广泛应用于实际生产之中,而且改造之后的逻辑回归还可以处理多分类问题。
逻辑回归不仅其本身非常受欢迎,同样它也是我们将在第5章介绍的神经网络的基础。普通神经网络中,常常使用Sigmoid对神经元进行激活。
关于神经网络的神经元,第5章会有详细的介绍(第5章会再次提到Sigmoid函数),这里只是先提一下逻辑回归和神经网络的 Sigmoid函数 Sigmoid的函数表达式具体如下:
该公式中,e约等于2.718,z是线性回归的方程式,p表示计算出来的概率,范围在0到1之间。
接下来我们将这个函数绘制出来,看看它的形状。使用Python的Numpy以及Matplotlib库进行编写,代码如下:
import numpy as np
import matplotlib.pyplot as pltdef sigmoid(x):
y = 1.0 / (1.0 + np.exp(-x))
return y
plot_x = np.linspace(-10, 10, 100)
plot_y = sigmoid(plot_x)
plt.plot(plot_x, plot_y)
plt.show()
当x为0的时候,Sigmoid的函数值为0.5,随着x的不断增大,对应的Sigmoid值将无限逼近于1;而随着x的不断减小,Sigmoid的值将不断逼近于0。
所以它的值域是在(0,1)之间。
由于Sigmoid函数将实数范围内的数值压缩到了(0,1)之间,因此其也被称为压缩函数。
需要说明一下的是,压缩函数其实有很多,比如tanh可以将实数范围内的数值压缩到(-1,1)之间,因此tanh有时也被称为压缩函数。