逻辑回归是一个二分类算法,用来判断某个样本属于哪个类别。

比如:

  • 邮件是不是垃圾邮件?
  • 病人是否患病?
  • 用户是否会流失?

🧠 思想核心:

逻辑回归不是输出一个直接的“类别”,而是:

输出一个概率值(在 0 到 1 之间),然后根据阈值(通常是 0.5)来判断属于哪个类别。


📐 数学公式

逻辑回归的输出是通过 sigmoid 函数 计算出来的概率:

h(x) = sigmoid(w·x + b)
     = 1 / (1 + e^-(w·x + b))

  • x:输入特征(如年龄、工资等)
  • w:权重
  • b:偏置
  • h(x):预测为“正类”的概率(比如是癌症的概率)

如果 h(x) > 0.5 → 预测为正类;否则为负类。


🎯 逻辑回归 vs 线性回归

项目线性回归逻辑回归
任务回归(预测连续数值)分类(输出概率+判断类别)
输出实数(无范围限制)概率(范围 0~1)
输出函数线性函数sigmoid 函数
应用示例预测房价判断邮件是否为垃圾邮件

✅ Python 逻辑回归实战(scikit-learn)

🧪 案例:预测是否通过考试

import numpy as np
from sklearn.linear_model import LogisticRegression

# 输入数据(小时数)
X = np.array([[1], [2], [3], [4], [5], [6]])
# 标签(0=未通过,1=通过)
y = np.array([0, 0, 0, 1, 1, 1])

# 创建模型并训练
model = LogisticRegression()
model.fit(X, y)

# 预测新数据
new_data = np.array([[3.5]])
pred = model.predict(new_data)
proba = model.predict_proba(new_data)

print("预测结果(是否通过):", pred[0])
print("预测概率 [没通过,通过]:", proba[0])


📈 模型评估指标(分类任务)

指标名作用
Accuracy准确率:预测对的比例
Precision精确率:预测为正类中,实际是正类的比例
Recall召回率:所有正类中,被正确预测的比例
F1-score综合考虑精确率和召回率的加权平均
AUC面积值衡量分类效果(越接近 1 越好)

🚀 优点与局限

优点缺点
简单高效,易解释只能处理线性可分的问题
输出概率而非直接标签(灵活性)对异常值敏感
适用于高维稀疏数据(如文本分类)难以处理复杂特征交互,效果不如树模型

🔧 应用场景

  • 医疗:预测疾病概率
  • 金融:判断客户是否违约
  • 市场营销:客户是否会购买
  • NLP:文本情感分析

🛠 想练手?推荐两个项目:

  1. 泰坦尼克生存预测(Kaggle 初学者首选)
  2. 垃圾邮件识别(用邮件文本分类)

如果你想,我可以马上帮你搭建一个完整的小项目,带你一起写 ✨
要不要来一个?😊