天津艺匠做网站,分销商城模式系统开发,免费咨询口腔科医生回答在线,企业网站建设分工Logistic Regression#xff08;逻辑回归#xff09;、Maximum Likelihood Estimatio#xff08;最大似然估计#xff09; 逻辑回归#xff08;Logistic Regression#xff0c;LR#xff09;逻辑回归的基本思想逻辑回归模型逻辑回归的目标最大似然估计优化方法 逻辑回归… Logistic Regression逻辑回归、Maximum Likelihood Estimatio最大似然估计 逻辑回归Logistic RegressionLR逻辑回归的基本思想逻辑回归模型逻辑回归的目标最大似然估计优化方法 逻辑回归的损失函数对数损失逻辑回归的应用逻辑回归的优缺点优点缺点 逻辑回归的扩展逻辑回归的实现Python 示例 最大似然估计 (Maximum Likelihood Estimation, MLE)最大似然估计的基本思想似然函数对数似然函数最大化对数似然 通过最大似然估计估计参数示例 1估计高斯分布的均值和方差示例 2伯努利分布的最大似然估计 最大似然估计的优点和局限优点局限 参考资料 逻辑回归Logistic RegressionLR
逻辑回归Logistic Regression 是一种广泛应用于分类问题的统计方法尤其用于二分类问题即预测目标变量有两个类别。尽管它的名字中带有“回归”二字但它实际上是一种分类算法。逻辑回归通过对输入特征进行建模输出一个概率值表示某个类别的可能性。
逻辑回归的基本思想
逻辑回归试图找出一个合适的数学模型将输入特征 X ( x 1 , x 2 , … , x n ) X(x_1, x_2, …, x_n) X(x1,x2,…,xn) 映射到目标标签 Y Y Y 上。对于二分类问题目标是根据输入特征预测 Y 1 Y1 Y1 或 Y 0 Y0 Y0 的概率。
逻辑回归的核心是 逻辑函数Logistic Function 或者称为 Sigmoid 函数它将任何实数映射到 [0, 1] 之间从而可以解释为概率。
逻辑回归模型
假设输入特征 X ( x 1 , x 2 , … , x n ) X(x_1, x_2, …, x_n) X(x1,x2,…,xn) 和权重参数 w ( w 1 , w 2 , … , w n ) w(w_1, w_2, …, w_n) w(w1,w2,…,wn)逻辑回归模型的输出是通过一个线性组合加上偏置项输入到一个 Sigmoid 函数中 z w 1 x 1 w 2 x 2 ⋯ w n x n b z w_1 x_1 w_2 x_2 \dots w_n x_n b zw1x1w2x2⋯wnxnb 然后将 z z z 通过 Sigmoid 函数 σ ( z ) σ(z) σ(z) 转换为一个概率值 P ( Y 1 ∣ X ) σ ( z ) 1 1 e − z P(Y 1 \mid X) \sigma(z) \frac{1}{1 e^{-z}} P(Y1∣X)σ(z)1e−z1
其中 σ ( z ) σ(z) σ(z) 是 Sigmoid 函数它将任何实数 z z z 映射到 (0, 1) 之间表示一个类别的概率。 P ( Y 1 ∣ X ) P(Y1∣X) P(Y1∣X) 就是预测样本属于类别1的概率。
如果 P ( Y 1 ∣ X ) 0.5 P(Y1∣X)0.5 P(Y1∣X)0.5则预测类别为 1如果 P ( Y 1 ∣ X ) ≤ 0.5 P(Y1∣X)≤0.5 P(Y1∣X)≤0.5则预测类别为 0。 逻辑回归的目标
在逻辑回归中我们的目标是通过训练数据来学习最优的权重参数 w 1 , w 2 , … , w n w_1, w_2, …, w_n w1,w2,…,wn 和偏置项 b b b使得模型能够准确地预测数据的类别。为此我们使用最大似然估计Maximum Likelihood Estimation, MLE来估计这些参数。
最大似然估计
假设我们有 m m m 个训练样本每个样本的输入为 X ( i ) X^{(i)} X(i)标签为 Y ( i ) Y^{(i)} Y(i)其中 i 1 , 2 , … , m i 1, 2, \dots, m i1,2,…,m。
逻辑回归模型的似然函数是基于每个训练样本的预测概率和真实标签的结合。对于每个样本预测的概率为 P ( Y 1 ∣ X ( i ) ) P(Y 1 \mid X^{(i)}) P(Y1∣X(i))因此整个训练集的似然函数为 L ( w , b ) ∏ i 1 m P ( Y ( i ) ∣ X ( i ) ; w , b ) L(w, b) \prod_{i1}^{m} P(Y^{(i)} \mid X^{(i)}; w, b) L(w,b)i1∏mP(Y(i)∣X(i);w,b)
因为 Y ( i ) Y^{(i)} Y(i) 是 0 或 1所以可以将似然函数写成 L ( w , b ) ∏ i 1 m [ σ ( z ( i ) ) Y ( i ) ⋅ ( 1 − σ ( z ( i ) ) ) 1 − Y ( i ) ] L(w, b) \prod_{i1}^{m} \left[\sigma(z^{(i)})^{Y^{(i)}} \cdot (1 - \sigma(z^{(i)}))^{1 - Y^{(i)}} \right] L(w,b)i1∏m[σ(z(i))Y(i)⋅(1−σ(z(i)))1−Y(i)]
为了方便优化通常取对数似然函数Log-Likelihood得到 ℓ ( w , b ) ∑ i 1 m [ Y ( i ) log σ ( z ( i ) ) ( 1 − Y ( i ) ) log ( 1 − σ ( z ( i ) ) ) ] \ell(w, b) \sum_{i1}^{m} \left[Y^{(i)} \log \sigma(z^{(i)}) (1 - Y^{(i)}) \log (1 - \sigma(z^{(i)})) \right] ℓ(w,b)i1∑m[Y(i)logσ(z(i))(1−Y(i))log(1−σ(z(i)))]
目标是最大化对数似然函数 ℓ ( w , b ) \ell(w, b) ℓ(w,b)即找到使对数似然函数最大化的权重 w w w 和偏置项 b b b。
优化方法
我们通常使用梯度下降法Gradient Descent来优化对数似然函数。梯度下降法通过计算损失函数对数似然的负数对模型参数的梯度来更新参数以减小损失。
梯度下降更新规则为 w j ← w j − α ∂ ∂ w j ℓ ( w , b ) w_j \leftarrow w_j - \alpha \frac{\partial}{\partial w_j} \ell(w, b) wj←wj−α∂wj∂ℓ(w,b) b ← b − α ∂ ∂ b ℓ ( w , b ) b \leftarrow b - \alpha \frac{\partial}{\partial b} \ell(w, b) b←b−α∂b∂ℓ(w,b)
其中 α \alpha α 是学习率。
逻辑回归的损失函数对数损失
由于逻辑回归是基于最大似然估计的因此它的损失函数通常称为对数损失Log-Loss或交叉熵损失Cross-Entropy Loss公式如下 L ( w , b ) − 1 m ∑ i 1 m [ Y ( i ) log ( σ ( z ( i ) ) ) ( 1 − Y ( i ) ) log ( 1 − σ ( z ( i ) ) ) ] \mathcal{L}(w, b) - \frac{1}{m} \sum_{i1}^{m} \left[Y^{(i)} \log(\sigma(z^{(i)})) (1 - Y^{(i)}) \log(1 - \sigma(z^{(i)})) \right] L(w,b)−m1i1∑m[Y(i)log(σ(z(i)))(1−Y(i))log(1−σ(z(i)))]
对数损失衡量的是预测的概率分布与真实标签之间的差距。损失函数的值越小模型的预测越准确。
逻辑回归的应用
逻辑回归适用于以下场景
二分类问题例如电子邮件分类垃圾邮件与非垃圾邮件、医疗诊断是否患病、银行贷款申请是否批准等。多分类问题通过多项式逻辑回归Multinomial Logistic Regression扩展可以处理多类问题常用于文本分类或图像分类。
逻辑回归的优缺点
优点
简单易懂逻辑回归是一种线性模型易于理解和实现。高效逻辑回归在训练数据量较小的情况下能表现得很好计算速度较快。概率输出它不仅提供类别预测还提供每个类别的概率这对于很多应用场景非常有用。可解释性强模型参数即权重能够反映特征对预测结果的影响便于进行模型解释。
缺点
线性假设逻辑回归假设特征和目标之间的关系是线性的。如果数据呈现非线性关系逻辑回归可能无法很好地拟合数据。对异常值敏感逻辑回归对异常值比较敏感异常值可能会影响模型的性能。特征相关性问题逻辑回归对特征之间的相关性较为敏感强相关的特征可能会导致多重共线性问题。
逻辑回归的扩展
多项式逻辑回归Multinomial Logistic Regression用于多分类问题模型的输出不是一个概率而是多个类别的概率分布。正则化Regularization为了防止过拟合可以在逻辑回归中加入L1或L2正则化项。L1正则化能生成稀疏解L2正则化可以避免过大权重的出现。
逻辑回归的实现Python 示例
使用 scikit-learn 库可以非常方便地实现逻辑回归模型
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.datasets import load_iris
from sklearn.metrics import accuracy_score, classification_report# 加载鸢尾花数据集
data load_iris()
X data.data # 特征数据
y data.target # 标签数据# 将标签转为二分类问题1. Setosa类别 02. 非 Setosa类别 1
y_binary (y 0).astype(int)# 划分训练集和测试集
X_train, X_test, y_train, y_test train_test_split(X, y_binary, test_size0.3, random_state42)# 创建逻辑回归模型
model LogisticRegression()# 训练模型
model.fit(X_train, y_train)# 打印训练后的模型参数
print(f模型的权重 (w): {model.coef_})
print(f模型的偏置 (b): {model.intercept_})# 用测试集进行预测
y_pred model.predict(X_test)# 计算模型的准确率
accuracy accuracy_score(y_test, y_pred)
print(f模型的准确率: {accuracy * 100:.2f}%)# 输出分类报告精确率、召回率、F1分数等
print(\n分类报告:)
print(classification_report(y_test, y_pred))
最大似然估计 (Maximum Likelihood Estimation, MLE)
最大似然估计MLE 是一种常用的统计方法用于估计模型参数使得在给定数据下模型的概率最大化。简单来说最大似然估计旨在找到最有可能生成观测数据的参数值。
MLE 是一种 参数估计方法广泛应用于许多机器学习和统计建模中尤其在 监督学习 和 概率模型 中应用广泛。
主要作用是利用已知的样本结果反推最有可能最大概率导致这样结果的参数值。
当“模型已定参数未知”时通过若干次试验观察其结果利用试验结果得到某个参数值能够使样本出现的概率为最大则称为极大似然估计。
最大似然估计的基本思想
假设我们有一组观测数据记为 X { x 1 , x 2 , … , x n } X \{x_1, x_2, \dots, x_n\} X{x1,x2,…,xn}这些数据来自某个概率分布该分布有一个参数 θ \theta θ。我们的目标是通过最大化 似然函数 来估计参数 θ \theta θ。
具体来说假设我们已知数据的分布类型比如高斯分布、伯努利分布等但我们并不知道分布的具体参数。最大似然估计就是通过寻找一个参数 θ \theta θ使得给定这个参数下观测到的数据的概率最大。
似然函数
给定数据集 X { x 1 , x 2 , … , x n } X \{x_1, x_2, \dots, x_n\} X{x1,x2,…,xn} 和模型的参数 θ \theta θ似然函数Likelihood Function表示在给定参数 θ \theta θ 下观察到数据的概率。假设数据集中的样本独立且同分布i.i.d.则似然函数可以表示为 L ( θ ; X ) P ( X ∣ θ ) ∏ i 1 n P ( x i ∣ θ ) L(\theta; X) P(X \mid \theta) \prod_{i1}^{n} P(x_i \mid \theta) L(θ;X)P(X∣θ)i1∏nP(xi∣θ)
其中 P ( x i ∣ θ ) P(x_i \mid \theta) P(xi∣θ) 是在参数 θ \theta θ 下样本 x i x_i xi 出现的概率。
对数似然函数
由于似然函数通常涉及乘法计算起来可能会很复杂。为了解决这个问题我们通常使用 对数似然函数因为对数函数是单调递增的因此最大化似然函数和最大化对数似然函数是等价的。对数似然函数为 ℓ ( θ ; X ) log L ( θ ; X ) ∑ i 1 n log P ( x i ∣ θ ) \ell(\theta; X) \log L(\theta; X) \sum_{i1}^{n} \log P(x_i \mid \theta) ℓ(θ;X)logL(θ;X)i1∑nlogP(xi∣θ)
对数似然函数将乘积转化为求和计算更为简便。
最大化对数似然
最大似然估计的目标是找到一个参数值 θ ^ \hat{\theta} θ^使得对数似然函数最大化即 θ ^ arg max θ ℓ ( θ ; X ) \hat{\theta} \arg\max_\theta \ell(\theta; X) θ^argθmaxℓ(θ;X)
这就是最大似然估计的核心思想通过找到参数 θ \theta θ 使得在该参数下数据的对数似然值最大。
通过最大似然估计估计参数
示例 1估计高斯分布的均值和方差
假设我们有一个来自高斯分布的数据集 X { x 1 , x 2 , … , x n } X \{x_1, x_2, \dots, x_n\} X{x1,x2,…,xn}我们想通过最大似然估计来估计其 均值 μ \mu μ 和 方差 σ 2 \sigma^2 σ2。
高斯分布的概率密度函数为 P ( x ∣ μ , σ 2 ) 1 2 π σ 2 exp ( − ( x − μ ) 2 2 σ 2 ) P(x \mid \mu, \sigma^2) \frac{1}{\sqrt{2\pi \sigma^2}} \exp\left( -\frac{(x - \mu)^2}{2\sigma^2} \right) P(x∣μ,σ2)2πσ2 1exp(−2σ2(x−μ)2)
根据似然函数的定义数据集的似然函数为 L ( μ , σ 2 ; X ) ∏ i 1 n 1 2 π σ 2 exp ( − ( x i − μ ) 2 2 σ 2 ) L(\mu, \sigma^2; X) \prod_{i1}^{n} \frac{1}{\sqrt{2\pi \sigma^2}} \exp\left( -\frac{(x_i - \mu)^2}{2\sigma^2} \right) L(μ,σ2;X)i1∏n2πσ2 1exp(−2σ2(xi−μ)2)
对似然函数取对数得到对数似然函数 ℓ ( μ , σ 2 ; X ) ∑ i 1 n [ − 1 2 log ( 2 π σ 2 ) − ( x i − μ ) 2 2 σ 2 ] \ell(\mu, \sigma^2; X) \sum_{i1}^{n} \left[ -\frac{1}{2} \log(2\pi \sigma^2) - \frac{(x_i - \mu)^2}{2\sigma^2} \right] ℓ(μ,σ2;X)i1∑n[−21log(2πσ2)−2σ2(xi−μ)2]
为了最大化对数似然函数我们分别对 μ \mu μ 和 σ 2 \sigma^2 σ2 求导并令其为 0得到最大似然估计的参数值。 对 μ \mu μ 求导 ∂ ℓ ∂ μ ∑ i 1 n x i − μ σ 2 0 \frac{\partial \ell}{\partial \mu} \sum_{i1}^{n} \frac{x_i - \mu}{\sigma^2} 0 ∂μ∂ℓi1∑nσ2xi−μ0 解得 μ ^ 1 n ∑ i 1 n x i \hat{\mu} \frac{1}{n} \sum_{i1}^{n} x_i μ^n1i1∑nxi 这就是样本均值的最大似然估计。 对 σ 2 \sigma^2 σ2 求导 ∂ ℓ ∂ σ 2 − n 2 σ 2 1 2 σ 4 ∑ i 1 n ( x i − μ ) 2 0 \frac{\partial \ell}{\partial \sigma^2} -\frac{n}{2\sigma^2} \frac{1}{2\sigma^4} \sum_{i1}^{n} (x_i - \mu)^2 0 ∂σ2∂ℓ−2σ2n2σ41i1∑n(xi−μ)20 解得 σ 2 ^ 1 n ∑ i 1 n ( x i − μ ^ ) 2 \hat{\sigma^2} \frac{1}{n} \sum_{i1}^{n} (x_i - \hat{\mu})^2 σ2^n1i1∑n(xi−μ^)2 这就是样本方差的最大似然估计。
示例 2伯努利分布的最大似然估计
假设我们有一组来自 伯努利分布 的观测数据。伯努利分布的概率质量函数为 P ( x ∣ p ) p x ( 1 − p ) 1 − x P(x \mid p) p^x (1 - p)^{1 - x} P(x∣p)px(1−p)1−x
其中 x ∈ { 0 , 1 } x \in \{0, 1\} x∈{0,1} p p p 是成功的概率。
假设我们有 n n n 个独立的伯努利试验观测值 X { x 1 , x 2 , … , x n } X \{x_1, x_2, \dots, x_n\} X{x1,x2,…,xn}我们要估计参数 p p p。则似然函数为 L ( p ; X ) ∏ i 1 n p x i ( 1 − p ) 1 − x i L(p; X) \prod_{i1}^{n} p^{x_i} (1 - p)^{1 - x_i} L(p;X)i1∏npxi(1−p)1−xi
对其取对数得到对数似然函数 ℓ ( p ; X ) ∑ i 1 n [ x i log p ( 1 − x i ) log ( 1 − p ) ] \ell(p; X) \sum_{i1}^{n} \left[ x_i \log p (1 - x_i) \log(1 - p) \right] ℓ(p;X)i1∑n[xilogp(1−xi)log(1−p)]
最大化对数似然函数求导并令其为 0 ∂ ℓ ∂ p ∑ i 1 n x i p − 1 − x i 1 − p 0 \frac{\partial \ell}{\partial p} \sum_{i1}^{n} \frac{x_i}{p} - \frac{1 - x_i}{1 - p} 0 ∂p∂ℓi1∑npxi−1−p1−xi0
解得 p ^ 1 n ∑ i 1 n x i \hat{p} \frac{1}{n} \sum_{i1}^{n} x_i p^n1i1∑nxi
这就是样本中 1 的比例的最大似然估计。
最大似然估计的优点和局限
优点
一致性随着样本数量 n n n 的增加最大似然估计趋近于真实的参数值在大样本下是无偏的。有效性MLE 是在满足正则条件下具有最小方差的估计量在大样本下。广泛适用最大似然估计可以用于各种类型的概率分布不仅限于常见的分布如高斯分布、伯努利分布等。
局限
计算复杂度高当样本量大或分布复杂时最大似然估计的计算可能非常复杂需要使用数值优化方法。模型假设的依赖性MLE 假设我们知道数据的分布类型如果选择了错误的模型分布估计结果可能会偏差。需要大量数据对于小样本数据最大似然估计可能会导致过拟合或者估计不准确。
参考资料
Simplifying Logistic Regression — A Beginner’s Guide with a Real-world Practical Example
【五分钟机器学习】机器分类的基石逻辑回归Logistic Regression
最大似然估计通俗讲解