逻辑斯蒂回归原理(二分类、多分类)

本文介绍了逻辑斯蒂回归的基本原理,包括逻辑斯蒂分布、二项逻辑回归模型及其参数估计,以及如何扩展到多项逻辑斯蒂回归以解决多分类问题。通过建立线性函数与概率的关系,利用牛顿法求解最优参数,实现对不同类别概率的预测。

逻辑斯蒂分布

逻辑斯蒂分布假设X是连续随机变量,且分布函数、密度函数如下:
F ( x ) = P ( X ⩽ x ) = 1 1 + exp ⁡ ( − ( x − μ ) / γ ) f ( x ) = F ′ ( x ) = e − ( x − μ ) / γ γ ( 1 + e − ( x − μ ) / γ ) 2 F(x)=P(X\leqslant x)=\frac{1}{1+\exp(-(x-\mu)/\gamma)} \\ f(x) = F'(x) = \frac{e^{-(x-\mu)/\gamma}}{\gamma(1+e^{-(x-\mu)/\gamma})^2} F(x)=P(Xx)=1+exp((xμ)/γ)1f(x)=F(x)=γ(1+e(xμ)/γ)2e(xμ)/γ
式子中 μ \mu μ为位置参数, γ > 0 \gamma>0 γ>0为形状参数。图像如下图所示:

在这里插入图片描述

上图的右边是分布函数 F ( x ) F(x) F(x),可以看到是S形的曲线,以点 ( μ , 1 2 ) (\mu , \frac{1}{2}) (μ,21)为对称中心,当形状参数 γ \gamma γ的值越小,曲线在对称点附近增长越快。

二项逻辑回归模型

二项逻辑回归模型是二分类模型,由条件概率P(Y|X)表示,条件概率分布如下:
P ( Y = 1 ∣ x ) = exp ⁡ ( w ⋅ x + b ) 1 + exp ⁡ ( w ⋅ x + b ) P ( Y = 0 ∣ x ) = 1 1 + exp ⁡ ( w ⋅ x + b ) P(Y=1|x)=\frac{\exp(w\cdot x+b)}{1+\exp(w\cdot x+b)} \\ P(Y=0|x)=\frac{1}{1+\exp(w\cdot x+b)} P(Y=1x)=1+exp(wx+b)exp(wx+b)P(Y=0x)=1+exp(wx+b)1
对于给定的x,可以求得 P ( Y = 1 ∣ x ) P(Y=1|x) P(Y=1x) P ( Y = 0 ∣ x ) P(Y=0|x) P(Y=0x)的概率,哪个概率大,就是哪个类别。为了方便,将全职向量和输入向量扩充,即 w = ( w ( 1 ) , w ( 2 ) , . . . , w ( n ) , b ) ,    x = ( x ( 1 ) , x ( 2 ) , . . . , x ( n ) , 1 ) w=(w^{(1)}, w^{(2)}, ...,w^{(n)},b), \; x=(x^{(1)}, x^{(2)}, ...,x^{(n)},1) w=(w(1),w(2),...,w(n),b),x=(x(1),x(2),...,x(n),1)。此时逻辑回归模型如下:
P ( Y = 1 ∣ x ) = exp ⁡ ( w ⋅ x ) 1 + exp ⁡ ( w ⋅ x ) (1) P(Y=1|x)=\frac{\exp(w\cdot x)}{1+\exp(w\cdot x)} \tag 1 P(Y=1x)=1+exp(wx)exp(wx)(1)

P ( Y = 0 ∣ x ) = 1 1 + exp ⁡ ( w ⋅ x ) (2) P(Y=0|x)=\frac{1}{1+\exp(w\cdot x)} \tag 2 P(Y=0x)=1+exp(wx)1(2)

一个事件的几率是该事件发生与不发生的概率比值。即如果发生概率是p,那么该事件的几率为: p 1 − p \frac{p}{1-p} 1pp,该事件的对数几率或logit函数是:
l o g i t ( p ) = l o g p 1 − p (3) logit(p) = log \frac{p}{1-p} \tag 3 logit(p)=log1pp(3)
对逻辑斯蒂回归而言,将式子(1)(2)代入(3)得:
l o g P ( Y = 1 ∣ x ) 1 − P ( Y = 1 ∣ x ) = w ⋅ x (4) log \frac{P(Y=1|x)}{1-P(Y=1|x)} = w \cdot x \tag 4 log1P(Y=1x)P(Y=1x)=wx(4)
上面的式子表明输出Y=1的对数几率是输入x的线性函数。

由式子(1)知可以将线性函数 w ⋅ x w\cdot x wx转换为概率:
P ( Y = 1 ∣ x ) = e x p ( w ⋅ x ) 1 + e x p ( w ⋅ x ) (5) P(Y=1|x) = \frac{exp(w\cdot x)}{1+exp(w\cdot x)} \tag 5 P(Y=1x)=1+ex

逻辑回归原本是二分类算法,在处理多分类问题时需要进行改造。 ### 原理 逻辑回归用于多分类的基本原理是基于逻辑回归基本原理的拓展。逻辑回归通过Sigmoid函数将线性回归的输出映射到[0, 1]区间,用于二分类问题中判断样本属于某一类的概率。在多分类问题中,要对多个类别分别建模,计算样本属于每个类别的概率,最后选择概率最大的类别作为预测结果 [^2]。 ### 方法 - **One-Vs-Rest思想**:该方法将多分类问题转化为多个二分类问题。对于有n个类别的数据集,分别将每一个类别作为正类,其余n - 1个类别作为负类,训练n个二分类逻辑回归模型。在预测时,将样本输入到这n个模型中,得到n个概率值,选择概率值最大的类别作为最终预测结果 [^2]。 - **Softmax函数**:Softmax函数是逻辑回归用于多分类的另一种常见方法。它将线性回归的输出转化为每个类别的概率分布,使得所有类别的概率之和为1。对于输入样本,通过计算每个类别的得分,然后使用Softmax函数将得分转化为概率,最后选择概率最大的类别作为预测结果 [^2]。 ### 应用 逻辑回归多分类模型在很多领域都有广泛应用。例如在文本分类中,可将文章分为不同的主题类别;在图像识别中,对图像中的物体进行分类;在医疗诊断中,判断患者患有不同疾病的可能性等。 ```python # 以下是使用sklearn实现逻辑回归多分类的示例代码 from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.linear_model import LogisticRegression from sklearn.metrics import accuracy_score # 加载鸢尾花数据集 iris = load_iris() X = iris.data y = iris.target # 划分训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42) # 创建逻辑回归模型,使用multinomial表示多分类 model = LogisticRegression(multi_class='multinomial', solver='lbfgs') # 训练模型 model.fit(X_train, y_train) # 预测 y_pred = model.predict(X_test) # 计算准确率 accuracy = accuracy_score(y_test, y_pred) print(f"Accuracy: {accuracy}") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值