传统机器学习算法(统计学习)优缺点盘点

在机器学习领域的一个基本的定理是“没有免费的午餐“,也就是所没有算法能适用于所有的问题。算法的选择必须要根据实际的场景与面对的问题来抉择。我们可以将机器学习问题分为如下三大类:

  1. 回归(Regression)
  2. 分类(Classification)
  3. 聚类(Clustering)

一、回归

回归是一种用于连续型数字变量预测和建模的监督学习算法,使用场景包括房地产价格、股价走势或学生成绩等的预测。回归任务的特征是具有数字型目标变量的标注型数据集。

1.1 线性回归(正则化)

线性回归是最简单的回归算法,它用一个连续的超平面来拟合数据集。当数据集内变量具有线性关系时,拟合效果较好。当非线性时,我们则需要用到核方法。
实践中,简单的线性回归通常会加上惩罚项,即正则化(Lasso、Ridge及Elastic),防止过拟合。

  • 优点:线性回归简单易解释,可通过正则化避免过拟合。此外线性模型很容易通过随机梯度下降来更新数据。
  • 缺点:对非线性的数据集效果差,在识别复杂的模式上也不理想。
  • 实现:Python中的scikit-learn库

1.2 回归树(集成方法)

回归树,即决策树,通过将数据集不断分割成不同分支来最大化每次分割后的信息增益,从而然回归树自然的学到非线性关系。
集成方法,常用的有随机森林(RF)与梯度提升树(GBM),通过结合许多独立的训练树来进行预测。实践中,RF表现出色,GBM参数较难调,性能上限高。

  • 优点:决策树能学习非线性关系,对异常值具有很强的稳健性。集成学习在实践中表现优异。
  • 缺点:单棵树容易过拟合,过多分支记住了训练的数据,没有识别出其中的模式。集成学习可以弱化这一缺点。
  • 实践:集成方法

1.3 深度学习

深度学习是指能够续诶极端复杂模式的多层神经网络。通过在输入层与输出层之间使用隐藏层来对数据的中间表征建模,这一点其他算法很难做到。
深度学习中的卷积、dropout等方法使得其可以有效的学习高维数据,但是前提是需要很大量的数据,估算更大量极的参数,需要强大的计算能力。

  • 优点:是目前特定领域的最先进技术,如:计算机视觉与语音识别。其在图像、音频和文本数据上表现优异,很容易通过反向传播来更新数据。不同的构架适用于不同的问题,隐藏层降低了算法对特征工程的依赖。
  • 缺点:不适用于通用目的,需要大量的数据。对于传统的机器学习问题,表现并不比集成方法好。
  • 实现:使用keras实现深度学习

1.4 knn算法

最近邻算法是“基于实例的”,也就意味着它需要保留每一个训练观察值。最近邻算法通过搜寻最相似的训练样本来预测新样本的观察值。
它是内存密集型算法,处理高维数据时的效果并不理想,同时还需要高效的距离函数来计算相似度。在实践中,使用正则化的回归或树型集成方法通常是更好的选择。


二、分类

分类是一种用于分类变量建模及预测的监督学习算法,使用场景包括顾客流失、邮件过滤、金融欺诈等的预测。分类往往适用于类别的预测,而非数值。

2.1 逻辑回归

逻辑回归是线性回归的推广,通过逻辑函数将预测映射到0-1的区间,预测值可视为某一类别的概率。
模型仍是线性的,当数据线性可分时表现良好,同时也适用惩罚方法进行正则化。

  • 优点:输出结果有很好的概率解释,算法可通过正则化避免过拟合。容易适用梯度下降来更新参数。
  • 缺点:面对多元或非线性决策边界时性能较差。
  • 实现:Python实现logistic回归

2.2 分类树

对应于回归树的分类算法是分类树。通常,它们都是指决策树,更为严谨的说法是“分类回归树(CART)”,也就是非常有名的 CART 算法。

  • 优点:跟回归方法一样,分类树的集成方法在实践中的表现同样十分优异。它们在应对异常数据时有着相当的稳健性与可扩展性。由于其层级结构,分类树的集成方法能够很自然地对非线性决策边界建模。
  • 缺点:不可约束,单棵树容易过拟合,集成方法可削弱这一影响。

2.3 支持向量机

支持向量机使用一个名为核函数的技巧,来将非线性问题变换为线性问题,其本质是计算两个观测数据的距离。支持向量机算法所寻找的是能够最大化样本间隔的决策边界,因此又被称为大间距分类器。
举例来说,使用线性核函数的支持向量机类似于逻辑回归,但更具稳健性。因而在实践中,支持向量机最大用处是用非线性核函数来对非线性决策边界进行建模。
- 优点:支持向量机能对非线性决策边界建模,又有许多可选的核函数。在面对过拟合时,支持向量机有着极强的稳健性,尤其是在高维空间中。
- 缺点:不过,支持向量机是内存密集型算法,选择正确的核函数就需要相当的j技巧,不太适用较大的数据集。在当前的业界应用中,随机森林的表现往往要优于支持向量机。

2.4 朴素贝叶斯

朴素贝叶斯是一种基于条件概率和计数的简单算法,其本质是一个概率表,通过训练数据来更新其中的概率。它预测新观察值的过程,就是根据样本的特征值在概率表中来寻找最为可能的类别。
被称为“朴素”原因,是其核心的特征条件独立性假设(例如,每一项输入特征都相互独立),在现实中几乎是不成立的。
- 优点:即便条件独立性假设很难成立,但实践中的朴素贝叶斯算法却能表现得很好。该算法易于实现且能伴随数据集更新。
- 缺点:因为朴素贝叶斯的算法太过简单,所以很容易被上述分类算法所取代。

三、聚类

K 均值 仿射传播 分层/层次 DBSCAN

你可能感兴趣的:(机器学习)