逻辑斯蒂回归法多元分类

返回目录

输出为包含多个值的离散序列。
y ∈ { s 1 , s 2 , . . . , s K } y\in \{ s_1, s_2, ..., s_K \} y{s1,s2,...,sK}
其中:K为输出样本不同值的个数。

1.转化为多个二元分类。

将预测值 y y y进行以下映射,可划分为 K K K组:
z k = { 1 ( y = s k ) 0 ( y ≠ s k ) z_k= \begin{cases} 1& (y = s_k) \\ 0& (y \ne s_k)\\ \end{cases} zk={10(y=sk)(y=sk)
其中: k = 1 , 2 , . . . , K k = 1, 2, ..., K k=1,2,...,K
转化为测试输入: x ⃗ \vec{x} x ,测试输出: z k {z}_k zk
利用二元分类可得到 θ ⃗ ( k ) \vec{\theta}^{(k)} θ (k)
代入 h ( x ⃗ ) h(\vec{x}) h(x ),有:
h ( k ) ( x t ⃗ ) = 1 1 + e − θ ⃗ ( k ) T x ⃗ t h_{(k)}(\vec{x_t})=\frac{1}{1+e^{- {\vec{\theta}^{(k)}}^T \vec{x}_t}} h(k)(xt )=1+eθ (k)Tx t1
其中: x t ⃗ \vec{x_t} xt 表示单个测试数据的输入向量。
这样可以得到 K K K个假设,选择 h ( k ) ( x t ⃗ ) h_{(k)}(\vec{x_t}) h(k)(xt )最大的假设,则输入测试向量 x t ⃗ \vec{x_t} xt 的预测输出为 s k s_k sk

2.多元假设函数

假设函数:
h ( x ⃗ ) = 1 1 + ∑ k = 1 k = K − 1 e − θ ⃗ ( k ) T x ⃗ h(\vec{x}) =\frac{1}{ 1+\sum_{k=1}^{k=K-1} e^{ -{\vec{\theta}^{(k)}}^T\vec{x}}} h(x )=1+k=1k=K1eθ (k)Tx 1
其中:
x ⃗ = [ x 0 , x 1 , . . . , x n ] T ∈ R ( n + 1 ) × 1 θ ⃗ ( k ) = [ θ 0 ( k ) , θ 1 ( k ) , . . . , θ n ( k ) ] T ∈ R ( n + 1 ) × 1 ( n 为 特 征 个 数 ) \begin{aligned} \vec{x}=[x_0, x_1, ...,x_n]^T\in\mathbb R^{(n+1)\times1} \\ \vec{\theta}^{(k)}=[\theta_0^{(k)}, \theta_1^{(k)}, ...,\theta_n^{(k)}]^T\in\mathbb R^{(n+1)\times1} \\ (n为特征个数) \end{aligned} x =[x0,x1,...,xn]TR(n+1)×1θ (k)=[θ0(k),θ1(k),...,θn(k)]TR(n+1)×1n
当测试输入 x ⃗ \vec x x 时,得到正确预测值的概率为:
p = { h ( x ⃗ ) P ( y = s 1 ) ( 1 − h ( x ⃗ ) ) P ( y ≠ s 1 ) } ⋅ { h ( x ⃗ ) P ( y = s 2 ) ( 1 − h ( x ⃗ ) ) P ( y ≠ s 2 ) } ⋅ . . . { h ( x ⃗ ) P ( y = s K ) ( 1 − h ( x ⃗ ) ) P ( y ≠ s K ) } p=\{h(\vec x)^{P(y=s_1)}(1-h(\vec x))^{P(y\ne s_1)}\}\cdot \{h(\vec x)^{P(y=s_2)}(1-h(\vec x))^{P(y\ne s_2)}\}\cdot ...\{h(\vec x)^{P(y=s_K)}(1-h(\vec x))^{P(y\ne s_K)}\} p={h(x )P(y=s1)(1h(x ))P(y=s1)}{h(x )P(y=s2)(1h(x ))P(y=s2)}...{h(x )P(y=sK)(1h(x ))P(y=sK)}
所以有:
p = ∏ k = 1 k = K ( h ( x ⃗ ) P ( y = s k ) ( 1 − h ( x ⃗ ) ) P ( y ≠ s k ) ) p=\prod_{k=1}^{k=K}(h(\vec x)^{P(y=s_k)}(1-h(\vec x))^{P(y\ne s_k)}) p=k=1k=K(h(x )P(y=sk)(1h(x ))P(y=sk))
故似然函数:
l ( θ ⃗ ) = ∏ i = 1 i = m ∏ k = 1 k = K ( h ( x ⃗ ( i ) ) P ( y ( i ) = s k ) ( 1 − h ( x ⃗ ( i ) ) ) P ( y ( i ) ≠ s k ) ) l(\vec{\theta})=\prod_{i=1}^{i=m}\prod_{k=1}^{k=K}(h(\vec x^{(i)})^{P(y^{(i)}=s_k)}(1-h(\vec x^{(i)}))^{P(y^{(i)}\ne s_k)}) l(θ )=i=1i=mk=1k=K(h(x (i))P(y(i)=sk)(1h(x (i)))P(y(i)=sk))
两边取对数有:
L ( θ ⃗ ) = l n ( l ( θ ⃗ ) ) = ∑ i = 1 i = m ∑ k = 1 k = K ( P ( y ( i ) = s k ) l n ( h ( x ⃗ ( i ) ) ) + ( 1 − P ( y ( i ) = s k ) ) ( 1 − l n ( h ( x ⃗ ( i ) ) ) ) L(\vec{\theta}) =ln(l(\vec{\theta}))=\sum_{i=1}^{i=m}\sum_{k=1}^{k=K}(P(y^{(i)}=s_k)ln(h(\vec x^{(i)}))+(1-P(y^{(i)}=s_k))(1-ln(h(\vec x^{(i)}))) L(θ )=ln(l(θ ))=i=1i=mk=1k=K(P(y(i)=sk)ln(h(x (i)))+(1P(y(i)=sk))(1ln(h(x (i))))
故代价函数:
J ( θ ⃗ ) = − ∑ i = 1 i = m ∑ k = 1 k = K ( P y ( i ) = s k l n ( h ( x ⃗ ( i ) ) ) + ( 1 − P y ( i ) = s k ) l n ( 1 − h ( x ⃗ ( i ) ) ) ) J( \vec{\theta}) = -\sum_{i=1}^{i=m}\sum_{k=1}^{k=K}(P_{y^{(i)}=s_k}ln(h(\vec x^{(i)}))+(1-P_{y^{(i)}=s_k})ln(1-h(\vec x^{(i)}))) J(θ )=i=1i=mk=1k=K(Py(i)=skln(h(x (i)))+(1Py(i)=sk)ln(1h(x (i))))
其中:
y ⃗ = [ y ( 1 ) , y ( 2 ) , . . . , y ( m ) ] T y ( i ) ∈ { s 1 , s 2 , . . . , s K } ( m 为 测 试 样 本 个 数 ) \begin{aligned} &\vec{y}=[y^{(1)}, y^{(2)}, ...,y^{(m)}]^T\\ &y^{(i)}\in \{ s_1, s_2, ..., s_K \} \\ &(m为测试样本个数) \end{aligned} y =[y(1),y(2),...,y(m)]Ty(i){s1,s2,...,sK}m
梯度下降更新:
θ j ( t ) : = θ j ( t ) − α ∂ J ( θ ⃗ ) ∂ θ j ( t ) \theta_j^{(t)}:=\theta_j^{(t)}-\alpha \frac{\partial J( \vec{\theta})}{\partial \theta_j^{(t)}} θj(t):=θj(t)αθj(t)J(θ )
其中: t = 1 , 2 , . . . , K − 1 t=1,2,...,K-1 t=1,2,...,K1
∂ J ( θ ⃗ ) ∂ θ j ( t ) = − ∑ i = 1 i = m ∑ k = 1 k = K ( P y ( i ) = s k l n ( h ( x ⃗ ( i ) ) ) + ( 1 − P y ( i ) = s k ) l n ( 1 − h ( x ⃗ ( i ) ) ) ) = ∑ i = 1 i = m ∑ k = 1 k = K ( h ( x ⃗ ( i ) ) − P y ( i ) = s k ) x j ( e − θ ⃗ ( t ) T x ⃗ ∑ u = 1 u = K − 1 e − θ ⃗ ( u ) T x ⃗ ) \begin{aligned} \frac{\partial J( \vec{\theta})}{\partial \theta_j^{(t)}} &= -\sum_{i=1}^{i=m}\sum_{k=1}^{k=K}(P_{y^{(i)}=s_k}ln(h(\vec x^{(i)}))+(1-P_{y^{(i)}=s_k})ln(1-h(\vec x^{(i)})))\\ &=\sum_{i=1}^{i=m}\sum_{k=1}^{k=K}(h(\vec x^{(i)})-P_{y^{(i)}=s_k})x_j(\frac{e^{ -{\vec{\theta}^{(t)}}^T\vec{x}}}{\sum_{u=1}^{u=K-1} e^{ -{\vec{\theta}^{(u)}}^T\vec{x}}}) \end{aligned} θj(t)J(θ )=i=1i=mk=1k=K(Py(i)=skln(h(x (i)))+(1Py(i)=sk)ln(1h(x (i))))=i=1i=mk=1k=K(h(x (i))Py(i)=sk)xj(u=1u=K1eθ (u)Tx eθ (t)Tx )

返回目录

### 多元逻辑回归概述 多元逻辑回归是一种扩展形式的逻辑回归模型,适用于处理多类别分类问题。它通过将多个二分类器组合起来完成对超过两个类别的预测任务[^1]。 #### 概念 多元逻辑回归的核心思想在于利用 softmax 函数来估计属于各个类别的概率分布。对于给定输入 \( \mathbf{x} \),其输出为每个类别的条件概率: \[ P(y=k | \mathbf{x}) = \frac{\exp(\mathbf{w}_k^\top \mathbf{x})}{\sum_{j=1}^{K}\exp(\mathbf{w}_j^\top \mathbf{x})} \] 其中 \( K \) 表示目标类别的总数,\( \mathbf{w}_k \) 是第 \( k \) 类对应的参数向量[^3]。 #### 实现方法 在 scikit-learn 中,`LogisticRegression` 提供了 `multi_class='multinomial'` 参数选项以支持真正的多元逻辑回归。该模式下会采用 Newton-CG 或 LBFGS 等优化算法求解整个系统的最大似然估计值。以下是具体实现方式的一个例子: ```python from sklearn.linear_model import LogisticRegression from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split # 加载数据集并划分训练测试集合 X, y = load_iris(return_X_y=True) X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # 初始化并配置模型 model = LogisticRegression(multi_class='multinomial', solver='lbfgs') # 训练模型 model.fit(X_train, y_train) # 输出评估结果 print(f"Accuracy on test set: {model.score(X_test, y_test):.2f}") ``` 上述代码展示了如何基于 Iris 数据集构建一个三分类问题中的多元逻辑回归模型,并使用 lbfgs 解算器进行最优化过程。 #### 应用场景 多元逻辑回归广泛应用于各类实际领域中涉及多标签或多状态识别的任务之中,比如手写数字辨识、文本情感分析以及医学诊断等领域。当面对有限数量离散型输出变量时尤为适用。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值