机器学习常见的分类算法的优缺点
1. 前言
在机器学习中,种类最多的一类算法要属很类算法,本文对机器学习中的各种分类算法的优缺点做一个总结。
2. 贝叶斯分类法
2.1 优点
- 所需估计的参数少,对于缺失数据不敏感。
- 有着坚实的数学基础,以及稳定的分类效率。
2.2 缺点
- 假设属性之间相互独立,这往往并不成立。(喜欢吃番茄、鸡蛋,却不喜欢吃番茄炒蛋)。
- 需要知道先验概率。
- 分类决策存在错误率。
3. 决策树
3.1 优点
- 不需要任何领域知识或参数假设。
- 适合高维数据。
- 简单易于理解。
- 短时间内处理大量数据,得到可行且效果较好的结果。
- 能够同时处理数据型和常规性属性。
3.2 缺点
- 对于各类别样本数量不一致数据,信息增益偏向于那些具有更多数值的特征。
- 易于过拟合。
- 忽略属性之间的相关性。
- 不支持在线学习。
4. 支持向量机
4.1 优点
- 可以解决小样本下机器学习的问题。
- 提高泛化性能。
- 可以解决高维、非线性问题。超高维文本分类仍受欢迎。
- 避免神经网络结构选择和局部极小的问题。
4.2 缺点
- 对缺失数据敏感。
- 内存消耗大,难以解释。
- 运行和调差略烦人。
5. K近邻
5.1 优点
- 思想简单,理论成熟,既可以用来做分类也可以用来做回归。
- 可用于非线性分类。
- 训练时间复杂度为O(n)。
- 准确度高,对数据没有假设,对outlier不敏感。
5.2 缺点
- 计算量太大。
- 对于样本分类不均衡的问题,会产生误判。
- 需要大量的内存。
- 输出的可解释性不强。
6. Logistic回归
6.1 优点
- 运算速度快。
- 简单易于理解,直接看到各个特征的权重。
- 能容易地更新模型吸收新的数据。
- 如果想要一个概率框架,动态调整分类阀值。
6.2 缺点
- 特征处理复杂。需要归一化和较多的特征工程。
7. 神经网络
7.1 优点
- 分类准确率高。
- 并行处理能力强。
- 分布式存储和学习能力强。
- 鲁棒性较强,不易受噪声影响。
7.2 缺点
- 需要大量参数(网络拓扑、阀值、阈值)。
- 结果难以解释。
- 训练时间过长。
8. Adaboost
8.1 优点
- adaboost是一种有很高精度的分类器。
- 可以使用各种方法构建子分类器,Adaboost算法提供的是框架。
- 当使用简单分类器时,计算出的结果是可以理解的。而且弱分类器构造极其简单。
- 简单,不用做特征筛选。
- 不用担心overfitting。
8.2 缺点
- 对outlier比较敏感