博客
关于我
logistic回归模型python_【机器学习速成宝典】模型篇03逻辑斯谛回归【Logistic回归】(Python版)...
阅读量:800 次
发布时间:2023-02-06

本文共 1996 字,大约阅读时间需要 6 分钟。

一元线性回归、多元线性回归、Logistic回归、广义线性回归、非线性回归的关系

极大似然估计

极大似然估计(Maximum Likelihood Estimate, MLE)是一种参数估计方法。其核心思想是:已知某个随机样本满足某种概率分布,但具体的参数未知。通过观察样本结果,找到能够使得样本出现的概率最大的参数值作为估计。这种方法建立在“已知参数能使事件发生的概率最大,则选择该参数作为真实值”的原则上。

逻辑斯谛回归(Logistic回归)

在机器学习中,线性回归模型最初是用于回归任务的,但当涉及分类问题时,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回归

Logistic回归不仅适用于二分类任务,还可以扩展到多类分类问题。常见的扩展方法有两种:

  • One-vs-Rest策略:针对每一类别构建一个单独的Logistic回归模型,并对比预测结果。
  • 多分类Logistic回归:通过扩展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表示负类)。

    Python代码(sklearn库)

    以下是使用 scikit-learn 库实现Logistic回归的示例代码:

    from numpy import *
    from sklearn.datasets import load_iris
    from sklearn.linear_model import LogisticRegression
    # 加载鸢尾花数据集
    iris = load_iris()
    # 拿取训练集和测试集
    trainX = iris.data
    trainY = 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/

    你可能感兴趣的文章
    Objective-C实现显示响应算法(附完整源码)
    查看>>
    Objective-C实现晚捆绑测试实例(附完整源码)
    查看>>
    Objective-C实现普通矩阵A和B的乘积(附完整源码)
    查看>>
    Objective-C实现更新数字指定偏移量上的值updateBit算法(附完整源码)
    查看>>
    Objective-C实现最优二叉搜索树算法(附完整源码)
    查看>>
    Objective-C实现最大和连续子序列算法(附完整源码)
    查看>>
    Objective-C实现最大最小距离算法(附完整源码)
    查看>>
    Objective-C实现最大的非常大的数字算法(附完整源码)
    查看>>
    Objective-C实现最大类间方差法OTSU算法(附完整源码)
    查看>>
    Objective-C实现最大非相邻和算法(附完整源码)
    查看>>
    Objective-C实现最小二乘多项式曲线拟合(附完整源码)
    查看>>
    Objective-C实现最小二乘法(附完整源码)
    查看>>
    Objective-C实现最小值滤波(附完整源码)
    查看>>
    Objective-C实现最小公倍数LCM算法(附完整源码)
    查看>>
    Objective-C实现最小生成树 boruvka算法(附完整源码)
    查看>>
    Objective-C实现最小编辑距离问题算法(附完整源码)
    查看>>
    Objective-C实现最小路径和算法(附完整源码)
    查看>>
    Objective-C实现最快的归并排序算法(附完整源码)
    查看>>
    Objective-C实现最短路径Dijsktra算法(附完整源码)
    查看>>
    Objective-C实现最短路径Dijsktra算法(附完整源码)
    查看>>