传统机器学习算法优缺点对比
一、线性回归
a、优点
1. 实现简单,计算高效
2. 可以处理连续值和离散值特征
3. 可以通过正则化控制模型复杂度
b、缺点
1. 对非线性关系拟合能力有限
2. 对异常值敏感,通常需要WOE编码
3. 对特征之间存在共线性时,结果可能不稳定
c、损失函数
均方误差(MSE):loss(y, F) = (1/n) * Σ(y - F)^2
d、优化求解方法:
最小二乘法、梯度下降等
二、逻辑回归
a、优点
1. 应用广泛,可解释性强,特征量化能力强
2. 输出结果表示概率,部署极简单可通过sql实现
3. 可通过WOE编码提供非线性
b、缺点
1. 特征工程要求较高,容易过拟合,需添加惩罚项
2. 需要处理缺失值和异常值
3. 需要大量样本支持模型训练
c、损失函数
对数损失函数:loss(y, p) = -[y * log(p) + (1 - y) log(1 - p)]
d、优化求解方法:
梯度下降、牛顿法等
三、决策树
a、优点
1. 简单直观,具有可解释性
2. 可以处理离散型和连续型特征
3. 可以处理多输出问题
b、缺点
1. 容易产生过拟合
2. 对数据中的噪声比较敏感
3. 训练速度较慢
c、损失函数
基尼不纯度:Gini(p) = 1 - Σ(p_i^2)
信息熵:Entropy(p) = -Σ(p_i * log2(p_i))
d、优化求解方法:
根据特征切分数据集,通过信息增益或基尼不纯度进行判断
四、SVM
a、优点
1. 在高维空间中有效,对于非线性问题表现好
2. 可以通过核函数灵活适应不同数据结构
3. 可以处理高维特征空间,具有较好的泛化能力
b、缺点
1. 模型解释性较差
2. 对参数的选择比较敏感
3. 卡方核、多项式核,径向基函数(RBF)和sigmoid和函数选择难
c、损失函数
Hinge Loss:loss(y, f) = max(0, 1 - y*f)
d、优化求解方法:
根据支持向量确定超平面,通过凸优化求解
五、朴素贝叶斯
a、优点
1. 算法简单,速度快
2. 对缺失数据和噪声的鲁棒性较好
b、缺点
1. 对特征之间依赖关系敏感
2. 特征独立性假设条件难以满足
c、损失函数
各种不同的损失函数,如多项式分布、伯努利分布等
d、优化求解方法:
根据样本特征条件独立性假设,利用贝叶斯公式推导求解
六、Random Forest
a、优点
1. 具有较高的准确性
2. 对噪声和离群值具有一定鲁棒性
3. 能够评估变量的重要性
b、缺点
1. 模型解释性相对较差
2. 训练时间较长
3. 需要更多存储空间和内存
c、损失函数
不直接使用损失函数,通过集成多个决策树进行优化
d、优化求解方法:
通过自助采样构建每个决策树的训练集
七、GBDT
a、优点
1. 在处理非线性关系上表现良好
2. 可以处理连续值和离散值特征
3. 关注错分样本,精度比随机森林高
b、缺点
1. 容易过拟合,需调整参数多
2. 对于高维稀疏数据集不适用
3. 训练速度较慢
c、损失函数
MSE
交叉熵损失:
二分类时等价对数损失
多分类时等价Softmax损失函数
Softmax Loss(y, P) = -Σ(y * log(P))
泰勒一阶展开
d、优化求解方法:
梯度下降,通过拟合负梯度方向上的残差进行优化
八、XGBoost
a、优点
1. 结合了梯度提升算法和正则化技术
2. 支持并行计算和分布式训练
3. 使用了预排序技术和近似算法加速训练过程
b、缺点
1. 相对于传统的GBDT算法复杂度较高
2. 对超参数调整要求较高
3. 调参速度较慢如gridsearch
4. 防止过拟合需添加L1,L2正则项
c、损失函数
MSE
交叉熵损失
泰勒二阶展开
d、优化求解方法:
牛顿,拟牛顿法,使用梯度提升算法和近似贪婪算法进行优化
九、LightGBM
a、优点
1. 采用直方图加速,训练速度比XGBoost快
2. 类别特征可直接使用,缺失值无需单独处理
3. 提供了特征选择和模型调参的便利功能
b、缺点
1. 对稀疏数据集支持较弱,可能需要转换格式
2. 在小规模数据集或特征较少时性能优势不明显
3. 防止过拟合需添加L1,L2正则项
c、损失函数
MSE
交叉熵损失
d、优化求解方法:
基于直方图的决策树学习算法
十、BP神经网络
a、优点
1.非线性建模能力强
2.适用于大规模问题
3.自动特征提取,共线性影响小
b、缺点
1.参数调整困难
2.模型解释性差
3.容易过拟合,需添加dropout,batch normalization,Early Stopping,Early Termination等
c、损失函数
MSE
交叉熵损失
d、优化求解方法:
梯度下降、动量法、自适应学习率方法
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
· 张高兴的大模型开发实战:(一)使用 Selenium 进行网页爬虫