本文共 1964 字,大约阅读时间需要 6 分钟。
极大似然估计(Maximum Likelihood Estimate, MLE)是一种参数估计方法。其核心思想是:已知某个随机样本满足某种概率分布,但具体的参数未知。通过观察样本结果,找到能够使得样本出现的概率最大的参数值作为估计。这种方法建立在“已知参数能使事件发生的概率最大,则选择该参数作为真实值”的原则上。
在机器学习中,线性回归模型最初是用于回归任务的,但当涉及分类问题时,Logistic回归模型提供了一个有效的解决方案。Logistic模型的核心公式为:
[ P(y=1|x) = \frac{1}{1 + e^{-z}} ]
其中,( z = x \beta + \beta_0 ),( \beta ) 为权重参数,( \beta_0 ) 为截距参数。该公式表示,给定输入 ( x ) 的条件下,样本属于正类(( y=1 ))的概率。
Logistic模型的训练目标是最小化对数似然损失函数:
[ L = -\sum_{i=1}^n \left( y_i \cdot \log(\frac{1}{1 + e^{-z_i}}) + (1 - y_i) \cdot \log(1 + e^{-z_i}) \right) ]
通过优化该损失函数,可以得到最优的权重和截距参数。
Logistic回归不仅适用于二分类任务,还可以扩展到多类分类问题。常见的扩展方法有两种:
[ \log L = \sum_{k=1}^K \sum_{i=1}^n [ y_{ik} \cdot \log(\frac{1}{1 + e^{-z_{ik}}}) + (1 - y_{ik}) \cdot \log(1 + e^{-z_{ik}}) ) ] ]
其中,( y_{ik} ) 表示样本 ( i ) 属于类别 ( k ) 的标记(1表示正类,0表示负类)。
以下是使用 scikit-learn 库实现Logistic回归的示例代码:
from numpy import *from sklearn.datasets import load_irisfrom sklearn.linear_model import LogisticRegression# 加载鸢尾花数据集iris = load_iris()# 拿取训练集和测试集trainX = iris.datatrainY = iris.target# 初始化Logistic回归模型clf = LogisticRegression( penalty='l2', # L2正则化 dual=False, # 不使用对偶形式 tol=1e-4, # 迭代收敛的容错率 C=1.0, # 正则化项系数 fit_intercept=True, # 拟合截距 intercept_scaling=1, # 截距缩放因子 class_weight=None, # 类别权重 random_state=None, # 随机种子 solver='liblinear', # 使用liblinear求解器 max_iter=100, # 最大迭代次数 multi_class='ovr', # 使用one-vs-rest策略 verbose=0 # 不输出日志)# 训练模型clf.fit(trainX, trainY)# 输出权重和截距print("权值:", clf.coef_)print("截距:", clf.intercept_)# 模型性能评估print("分数:", clf.score(trainX, trainY))# 对训练集进行预测print(clf.predict(trainX))print(trainY)
通过上述内容可以看出,虽然线性模型简单,却蕴含着丰富的变化形式。例如,通过对Logistic回归模型的扩展,可以得到广义线性回归模型。这种模型不仅适用于二分类任务,还可以扩展到多类分类问题。通过极大似然估计的思想,Logistic回归模型能够有效地解决分类问题,并通过优化对数似然损失函数来找到最佳模型参数。
转载地址:http://xcufk.baihongyu.com/