逻辑斯蒂回归算法可用于分类问题,其本质是在线性回归的算法上用sigmoid函数进行模型变换,使得目标值介于0-1之间。本文用于对逻辑斯蒂回归算法(Logistics Regression)进行详细讲述。

逻辑斯蒂回归基本假设

我们知道线性回归的基本假设是h(x)=θ^Tx,为了实现介于[0,1]这种效果,需要对假设模型进行变换,变换是通过sigmoid函数实现的,sigmoid函数如下:

逻辑斯蒂回归python实现 逻辑斯蒂回归算法_回归

sigmoid函数的特性

1、当z→负无穷时,g(z)趋近于0,当z→正无穷时,g(z)趋近于1,且g(0)=1/2

(ps:个人认为,实际上从线性回归变换至逻辑斯蒂回归并不必须要求是通过sigmoid函数,只要是满足以上特性的函数皆可),以下为sigmoid函数图像:

逻辑斯蒂回归python实现 逻辑斯蒂回归算法_回归_02


2、sigmoid函数的一阶导数与原函数存在关系:

逻辑斯蒂回归python实现 逻辑斯蒂回归算法_线性回归_03

按照sigmoid函数我们进行变换,得到逻辑斯蒂回归模型的基本假设:

逻辑斯蒂回归python实现 逻辑斯蒂回归算法_线性回归_04

逻辑斯蒂回归的损失函数

参考线性回归的损失函数是由最大似然估计推到得出,逻辑斯蒂回归本身具有概率意义,亦可以用最大似然估计得出。

假定(至于为何如此假定,大概率是本身经过sigmoid变换后的逻辑斯蒂基本式h(x)很像概率函数F(X))

逻辑斯蒂回归python实现 逻辑斯蒂回归算法_逻辑斯蒂回归python实现_05


以上两个式子可以合为一个(因为y的取值为0或1),即:

逻辑斯蒂回归python实现 逻辑斯蒂回归算法_回归_06


假设m个训练集是iid,则有最大似然函数L(θ)为:

逻辑斯蒂回归python实现 逻辑斯蒂回归算法_逻辑斯蒂回归python实现_07


取对数为:

逻辑斯蒂回归python实现 逻辑斯蒂回归算法_逻辑回归_08


至此,我们得出逻辑斯蒂回归的最大似然函数,我们的任务是max l(θ)

最小化逻辑斯蒂回归损失函数(最大化其最大似然函数)

Perceptron Learning Algorithm

若对逻辑斯蒂的模型做变换时不用sigmoid,而用以下公式:

逻辑斯蒂回归python实现 逻辑斯蒂回归算法_逻辑斯蒂回归_09


则有:h(x)=g(θ^Tx),利用如下更新规则找出最优θ(类似梯度下降算法)

逻辑斯蒂回归python实现 逻辑斯蒂回归算法_回归_10


以上算法称为传感器学习算法(Perceptron Learning Algorithm)

梯度下降算法

这个包含全梯度下降算法和随机梯度下降算法,很常见,不在赘述。

牛顿方法(Newton Method)

我们现在尝试找出任意函数f(θ)的值为0对应的θ值,则我们可以利用迭代方法得到最终的θ:

逻辑斯蒂回归python实现 逻辑斯蒂回归算法_逻辑斯蒂回归_11

图解:

逻辑斯蒂回归python实现 逻辑斯蒂回归算法_逻辑斯蒂回归python实现_12


注:若θ为多元列向量,则可以使用矩阵迭代运算,有:

逻辑斯蒂回归python实现 逻辑斯蒂回归算法_回归_13


其中H为n*n阶(n为θ列向量元素数量)海塞矩阵,其中元素为:

逻辑斯蒂回归python实现 逻辑斯蒂回归算法_逻辑斯蒂回归_14