核心问题如何用回归的思路解决分类问题逻辑回归虽然名字里有“回归”但它是一种分类算法尤其擅长二分类如是否欺诈、是否患病。一、为什么不能用线性回归做分类1.1 线性回归的输出范围问题线性回归输出范围是 (−∞,∞)。分类问题需要输出概率范围应该在 [0,1] 之间。直接用线性回归预测结果可能大于1或小于0没有概率意义。1.2 解决方案套上一个“压缩函数”我们需要一个函数能把线性回归的输出任意实数映射到 (0,1)区间。这个函数就是Sigmoid 函数也叫逻辑斯蒂函数。逻辑斯蒂回归 线性回归 Sigmoid 函数二、Sigmoid 函数核心2.1 公式与图像形状S 形曲线关于点 (0, 0.5) 中心对称。2.2 导数性质重要这个性质在梯度下降推导中非常有用。2.3 为什么用它输出天然是概率值光滑可导适合梯度下降优化在 z0附近变化最敏感远离0时趋于饱和三、逻辑斯蒂回归模型定义二分类3.1 模型表达式3.2 对数几率Logit左边是“正类概率 / 负类概率”的对数称为对数几率log-odds。这揭示了逻辑回归的本质对数几率是输入特征的线性函数。3.3 预测规则四、如何学习参数 w 和 b—— 最大似然估计五、梯度下降求解5.1 梯度公式5.2 参数更新梯度下降5.3 学习率的选择学习率表现问题过小收敛极慢训练时间长适中稳定收敛—过大震荡甚至发散无法收敛常用策略学习率衰减、自适应优化器Adam、RMSprop。六、决策边界6.1 线性决策边界由预测规则决定。在二维空间中是一条直线在高维空间中是一个超平面。例子0.5x10.8x2−10 是一条直线一侧预测为 1另一侧为 0。6.2 局限性逻辑回归的决策边界始终是线性的。如果数据本身是非线性可分的如圆形、螺旋形原始逻辑回归无法正确分类。6.3 如何实现非线性决策边界七、模型评估分类标准指标7.1 混淆矩阵真实\预测正类 (1)负类 (0)正类 (1)TPFN负类 (0)FPTN7.2 核心指标准确率 (Accuracy) (TPTN) / 总样本 —— 整体正确率但易受不平衡数据影响。精确率 (Precision) TP / (TPFP) —— 预测为正的样本中实际为正的比例。召回率 (Recall) TP / (TPFN) —— 实际为正的样本中被找出的比例。F1 分数 2 × (精确率×召回率) / (精确率召回率) —— 两者的调和平均。ROC 曲线与 AUCROC 横轴 FPR FP/(FPTN)纵轴 TPR TP/(TPFN)AUC 是 ROC 曲线下面积值越大模型排序能力越强且对不平衡数据鲁棒。详情可参考前一章《ROC曲线与AUC手动计算》。八、正则化防止过拟合8.1 为什么需要正则化逻辑回归中如果特征很多或数据线性可分权重会变得非常大导致模型对输入微小变化极其敏感过拟合。正则化通过对权重施加惩罚控制模型复杂度。8.2 L1 与 L2 正则化带有正则化的损失函数8.3 参数 Cscikit-learn 中的用法sklearn 中使用C而不是 λ关系为 C1/λC 很大→ 正则化弱 → 模型复杂 → 可能过拟合C 很小→ 正则化强 → 模型简单 → 可能欠拟合实践中通过交叉验证LogisticRegressionCV选择最优 C。九、多分类扩展9.1 一对其他One-vs-Rest, OvR对 k 个类别训练 k 个二分类器。第 i 个分类器将类别 i 作为正类其余所有类别作为负类。预测时选择概率最高的分类器对应的类别。优点只需 k 个分类器。缺点训练集不平衡负类样本远多于正类。9.2 一对一One-vs-One, OvO对每对类别训练一个二分类器共 k(k−1)/2 个。预测时所有分类器投票得票最多的类别获胜。优点每个分类器训练数据少边界更精细。缺点分类器数量随 k 平方增长存储和预测开销大。9.3 Softmax 回归多类别逻辑回归sklearn 逻辑回归默认使用 OvR可通过multi_classmultinomial切换为 Softmax。十、Python 实战鸢尾花分类10.1 基本代码from sklearn.datasets import load_iris from sklearn.linear_model import LogisticRegression from sklearn.model_selection import train_test_split from sklearn.metrics import classification_report, confusion_matrix # 加载数据 iris load_iris() X, y iris.data, iris.target # 三分类 # 划分训练集和测试集 X_train, X_test, y_train, y_test train_test_split( X, y, test_size0.3, random_state42, stratifyy ) # 创建模型Softmax 多分类 model LogisticRegression(multi_classmultinomial, solverlbfgs, max_iter200) model.fit(X_train, y_train) # 预测与评估 y_pred model.predict(X_test) print(准确率:, model.score(X_test, y_test)) print(confusion_matrix(y_test, y_pred)) print(classification_report(y_test, y_pred))10.2 重要参数说明参数说明常用值penalty正则化类型l2默认、l1、elasticnetC正则化强度的倒数正浮点数默认 1.0越小正则化越强solver优化算法lbfgs小数据、liblinear大数据、saga支持 L1multi_class多分类策略ovr默认、multinomialSoftmaxmax_iter最大迭代次数默认 100复杂问题需增大class_weight类别权重balanced自动平衡或手动指定十一、逻辑回归的优缺点总结优点简单、高效、训练速度快输出具有概率意义可解释性强权重直接反映特征影响方向和大小配合正则化不容易过拟合支持在线学习增量更新缺点决策边界是线性的对非线性数据需要手动做特征工程对异常值敏感特征之间存在多重共线性时系数估计不稳定对类别不平衡数据敏感需用class_weight或采样方法十二、核心公式速记卡