美文网首页
机器学习-逻辑回归

机器学习-逻辑回归

作者: 阿凡提说AI | 来源:发表于2024-09-26 00:54 被阅读0次

    逻辑回归详解

    逻辑回归 (Logistic Regression) 是一种用于分类问题的统计方法,特别适用于二元分类问题,即预测一个样本属于两个类别中的哪一个。尽管名称中包含“回归”,但它实际上是一个分类模型。

    1. 核心原理

    逻辑回归的核心思想是通过一个 Sigmoid 函数 将线性模型的输出映射到 0 到 1 之间的概率值,从而判断样本属于某个类别的可能性。

    1.1 线性模型

    首先,逻辑回归建立一个线性模型:

    z = w0 + w1 * x1 + w2 * x2 + ... + wn * xn
    
    • z 是线性组合的结果
    • w0 是截距(常数项)
    • w1, w2, ... wn 是特征的权重
    • x1, x2, ... xn 是特征值

    1.2 Sigmoid 函数

    接下来,将线性模型的输出 z 传递给 Sigmoid 函数,得到预测概率:

    P(y=1 | x) = 1 / (1 + exp(-z))
    
    • P(y=1 | x) 表示给定特征 x,样本属于类别 1 的概率
    • exp(-z) 是 e 的 -z 次方

    Sigmoid 函数是一个 S 形曲线,将任意输入值压缩到 0 到 1 之间,方便解释为概率。

    2. 损失函数

    逻辑回归使用 对数似然损失函数 (Log-Likelihood Loss) 来评估模型的预测性能:

    L(w) = -1/N * Σ[y_i * log(P(y_i=1 | x_i)) + (1-y_i) * log(1-P(y_i=1 | x_i))]
    
    • N 是样本数量
    • y_i 是第 i 个样本的真实标签,取值 0 或 1
    • P(y_i=1 | x_i) 是模型对第 i 个样本属于类别 1 的预测概率

    损失函数的目标是:

    • 当模型预测正确时,损失值越小
    • 当模型预测错误时,损失值越大

    3. 模型训练

    逻辑回归的训练过程就是找到一组最优的权重 w,使得损失函数 L(w) 最小。通常使用 梯度下降法 (Gradient Descent) 或其变种来优化权重。

    梯度下降法不断更新权重 w,沿着损失函数下降的方向移动,直到找到一个局部最小值点。

    4. 模型评估

    训练完逻辑回归模型后,需要评估其性能。常用的评估指标包括:

    • 准确率 (Accuracy): 正确预测的比例
    • 精确率 (Precision): 正确预测为正类的样本占所有预测为正类样本的比例
    • 召回率 (Recall): 正确预测为正类的样本占所有真实正类样本的比例
    • F1 Score: 精确率和召回率的调和平均数

    5. 优缺点

    优点

    • 简单易懂,易于实现
    • 训练速度快
    • 对线性可分的数据效果较好
    • 可以给出预测概率,而不是硬性分类结果

    缺点

    • 对非线性数据效果较差
    • 易受离群点影响
    • 需要对数据进行预处理,例如标准化

    6. 应用场景

    • 医疗领域:预测疾病风险
    • 金融领域:客户信用评分、贷款违约预测
    • 市场营销:客户流失预测、转化率预测
    • 社会科学:选举投票行为预测

    7. 代码示例

    import numpy as np
    from sklearn.linear_model import LogisticRegression
    from sklearn.model_selection import train_test_split
    from sklearn.metrics import accuracy_score, classification_report
    
    # 1. 数据准备
    X = np.array([[1, 2], [2, 3], [3, 4], [4, 5], [5, 6], [6, 7], [7, 8], [8, 9]])
    y = np.array([0, 0, 0, 1, 1, 1, 1, 1])
    
    # 2. 数据分割
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=42)
    
    # 3. 模型训练
    model = LogisticRegression()
    model.fit(X_train, y_train)
    
    # 4. 模型预测
    y_pred = model.predict(X_test)
    
    # 5. 模型评估
    accuracy = accuracy_score(y_test, y_pred)
    report = classification_report(y_test, y_pred)
    
    # 打印结果
    print("模型准确率:", accuracy)
    print("分类报告:\
    ", report)
    

    总结

    逻辑回归是一种简单但强大的分类模型,在许多实际应用中取得了成功。理解逻辑回归的原理及其应用场景,对于数据分析和模型构建非常重要。

    相关文章

      网友评论

          本文标题:机器学习-逻辑回归

          本文链接:https://www.haomeiwen.com/subject/eqlhrjtx.html