机器学习-逻辑回归

2024-09-26  本文已影响0人  阿凡提说AI

逻辑回归详解

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

1. 核心原理

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

1.1 线性模型

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

z = w0 + w1 * x1 + w2 * x2 + ... + wn * xn

1.2 Sigmoid 函数

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

P(y=1 | x) = 1 / (1 + exp(-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))]

损失函数的目标是:

3. 模型训练

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

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

4. 模型评估

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

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)

总结

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

上一篇下一篇

猜你喜欢

热点阅读