五种算法详解(SVM / Logistic Regression / kNN / Random Forest / HistGradientBoosting)

五种算法详解(SVM / Logistic Regression / kNN / Random Forest / HistGradientBoosting)

本文介绍项目中横向对比与投票集成所用的五种经典算法:技术原理、关键超参数、优缺点、适用场景、在本项目的推荐配置与常见陷阱。


1) 支持向量机 SVM(线性核)

  • 核心原理:通过最大化分类间隔(margin)来提升泛化能力。线性核下即在特征空间中寻找最优超平面,间隔最大化等价于二次优化问题;加入松弛变量处理不可分数据。

  • 概率输出:通常通过 Platt scaling 等方法对决策函数进行后校准得到近似概率,需要 probability=True 训练时启用。

  • 关键超参:

    • C(正则强度):越大越倾向于拟合训练数据,越小越平滑、泛化更强。
    • kernel:本项目使用 linear(线性核)。
    • probability:为 True 时启用概率估计(训练更慢)。
  • 优点:

    • 适合高维特征、小样本;具有明确的间隔最大化几何解释。
    • 在线性可分近似时表现稳健,泛化较好。
  • 缺点:

    • 概率估计为后处理,训练耗时会增加;对异常点较敏感。
  • 适用场景:

    • 高维表征(如图像经降维后的特征)、类间边界相对线性。
  • 本项目推荐配置:

    • LinearSVCSVC(kernel='linear', probability=True);前置 StandardScaler + PCA(n_components=50)
  • 常见陷阱:

    • 忘记标准化会导致权重尺度失衡;C 过大易过拟合,过小则欠拟合。

2) 逻辑回归 Logistic Regression(One-vs-Rest)

  • 核心原理:以逻辑函数建模后验概率,最大化对数似然;多分类用 OvR 拆分为多个二分类。L2 正则可抑制过拟合。
  • 关键超参:
    • C(正则强度,和 SVM 定义方向相反):值大→正则弱;值小→正则强。
    • penalty/solver:常见 penalty='l2', solver='lbfgs'saga(支持大规模与稀疏)。
    • class_weight:'balanced' 可在类别不均衡时改善召回。
  • 优点:
    • 概率输出可靠、可解释性强;线性模型,训练与预测高效。
  • 缺点:
    • 对非线性边界拟合能力有限;特征工程要求高。
  • 适用场景:
    • 线性可分近似、需要概率与可解释性、作为稳健基线。
  • 本项目推荐配置:
    • LogisticRegression(multi_class='ovr', class_weight='balanced'),配合 StandardScaler + PCA
  • 常见陷阱:
    • 未标准化或正则不当导致收敛慢或欠/过拟合;类别极不均衡时需关注阈值与权重。

3) k 近邻 kNN(距离加权)

  • 核心原理:基于相似度的惰性学习;预测时在训练集中寻找最近的 k 个邻居,进行投票或概率估计(距离加权)。
  • 关键超参:
    • k:邻居数量,过小易受噪声影响,过大导致过度平滑。
    • weights:'uniform''distance';建议使用 'distance' 提升鲁棒性。
    • metric:距离度量,常用欧氏距离。
  • 优点:
    • 简单直观,无训练时间;对多模态数据友好。
  • 缺点:
    • 预测时开销大;对特征尺度敏感;对噪声与冗余特征较敏感。
  • 适用场景:
    • 小规模、结构清晰的数据集;作为对比基线。
  • 本项目推荐配置:
    • KNeighborsClassifier(n_neighbors=5, weights='distance'),使用标准化与 PCA 后的特征。
  • 常见陷阱:
    • 未标准化导致距离失真;k 取 1 在噪声存在下波动大。

4) 随机森林 Random Forest

  • 核心原理:Bagging 思想集成多棵决策树(随机特征子集),通过投票与均值降低方差、提升鲁棒性。
  • 关键超参:
    • n_estimators:树的数量;适度增大提升稳定性但带来更多计算。
    • max_depth, max_features:控制树复杂度与随机性。
    • class_weight:不均衡数据时可用 'balanced'
  • 优点:
    • 对特征尺度不敏感;抗过拟合;可给出特征重要度;概率输出自然。
  • 缺点:
    • 相比线性模型可解释性较差;树太深会过拟合(虽集成可缓解)。
  • 适用场景:
    • 中小规模、非线性关系明显、特征工程有限的任务。
  • 本项目推荐配置:
    • RandomForestClassifier(n_estimators≈300, class_weight='balanced'),前置标准化+PCA 可加速但非必须。
  • 常见陷阱:
    • n_estimators 太小波动大;未限制 max_depth 在小数据集上也可能过拟合。

5) 直方梯度提升树 HistGradientBoosting (HGBT)

  • 核心原理:梯度提升树的高效实现,对连续特征先做分桶(直方),以直方统计加速分裂搜索;逐轮拟合残差,提升偏差方向的性能。
  • 关键超参:
    • learning_rate:步长,越小越稳健但需更多迭代。
    • max_iter:迭代轮数(树数)。
    • max_depth / max_leaf_nodes:控制树的表达能力与过拟合风险。
    • l2_regularization:正则项强度。
  • 优点:
    • 拟合能力强、速度快;对多种特征分布鲁棒;常在表格数据/低维嵌入上有更高精度。
  • 缺点:
    • 对噪声与异常点敏感;超参众多需调优;概率校准有时需要后处理。
  • 适用场景:
    • 特征维度较低(或降维后)、非线性关系明显、追求更高精度的任务。
  • 本项目推荐配置:
    • HistGradientBoostingClassifier(max_iter≈300),配合 PCA 后 50 维特征;可与 SVM/LogReg 进行投票集成。
  • 常见陷阱:
    • learning_rate 与 max_iter 需配套调整;max_depth 过大易过拟合。

投票与融合策略建议

  • 多数投票(硬投票):
    • 简洁稳健;平局可用"按权重的概率均值"打破。
  • 加权投票(软投票):
    • 将各模型的类别概率向量按权重相加取 argmax;权重可用验证集 Accuracy 或 F1;本项目默认读取 svm_pd_model/model_compare_results.json
  • 何时采用:
    • 单模型已较强但类别间有互补时,集成常带来稳健性提升。

本项目中的实践要点

  • 统一预处理:StandardScaler + PCA(n_components=50),再送入各分类器。
  • 概率缺失时的处理:对于不提供 predict_proba 的模型,用 one-hot 近似概率用于集成。
  • 权重来源:若 model_compare_results.json 缺失则使用等权重。

参考资料

相关推荐
花火|27 分钟前
算法训练营day58 图论⑧ 拓扑排序精讲、dijkstra(朴素版)精讲
算法·图论
AI_RSER1 小时前
遥感&机器学习入门实战教程|Sklearn 案例④ :多分类器对比(SVM / RF / kNN / Logistic...)
python·算法·机器学习·支持向量机·分类·sklearn
初学小刘1 小时前
机器学习中的聚类与集成算法:从基础到应用
算法·机器学习·聚类
杜子不疼.2 小时前
【LeetCode 415】—字符串相加算法详解
算法·leetcode·职场和发展
仙俊红2 小时前
LeetCode每日一题,2025-08-21
算法·leetcode·职场和发展
楽码2 小时前
傻傻分不清:信息和通信复杂度
网络协议·算法·函数式编程
凳子(刘博浩)2 小时前
机器学习两大核心算法:集成学习与 K-Means 聚类详解
算法·机器学习·集成学习
已读不回1433 小时前
设计模式-工厂模式
前端·算法·代码规范
CoovallyAIHub3 小时前
YOLOv8-SMOT:基于切片辅助训练与自适应运动关联的无人机视角小目标实时追踪框架
深度学习·算法·计算机视觉
CoovallyAIHub3 小时前
全景式综述|多模态目标跟踪全面解析:方法、数据、挑战与未来
深度学习·算法·计算机视觉