经典机器学习算法的优缺点
作者: orangeshushu分类: ML & DL发布时间: 2018-07-12 11:42
kNN
- 特点:k值的选择会对k近邻法的结果产生重大影响
- 优点:精度高、对异常值不敏感、无数据输入假定
- 缺点:计算复杂度高、空间复杂度高
- 适用数据范围:数值型和标称型
朴素贝叶斯
- 优点:学习和预测的效率高,且易于实现;在数据较少的情况下仍然有效,可以处理多类别问题。
- 缺点:分类性能不一定很高;条件假设独立会使朴素贝叶斯变得简单,但有时会牺牲一定的分类准确率。
- 适用数据范围:标称型数据
决策树
- 特点:适用于小数据集
- 优点:计算复杂度不高,输出结果易于理解,对中间值的缺失不敏感,可以处理不相关特征数据。
- 缺点:可能产生过度匹配问题。
- 适用数据范围:数值型和标称型
Logistic回归
- 优点:计算代价不高,易于理解和实现。
- 缺点:容易欠拟合,分类的精度可能不高。
- 适用数据范围:数值型和标称型
Boosting
- 优点:泛化错误率低,易编码,可以应用在大部分分类器上,无参数调整。
- 缺点:对离群点敏感。
- 适用数据范围:数值型和标称型
随机森林
特点:
- 准确率可以和Adaboost相媲美,但是对错误和离群点更鲁棒。
- 随着森林中树的个数增加,森林的泛化误差收敛。因此,过拟合不是问题。
- 准确率依赖于个体分类器的实力和它们之间的依赖性。理想情况是保持个体分类器的能力而不提高它们的相关性。
- 对每次划分所考虑的属性数很敏感。通常选取
个属性,其中n是数据集的实例数。(一个有趣的观察是,使用单个随机选择的属性可能导致很好的准确率,常常比使用多个属性更高。)
- 由于在每次划分时只考虑很少的属性,因此它们在大型数据库上非常有效。
- 可能比Bagging和Boosting更快。
- 给出了变量重要性的内在估计。
- 有很好的方法来填充缺失值,即便有很大一部分数据缺失,仍能维持很高准确度。
- 对于不平衡样本分类,它可以平衡误差。
- 可以计算各实例的亲近度,对于数据挖掘、检测离群点和数据可视化非常有用。
缺点:
- 在某些噪声较大的分类和回归问题上会过拟合。
- 对于有不同级别的属性的数据,级别划分较多的属性会对随机森林产生更大的影响,所以随机森林在这种数据上产生的属性权值是不可信的。
k-Means
- 优点:容易实现
- 缺点:可能收敛到局部最小值,在大规模数据集上收敛较慢。
- 适用数据类型:数值型数据
Apriori算法
- 优点:易编码实现
- 缺点:在大数据集上可能较慢
- 适用数据类型:数值型或者标称型数据
更多阅读
- 神经网络训练中的梯度消失与梯度爆炸
- SVM常用的核函数
- Deep Residual Learning for Image Recognition
- RF、GBDT、XGBoost比较整理
- ID3、C4.5、CART三种决策树的区别
- Dynamic Routing Between Capsules
- 151. Reverse Words in a String
- 275. H-Index II
- 344. Reverse String
- 70. Climbing Stairs
- 非常好用的Python模块:collections
- About me
- 680. Valid Palindrome II
- TP、TN、FP、FN解释说明
- SVM用于多分类
- 434. Number of Segments in a String