前言
关于Logistic的重要性,不言而喻,网上也有许多关于Logistic的资料,这篇文章我就写写我自己在看了机器学习实战后,对于Logistic的理解吧。首先我们要知道Logistic能干什么?作为我们学习的第一个回归算法,它根据现有的数据对分类边界建立回归公式,以此进行分类。我们的目的就是找到那根最佳拟合直线。也就是我们能把数据分成两类,那么我们便可以把这应用在一些数值的分类问题上,比如怎么判断图片里内容是不是猫(如下图),怎么预测一匹马是否能被治愈等二值问题,以及后面我们深度学习神经网络里面就是以Logistic为神经基础单元,用来图像识别,语言识别等等。
可能你会发现与k-近邻算法有点像,但是k-近邻算法能有不止两类的分类,它是根据离分类数据点的距离多数表决来进行分类。
算法描述
这里我们要学习一个Sigmoid函数,计算公式如下:
σ(z)=11+e−z
我们这里可以根据matplotlib画出此函数的图。
import sys
from pylab import *
import matplotlib.pyplot as plt
import numpy as np
t = np.arange(-60.0,60.3,0.1)
s = 1/(1 + np.exp(-t))
ax = plt.subplot(211)
ax.plot(t,s)
ax.axis([-5,5,0,1])
plt.xlabel('x')
plt.ylabel('Sigmoid(x)')
ax = plt.subplot(212)
ax.plot(t,s)
ax.axis([-60,60,0,1])
plt.xlabel('x')
plt.ylabel('Sigmoid(x)')
plt.show()
我们调整横坐标为不同的尺度可以看到此函数在[0,1]范围内,正好符合概率值范围,这个函数有利于我们算法计算(这只是算法的一种函数选择,我们也可以选择其它函数,但是效果不见得那么好),二值即为0,1分类,我们需要预测为0,1的概率。
对于任意x∈R,y∆ = p(y=1|x),y∆∈[0,1],此式代表的是任意给一个x,y=1的概率。
由于是线性回归,我们联立三个公式:
</