挖掘原理|逻辑斯蒂回归原理

形象理解逻辑斯蒂回归

在k邻近算法中,因为同一类的样本点总是表现出彼此之间距离相近,所以我们可以通过计算样本点之间的距离进行分类,那么换一个角度来思考,预测样本点所属类别也就是要判断这个样本点属于哪个类别的概率最大,即对于给定的特征向量 X \boldsymbol{X} X求其属于某一类别的概率 P ( Y = i ∣ X ) P(Y=i\mid \boldsymbol{X}) P(Y=iX),预测其分类,也就是逻辑斯蒂回归(LogisticRegression)。

或者我们可以更形象的理解,属于同一类别的样本点的分布是相近的,那么将其映射到某条曲线上的分布也应该是相近的,而我们学习的目的就是为了获取能够使映射之后的样本点同类别分布尽可能相近,不同类别之间尽可能远的这样一组参数。

我们以下面数据为例直观感受一下逻辑斯蒂回归
挖掘原理|逻辑斯蒂回归原理_第1张图片
首先我们看数据的前三列,x1,x2表示两个特征,y表示所属类别,我们大致可以感受到相同类别的样本点之间分布应该很近,不妨看一下下面的图,更加直观。
挖掘原理|逻辑斯蒂回归原理_第2张图片
黄色代表 y = 1 y=1 y=1的类,紫色代表 y = 0 y=0 y=0的类,这些样本点之间分布确实很明显的能分出类别.

再看数据表中的wx和p的值,这两列是经过逻辑斯蒂回归优化后得出的,对x1和x2进行线性计算之后的值,以及最终得出的 P ( Y = i ∣ X ) , i ∈ { 0 , 1 } P(Y=i\mid \boldsymbol{X}),i\in \{0,1\} P(Y=iX)i{0,1},可以看出经过线性计算的得出的值,属于类别1的值大概都是5.5左右,而属于类别0的值大概都是-2.5左右,概率也有着相近的特点,类别1的概率都是接近1,类别0都是接近0,再下图更能直观的表示这一点。
挖掘原理|逻辑斯蒂回归原理_第3张图片

而数据表中的最后两列是,随意选取的线性计算的权重得出的值以及概率,可以看出,虽然不同类别之间却有差别,但是显然这样的差别远远不够,在预测时,错误率就会增加,所以我们要优化这些参数以降低损失。

逻辑斯蒂回归的原理

通过以上叙述,我们大概可以感受到,逻辑斯蒂回归(二分类)的运算流程,就是将特征值作为输入进行线性运算,然后将运算结果输入到某个函数中计算概率值,迭代的对参数进行优化。
所以以上流程就涉及到了两个问题:

  • 计算概率的函数
  • 优化线性计算中的权重参数

关于第一个问题
首先我们先来了解一下逻辑斯蒂分布:
X X X是连续随机变量,若 X X X具有如下分布函数和概率密度函数: F ( x ) = P ( X ≤ x ) = 1 1 + e − ( x − μ ) λ F(x)=P(X\leq x) = \frac{1}{1+e^{\frac{-(x-\mu)}{\lambda}}} F(x)=P(Xx)=1+eλ(xμ)1 f ( x ) = F ′ ( x ) = e − ( x − μ ) λ λ ( 1 + e − ( x − μ ) λ ) 2 f(x)=F'(x)=\frac{e^{\frac{-(x-\mu)}{\lambda}}}{\lambda (1+e^{\frac{-(x-\mu)}{\lambda}})^2} f(x)=F(x)=λ(1+eλ(xμ))2eλ(xμ)
其中 μ \mu μ是位置参数, λ \lambda λ是形状参数。
我们可以通过下图感受一下 μ , λ \mu,\lambda μ,λ ( μ → u , λ → r ) (\mu \rightarrow u,\lambda \rightarrow r) (μu,λr)的影响

挖掘原理|逻辑斯蒂回归原理_第4张图片
通过其图像可以看出,其分布函数的特点是以 μ , 1 2 \mu,\frac{1}{2} μ,21为中心对称,随着 x x x的增加,函数值逐渐趋近于1,x减小,函数值趋近于0,这个函数看着很复杂,其实就是sigmoid函数。
根据其分布函数我们就可以得出二项逻辑斯蒂回归模型(令 Y = 0 Y=0 Y=0的概率尽可能的趋近于0,反过来也不影响最终的预测) P ( Y = 0 ∣ X ) = 1 1 + e ω ⋅ x + b P(Y=0\mid \boldsymbol{X})=\frac{1}{1+e^{\boldsymbol{\omega} \cdot \boldsymbol{x}+b}} P(Y=0X)=1+eωx+b1 P ( Y = 1 ∣ X ) = 1 − P ( Y = 0 ∣ X ) = e ω ⋅ x + b 1 + e ω ⋅ x + b P(Y=1\mid \boldsymbol{X})=1-P(Y=0\mid \boldsymbol{X})=\frac{e^{\boldsymbol{\omega} \cdot \boldsymbol{x}+b}}{1+e^{\boldsymbol{\omega} \cdot \boldsymbol{x}+b}} P(Y=1X)=1P(Y=0X)=1+eωx+beωx+b

ω \boldsymbol{\omega} ω参数已经优化完毕的情况下,我们就只需要计算两个概率,然后将其预测为概率较大的一类即可。

第二个问题也很好解决
我们仍然对其进行最大似然估计即可,似然函数: L = ∏ i = 1 N P ( Y = 1 ∣ X ) y i P ( Y = 0 ∣ X ) ( 1 − y i ) L = \prod_{i=1}^{N}P(Y=1\mid \boldsymbol{X})^{y_{i}}P(Y=0\mid \boldsymbol{X})^{(1-y_{i})} L=i=1NP(Y=1X)yiP(Y=0X)(1yi)
y i y_{i} yi为预测结果, P ( Y = 1 ∣ X ) y i P ( Y = 0 ∣ X ) ( 1 − y i ) P(Y=1\mid \boldsymbol{X})^{y_{i}}P(Y=0\mid \boldsymbol{X})^{(1-y_{i})} P(Y=1X)yiP(Y=0X)(1yi),就是某一次预测正确的概率,这个似然函数其实就是所有的训练样本都预测正确的概率,所以这个似然函数自然越大越好
对其最大似然估计的过程,可以选取梯度下降法或者拟牛顿法学习参数 ω \boldsymbol{\omega} ω

下一篇讲解拟牛顿法

你可能感兴趣的:(人工智能,回归,算法,机器学习,python)