常见机器学习算法
常见机器学习算法
随机森林(Random Forest,RF)
随机森林是 集成学习(Bagging) 的代表算法,用多棵决策树共同做预测。
- 核心思想
1、Bootstrap 抽样:从原始数据有放回抽样,生成多份不同训练集,分别训练一棵决策树。
2、特征随机选择:每棵树分裂节点时,只随机挑选部分特征,避免单棵树过度依赖少数强特征,降低树之间的相关性。
3、聚合结果 - 分类:多棵树投票,少数服从多数;
- 回归:取所有树输出的平均值。
- 优缺点
优点 - 抗过拟合,单棵决策树容易过拟合,森林综合后泛化能力强;
- 对噪声、异常值鲁棒;不用做特征归一化;能输出特征重要性。
缺点 - 模型是黑盒,解释性差;
- 树数量多,训练预测速度慢于单棵树;对极高维稀疏数据表现一般。
简单理解
就像找很多个各有偏见的专家,每个专家只看部分样本、部分信息做判断,最后集体投票,抵消个体偏差,得到更靠谱结论。
随机森林适合的数据类型
- 样本
表格结构化数据(最擅长):队列、观察性研究、临床数据集,行 = 样本,列 = 特征,是随机森林主场。
临床预测模型:患者基线、检验、超声指标,非常适合随机森林。
样本量:
✅ 中、大样本效果好;
⚠️小样本慎用:样本过少,bootstrap 抽样差异小,树之间相似度高,集成增益有限,容易虚高性能。 - 特征类型
✅ 可以直接处理
连续变量:年龄、血压、AUC、超声测量值等;
分类变量:二分类(是否吸烟)、多分类(ASA 分级);
sklearn 实现:分类特征需要手动编码(独热 / 标签编码);R 语言 ranger、randomForest 可以直接识别因子类型,不用手动编码。
✅ 对缺失值
原生不能直接处理缺失,需要提前插补;但对少量缺失、噪声、异常值鲁棒性优于线性回归。
❌ 不擅长
极高维稀疏数据:文本词袋、基因上万维度稀疏矩阵,效果不如 LASSO、SVM;
图像、原始音频序列:不是设计目标,不如深度学习;
强时序依赖数据:时间序列预测效果一般,不善于捕捉长时序趋势。 - 结局(因变量)
分类任务:二分类(是否发生低血压)、多分类;
回归任务:连续结局(血压数值);
⚠️不原生支持生存分析;有拓展包ranger可以做随机森林生存模型。 适合与不适合场景总结
✅适合:
临床结构化观察数据,变量混杂、存在非线性关系、变量间交互作用;
不想严格满足线性回归假设(不需要正态、不需要线性关系);
需要输出特征重要性筛选变量池;
预测模型,挖掘非线性、交互效应(对比传统 Cox/logistic 回归)。
❌不适合:
极小样本;
纯稀疏高维;
需要很强可解释性(每一个样本为什么得到这个结果,随机森林整体黑盒);
时序预测。
对比传统回归(科研预测模型角度)
Logistic/Cox 回归:强制假设线性、交互项要手动设置;随机森林:自动捕捉非线性、特征交互,不需要预先设定交互项;缺点:不能直接输出 OR、HR,可解释性弱。
XGBoost(Extreme Gradient Boosting,极端梯度提升)
核心思想
属于Boosting 提升集成学习,串行训练一系列决策树;每一棵新树拟合前一轮模型的残差(负梯度),不断修正模型误差。- 目标函数增加 L1、L2 正则项,抑制树复杂度,对抗过拟合;
- 使用二阶泰勒展开损失函数,同时利用一阶、二阶梯度信息,优化精度更高;
- 支持列采样、行采样;内置缺失值自动分裂处理规则;支持自定义损失函数。
区别 Bagging:树是串行生成,后一棵树依赖前一棵树结果,不是独立并行训练。
数据适配
- 数据类型:结构化表格数据最优;连续、分类变量均可;分类变量需要编码;
- 缺失值:原生内置缺失值处理逻辑,可不用提前插补;
- 样本量:中大样本性能突出;小样本极易发生过拟合;
- 不擅长:原始图像、文本;极高维稀疏数据表现一般。
优缺点
优点
- 表格数据预测精度通常很高;正则机制完善;支持缺失值;
- 支持分类、回归、生存分析;可输出特征重要性;广泛用于竞赛与临床预测研究。
缺点 - 超参数高度敏感,调参工作量大;黑盒模型;
- 深度优先分裂策略,训练速度慢于 LightGBM;小样本容易过拟合;
- 没有传统回归的 OR/HR。
适用场景
✅适用:样本充足的临床结构化预测模型;追求较高预测效能;二分类结局(并发症、是否低血压)、回归结局;作为机器学习对比基线。
❌不适用:小样本数据集;强可解释性要求;时序、图像原始数据。
AdaBoost(自适应提升,分类提升)
核心思想
Boosting 类算法,串行训练一系列弱分类器(通常为深度很浅的决策树桩)。
- 初始化所有样本权重相同;
- 训练弱分类器,对被错误分类的样本增大样本权重,下一轮训练会更加关注错分样本;正确分类样本权重降低;
- 每一个弱学习器分配不同权重,准确率越高的基模型权重越大;最终加权投票输出预测结果。
数据适配
- 数据类型:结构化表格;适合二分类任务;
- 缺失值:不原生支持缺失,需要预处理;对异常点、噪声样本非常敏感;噪声样本会被持续放大权重;
- 样本量:中等样本;噪声多的数据集性能崩塌。
优缺点
优点
- 原理简单,实现容易;不需要复杂调参;弱基模型即可获得集成提升。
缺点 - 对噪声、离群点极其敏感;容易聚焦异常样本导致整体过拟合;
- 很难拟合复杂非线性交互效应;现在临床预测中已经很少使用;被 XGBoost/LightGBM 替代。
适用场景
✅适用:简单低噪声二分类任务;算法原理学习;
❌不适用:临床真实队列(普遍存在噪声与异常检验值);复杂预测任务;大样本高维变量。
LightGBM(光梯度提升机)
核心思想
微软基于 GBDT 优化的 Boosting 框架,串行树拟合负梯度。两大核心改进:
- 直方图算法:将连续特征离散化为分箱直方图,减少计算量,降低内存消耗;
- 按叶子生长(Leaf‑wise):每次分裂选择增益最大的叶子节点生长,而不是层优先(level‑wise);
- 支持直接输入类别特征,无需独热编码;支持行、列采样,正则化。
数据适配
- 数据类型:结构化表格数据,临床队列十分友好;分类变量可直接识别;
- 缺失值:原生支持缺失值处理;
- 样本量:大样本优势巨大,训练速度远快于 XGBoost;小样本 leaf‑wise 生长容易过拟合;
- 不擅长:图像、文本;极小样本。
优缺点
优点
- 训练速度快、内存占用低;表格数据性能接近 XGBoost;支持类别特征原生输入;
- 特征重要性输出;适合大数据量队列。
缺点
- leaf‑wise 生长在小样本容易过拟合,必须限制最大叶子数;超参数敏感;黑盒;
- 相比于 XGBoost 二阶优化实现有简化。
适用场景
✅适用:样本量较大的临床预测;变量数量多;需要快速训练调参;二分类、回归任务;
❌不适用:小样本数据集;追求极致稳定优先于速度。
支持向量机 SVM(Support Vector Machine)
核心思想
判别式模型,寻找最优分隔超平面,最大化两类样本之间的间隔。
- 模型只依赖边界附近的支持向量,大部分内部样本不参与超平面构建;
- 通过核函数(线性、RBF 径向基核)把低维数据映射到高维空间,实现非线性分割;
- C 惩罚系数控制错分代价;gamma 控制核函数影响范围。
数据适配
- 数据类型:结构化表格;对特征尺度高度敏感,必须标准化 / 归一化;
- 缺失值:不支持缺失,必须预处理;
- 样本量:中小样本尚可;样本量增大训练速度急剧下降;
- 高维:维度极高时 RBF 核效果下降。
优缺点
优点
- 中小样本下非线性核可以捕捉复杂关系;泛化能力理论上依靠最大间隔;
缺点
- 大样本计算速度慢;概率输出结果可靠性较差;超参数调参困难;
- 没有特征重要性;可解释性差;临床队列大样本场景竞争力弱于树集成模型。
适用场景
✅适用:维度中等、样本量不大的数据集;传统机器学习对照实验;
❌不适用:大样本临床队列;样本不平衡严重;需要特征重要性;大样本量(上万样本以上)。
决策树(Decision Tree)
核心思想
单棵树模型,递归对数据集进行分裂;基于信息增益、信息增益比、基尼系数选择最优特征与阈值;形成 if‑else 树形分支规则。
- 根节点→内部节点(特征判断条件)→叶节点(预测输出);
- 可以设置剪枝(预剪枝、后剪枝)限制树复杂度,降低过拟合。
数据适配 - 数据类型:结构化表格;连续、分类变量均可,不需要归一化;
- 缺失值:原生支持有限,需要预处理;
- 样本量:任意样本,但单棵树泛化差;
优缺点
优点 - 模型规则直观,可以画出树结构,具备可解释性;自动捕捉非线性、交互效应;
- 无需特征标准化。
缺点 - 极易过拟合;模型不稳定:样本轻微扰动,树结构剧烈改变;
- 单棵树预测能力有限;容易偏向占比多的特征;
适用场景
✅适用:生成集成模型的基学习器(随机森林、GBDT);简单规则探索;教学演示;
❌不适用:单独用于临床预测模型;高噪声数据集。
梯度提升分类器 GBDT(Sklearn 原生 GradientBoostingClassifier)
核心思想
经典 Boosting 算法,XGBoost/LightGBM 的原始原型。串行训练决策树,每棵树拟合上一轮模型的负梯度(伪残差),迭代降低预测误差。
- 使用一阶梯度信息;无二阶泰勒展开;
- level‑wise 层优先生长;L2 正则;没有直方图优化、缺失值特殊处理。
数据适配 - 数据类型:结构化表格;分类变量需要编码;
- 缺失值:不原生支持缺失,需要预处理;
- 样本量:中大样本;小样本易过拟合。
优缺点
优点
- Boosting 基础模型,原理清晰;可输出特征重要性;
缺点
- 缺少 XGBoost、LightGBM 各类工程优化;训练慢;无缺失处理;整体性能弱于 XGBoost/LightGBM;调参繁琐。
适用场景
✅适用:算法原理学习;小规模数据对照实验;
❌不适用:真实临床队列预测建模,优先替换为 XGBoost / LightGBM。
人工神经网络 ANN(多层感知器 MLP)
核心思想
由输入层、若干隐藏层、输出层神经元构成;每层神经元加权连接;通过激活函数引入非线性;反向传播算法不断更新权重最小化损失函数。
- 多层网络理论上可以逼近任意复杂函数;
- 可设置 L2 正则、dropout 防止过拟合。
数据适配 - 数据类型:结构化表格;必须特征标准化 / 归一化;
- 缺失值:不支持缺失,必须预处理;
- 样本量:需要较大样本量;小样本临床队列极易严重过拟合;
- 不擅长:小样本表格;表格数据不一定优于树集成。
优缺点
优点 - 强大非线性拟合能力,可以捕捉高度复杂交互;
- 支持分类、回归多任务。
缺点 - 黑盒程度高;超参数量巨大(层数、神经元、学习率、dropout)调参成本极高;
- 小样本极易过拟合;需要标准化;表格结构化数据往往打不过 XGBoost、随机森林。
适用场景
✅适用:样本量很大数据集;特征维度高;存在高度复杂非线性;
❌不适用:中等、小样本临床队列;样本量不足时不优先选择作为基线预测模型。