Logistic Regression算法数学原理

Logistic Regression算法是一种被广泛使用的分类算法,Logistic Regression算法是典型的线性分类器,由于算法的复杂度低、容易实现等特点,在工业界得到了广泛的应用,如:利用Logistic Regression算法实现广告的点击率预估。

Logistic Regression模型

Logistic Regression 模型是广义线性模型的一种, 属于线性的分类模型。对于如下图所示的线性可分的问题,需要找到一条直线将两条不同的类区分开,这条直线也称为超平面。
Logistic Regression算法数学原理_第1张图片
上述的超平面可以用如下的线性函数表示:Wx+b=0
其中W 为权重,b为偏置,若在如下线性不可分的情况下,权重W和偏置b则均为向量形式,也即分离超平面为 WX+b=b+W1x1+W2x2++Wnxn=0 W X + b = b + W 1 x 1 + W 2 x 2 + ⋯ + W n x n = 0
Logistic Regression算法数学原理_第2张图片
在Logistic Regression算法中,通过对训练样本的学习,最终得到该超平面,将数据分成正负两个类别。那么对于一个具体的样本,怎么判别它属于哪个类别呢?此时,可以使用阈值函数,将样本映射到不同的类别中,常见的阈值函数有Sigmoid函数,其形式如下所示:
Logistic Regression算法数学原理_第3张图片
sigmoid函数的输出是介于(0,1)之间的,这样我们可以将sigmoid函数看成样本数据的概率密度函数 ,对于输入向量X,其属于正例的概率为:

其中,σ 表示的是Sigmoid函数。那么,对于输入向量X,其属于负例的概率为:
这里写图片描述

损失函数

为求得分离超平面曲线Wx+b=0,需要求解曲线中的参数权重矩阵W和偏置向量b,求解这些参数,需要先定义损失函数。
在上述的Logistic Regression算法中,一个样本属于类别y的概率为:

要求上述问题中的参数W和b,可以使用极大似然法对其进行估计:
假设训练集里有m个训练样本 {(X(1),y(1)),(X(2),y(2)),,(X(m),y(m))} { ( X ( 1 ) , y ( 1 ) ) , ( X ( 2 ) , y ( 2 ) ) , ⋯ , ( X ( m ) , y ( m ) ) }
则其似然函数为:

对于似然函数的极大值的求解,通常使用Log似然函数,在Logistic Regression算法中,通常是将负的Log似然函数作为其损失函数,即the negative log-likelihood (NLL)作为其损失函数,此时,需要计算的是NLL的极小值。损失函数 lW,b l W , b

此时我们要求解的问题是:
这里写图片描述
为求解损失函数的lwb的最小值,使用梯度下降的方法进行求解。

梯度下降法

首先计算损失函数对W,b的梯度:
Logistic Regression算法数学原理_第4张图片
其中, x(i)j x j ( i ) 表示样本 X(i) X ( i ) 的第j个分量,则根据梯度下降法,有以下的参数更新公式:

其中 α α 为学习率。

参考文献

[1] Python机器学习算法(赵志勇著 电子工业出版社)
[2] 统计学习方法(李航著 清华大学出版社)

你可能感兴趣的:(机器学习)