逻辑回归(logistic regression)是统计学习中的经典分类方法。其多用在二分类{0,1}问题上。最大嫡是概率模型学习的一个准则将其推广到分类问题得到最大熵模型(maximum entropy model)。逻辑回归模型与最大熵模型都属于对数线性模型。
目录
逻辑斯谛回归模型
逻辑斯谛分布
设X是连续随机变量,
X
服从逻辑斯谛分布是指
X
具有下列分布函数和密度函数
F(x)=P(X≤x)=11+e−(x−μ)/γ
f(x)=F′(x)=e−(x−μ)/γγ(1+e−(x−μ)/γ)2
分布函数属于逻辑斯谛函数,其图形是一条S形曲线。
二项逻辑斯谛回归模型
二项逻辑回归模型(binomial logistic regression model)是一种分类模型,用于二类分类。由条件概率分布
P(Y|X)
表示,形式为参数化的逻辑分布。这里,随机变量X取值为实数,随机变量Y取值为1或0。
二项逻辑斯谛回归模型是如下条件概率分布:
P(Y=1|x)=exp(w⋅x+b)1+exp(w⋅x+b)
P(Y=0|x)=11+exp(w⋅x+b)
其中,
x∈Rn,Y∈{0,1}
,
w∈Rn
和
b∈R
.
逻辑回归对线性回归经行了归一化操作,将输出范围规定在{0,1}。
几率,指一件事件发生的概率与不发生的概率的比值,那么事件的对数几率或logit函数是
logit(p)=logp1−p
因此,
logit(p)=logP(Y=1|x)1−P(Y=1|x)=w⋅x
这就是说,在逻辑回归模型中,输出Y=1的对数几率是输入x的线性函数。
通过逻辑回归模型可以将线性函数转化为概率:
P(Y=1|x)=exp(w⋅x)1+exp(w⋅x)
线性函数值越接近正无穷,概率越接近1;线性函数值越接近负无穷,概率值越接近0。这样的模型称为逻辑回归模型。
Python代码如下:
import numpy as np
def predict(x,w):
return 1.0/1.0+np.e**(-x.dot(w))
def iter_w(x, y, a, w):
prediction = predict(x,w)
g = (prediction - y) * x
w = w+ a * g * (1.0 / y.size)
return w
while counter < max_epochs:
counter += 1
for i in range(len(Y)):
w = update(X[i,:], Y[i], a, w)
模型参数估计
逻辑斯谛回归模型学习时,可以利用极大似然估计法估计模型参数
似然函数:
∏i=1NP(Y=1|xi)yi(1−P(Y=1|xi))1−yi
对数似然函数:
L(w)=∑i=1N[yilogP(Y=1|xi)+(1−yi)log(1−P(Y=1|xi))]=∑i=1N[yilogP(Y=1|xi)1−P(Y=1|xi)+log(1−P(Y=1|xi))]=∑i=1N[yi(w⋅xi)−log(1+exp(w⋅xi))]
这样子,我们有了损失函数,这里我们只要将该函数极大化即可,求其最大值时的
w
即可。
具体过程可参考Andrew Ng的CS229讲义, Part 2 logistic regression部分,翻译)
多项逻辑斯谛回归
多项逻辑斯谛回归用于多分类问题,其模型为
P(Y=k|x)=exp(wk⋅x)1+∑k=1K−1exp(wk⋅x),k=1,2,...,K−1
P(Y=K|x)=11+∑k=1K−1exp(wk⋅x)
参考文章
- 《统计学习方法》第六章逻辑斯蒂回归与最大熵模型学习笔记
- 统计学习方法 李航—第6章 逻辑回归与最大熵模型