机器学习专栏(36):逻辑回归与Softmax回归全解析(附完整代码与可视化)

目录

一、逻辑回归:概率世界的"温度计"

1.1 核心原理:从线性到概率的魔法转换

1.2 Sigmoid函数:概率转换的核心引擎

1.3 实战案例:鸢尾花二分类

二、模型训练:损失函数的艺术

2.1 对数损失函数解析

2.2 正则化实战技巧

三、Softmax回归:多分类的终极武器

3.1 数学原理深度解析

3.2 多分类实战技巧

四、工业级应用指南

4.1 特征工程黄金法则

4.2 模型评估矩阵

4.3 超参数调优模板

五、避坑指南:常见误区解析

5.1 特征重要性陷阱

5.2 典型错误案例

六、进阶技巧:概率校准

6.1 校准曲线绘制

6.2 校准实战代码

七、最佳实践总结


一、逻辑回归:概率世界的"温度计"

1.1 核心原理:从线性到概率的魔法转换

真实场景:金融风控中的欺诈检测

  • 输入:用户交易特征(金额、地点、时间等)

  • 输出:欺诈概率(0-1之间的数值)

  • 阈值设定:当概率>0.85时触发人工审核

1.2 Sigmoid函数:概率转换的核心引擎

数学表达

\sigma(z) = \frac{1}{1 + e^{-z}} = \frac{e^z}{e^z + 1}

动态可视化

import numpy as np
import matplotlib.pyplot as plt

z = np.linspace(-10, 10, 100)
sigmoid = 1 / (1 + np.exp(-z))

plt.figure(figsize=(10,6))
plt.plot(z, sigmoid, linewidth=3)
plt.axvline(0, color='gray', linestyle='--')
plt.axhline(0.5, color='red', linestyle=':')
plt.title("Sigmoid函数概率转换曲线", fontsize=14)
plt.xlabel("z = θ·x")
plt.ylabel("预测概率P(y=1|x)")
plt.grid(True)
plt.show()

1.3 实战案例:鸢尾花二分类

完整代码流程

from sklearn.datasets import load_iris
from sklearn.linear_model import LogisticRegression
import matplotlib.pyplot as plt

# 加载数据(花瓣宽度特征)
iris = load_iris()
X = iris.data[:, 3:]  # 花瓣宽度
y = (iris.target == 2).astype(int)  # 是否是维吉尼亚鸢尾

# 训练模型
model = LogisticRegression(C=10)
model.fit(X, y)

# 生成预测曲线
X_new = np.linspace(0, 3, 1000).reshape(-1, 1)
y_proba = model.predict_proba(X_new)

plt.figure(figsize=(10, 6))
plt.plot(X_new, y_proba[:, 1], "g-", label="维吉尼亚鸢尾概率")
plt.plot(X_new, y_proba[:, 0], "b--", label="非维吉尼亚鸢尾概率")
plt.xlabel("花瓣宽度 (cm)")
plt.ylabel("概率")
plt.legend(loc="center left")
plt.title("花瓣宽度与分类概率关系", fontsize=14)
plt.grid(True)

二、模型训练:损失函数的艺术

2.1 对数损失函数解析

数学表达式

你可能感兴趣的:(人工智能专题,机器学习,逻辑回归,回归)