机器学习(三)常见算法优缺点

来源:互联网 发布:网络运维事迹材料 编辑:程序博客网 时间:2024/06/05 21:00

1. K近邻

       算法采用测量不同特征值之间的距离的方法进行分类。

1.1 优点

  1. 简单好用,容易理解,精度高,理论成熟,既可以用来做分类也可以用来做回归;

  2. 可用于数值型数据和离散型数据;

  3. 训练时间复杂度为O(n);无数据输入假定;

  4. 对异常值不敏感。

1.2 缺点

  1. 计算复杂性高;空间复杂性高;

  2. 样本不平衡问题(即有些类别的样本数量很多,而其它样本的数量很少);

  3. 一般数值很大的时候不用这个,计算量太大。但是单个样本又不能太少 否则容易发生误分。

  4. 最大的缺点是无法给出数据的内在含义。

2. 朴素贝叶斯

2.1优点

  1. 生成式模型,通过计算概率来进行分类,可以用来处理多分类问题;

  2. 对小规模的数据表现很好,适合多分类任务,适合增量式训练,算法也比较简单。

2.2缺点

  1. 对输入数据的表达形式很敏感;

  2. 由于朴素贝叶斯的“朴素”特点,所以会带来一些准确率上的损失;

  3. 需要计算先验概率,分类决策存在错误率。

3. 决策树

3.1 优点

  1. 概念简单,计算复杂度不高,可解释性强,输出结果易于理解;

  2. 数据的准备工作简单, 能够同时处理数据型和常规型属性,其他的技术往往要求数据属性的单一;

  3. 对中间值得确实不敏感,比较适合处理有缺失属性值的样本,能够处理不相关的特征;

  4. 应用范围广,可以对很多属性的数据集构造决策树,可扩展性强。决策树可以用于不熟悉的数据集合,并从中提取出一些列规则 这一点强于KNN。

3.2 缺点

  1. 容易出现过拟合;

  2. 对于那些各类别样本数量不一致的数据,在决策树当中,信息增益的结果偏向于那些具有更多数值的特征;

  3. 信息缺失时处理起来比较困难。 忽略数据集中属性之间的相关性。

4. SVM

4.1 优点

  1. 计算开销不大,结果容易解释;

  2. 泛化能力比较强,泛化错误率低;

  3. 解决小样本情况下的机器学习问题;

  4. 可用于线性和非线性分类,也可以用于回归;

  5. 可以解决高维问题, 可以避免神经网络结构选择和局部极小点问题;

4.2 缺点

  1. 对参数调节和和函数的选择敏感,原始分类器不加修改仅适用于处理二分类问题;

  2. 对于核函数的高维映射解释力不强,尤其是径向基函数;

  3. 对缺失数据敏感;

5. Logistic回归

       根据现有数据对分类边界线建立回归公式,依次进行分类。

5.1 优点

  1. 实现简单,易于理解和实现;计算代价不高,速度很快,存储资源低;
  2. 实现简单,广泛的应用于工业问题上;
  3. 分类时计算量非常小,速度很快,存储资源低;
  4. 便利的观测样本概率分数;
  5. 对逻辑回归而言,多重共线性并不是问题,它可以结合L2正则化来解决该问题;

5.2 缺点

  1. 容易欠拟合,分类精度可能不高

6. EM算法

       只要有一些训练数据,再定义一个最大化函数,采用EM算法,利用计算机经过若干次迭代,就可以得到所需的模型。EM算法是基于模型的聚类方法,是在概率模型中寻找参数最大似然估计的算法,其中概率模型依赖于无法观测的隐藏变量。E步估计隐含变量,M步估计其他参数,交替将极值推向最大

6.1 优点

       EM算法是自收敛的分类算法,既不需要事先设定类别也不需要数据见的两两比较合并等操作。比K-means算法计算结果稳定、准确。

6.2 缺点

       是当所要优化的函数不是凸函数时,EM算法容易给出局部最佳解,而不是最优解。EM算法比K-means算法计算复杂,收敛也较慢,不适于大规模数据集和高维数据。

7. AdaBoost算法

7.1 优点

  1. 很好的利用了弱分类器进行级联。

  2. 可以将不同的分类算法作为弱分类器。

  3. AdaBoost具有很高的精度。

  4. 相对于bagging算法和Random Forest算法,AdaBoost充分考虑的每个分类器的权重。

7.2 缺点

  1. AdaBoost迭代次数也就是弱分类器数目不太好设定,可以使用交叉验证来进行确定。

  2. 数据不平衡导致分类精度下降。

  3. 训练比较耗时,每次重新选择当前分类器最好切分点。

8. 人工神经网络

8.1 优点

  1. 分类准确度高,学习能力极强。

  2. 对噪声数据鲁棒性和容错性较强。

  3. 有联想能力,能逼近任意非线性关系。

8.2 缺点

  1. 神经网络参数较多,权值和阈值。

  2. 黑盒过程,不能观察中间结果。

  3. 学习过程比较长,有可能陷入局部极小值。

9. CART分类与回归树

       是一种决策树分类方法,采用基于最小距离的基尼指数估计函数,用来决定由该子数据集生成的决策树的拓展形。如果目标变量是标称的,称为分类树;如果目标变量是连续的,称为回归树。分类树是使用树结构算法将数据分成离散类的方法。

9.1 优点

  1. 常灵活,可以允许有部分错分成本,还可指定先验概率分布,可使用自动的成本复杂性剪枝来得到归纳性更强的树。

  2. 在面对诸如存在缺失值、变量数多等问题时CART 显得非常稳健。

  3. 可以生成可以理解的规则。

  4. 计算量相对来说不是很大。

  5. 可以处理连续和种类字段。

  6. 决策树可以清晰的显示哪些字段比较重要

9.2 缺点

  1. 对连续性的字段比较难预测。

  2. 对有时间顺序的数据,需要很多预处理的工作。

  3. 当类别太多时,错误可能就会增加的比较快。

  4. 一般的算法分类的时候,只是根据一个字段来分类。

1 0
原创粉丝点击