2021你该知道的11大机器学习算法

Feb 02, 2021 by Zhang in  Blog

随着你对机器学习了解的增加,新出现的机器学习算法的数量也在同时增加,本文将为你介绍11种数据科学界常见的机器学习算法。

Photo by Markus Winkler on Unsplash

为了减少文章的长度,本文中对于某些算法的阐述会比其他算法的阐述更精简。同时,我尽量减少了本文中的数学运算量,因为我知道这对于那些不太精通数学的读者是个挑战。相反,我会对每个算法进行简要的总结,并指出他们的一些关键特点。考虑到这一点,我将首先介绍一些更基本的算法,然后再介绍一些较新兴的算法, 比如CatBoost,Gradient Boost和XGBoost。

Linear Regression线性回归

线性回归是最基本算法之一。它是对一个因变量与一个或多个自变量之间的关系进行建模的。简而言之,它的目的是想找到一个“最佳拟合线”来显示两个或多个变量之间的关系。

最佳拟合线,是通过最小化每个点与线之间的平方距离来找到的-也就是去最小化残差平方和。在这里, 残差等于预测的值减去实际的值。

如果上面的解释不是很容易理解,这里有个图片可以提供参考。将这条绿线和最佳拟合的红线进行比较,你能发现,绿线的垂直线(残差)比红线大得多。这是因为绿线离这些点的距离太远了,并不能很好地展示数据!如果你想知道有关线性回归背后的更多数学知识,我建议你从Brilliant’s Explanation开始了解。

Logistic Regression逻辑回归

逻辑回归与线性回归相似,但它是用来对于离散的结果(通常为两个)的概率而进行建模。乍一看,逻辑回归好像比线性回归复杂得多,但实际上逻辑回归只比线性回归多一步。

首先,要用这个与最佳拟合线直线方程式相似的方程式计算出结果。

多的这一步,是把之前在S型函数中得出的结果用在下面这个方程,我们就会得到一个概率。此概率还可以转换为二进制输出,即1或0。

我们可以使用梯度下降法(gradient descent)或极大似然法(Maximum Likelihood)之类的方法来找到初始方程的权重。现在你了解到了此模型的工作原理,由于它不在本文的讨论范围之内,所以我不再做进一步的详细介绍。

K-Nearest Neighbors    KNN近邻算法

K近邻算法的道理很简单。首先,你会有一些已分类的数据(即红色和蓝色数据点)。然后,当你想添加新数据点时,可以通过查看k最近的分组来进行分类。哪个类别得票更多,新点就会分类到那里。

在这种情况下,如果我们将k设置为1,则可以看到与灰色样本最接近的那个点是红色的点。因此,这个点就会被分类为红色。

需要记住的一点是,如果k的值设置得太低,可能会出现离群值。但是,如果k的值设置得太高,那么它可能会忽略了只有少数样本的类别。

Naive Bayes 朴素贝叶斯

朴素贝叶斯(Naive Bayes)是一种分类算法。当输出变量为离散到值时,我们就使用这个算法。可能有人不太敢用朴素贝叶斯算法,因为使用它需要条件概率和贝叶斯定理的初步数学知识,但实际上这是一个非常简单且“朴素”的概念,我将举例说明:

假设我们输入了有关天气特征(天气,温度,湿度,大风)的信息以及是否打高尔夫球的数据(即最后一栏)。朴素贝叶斯本质上所做的是去比较每个输入变量在输出变量中类别之间的比例。可以在下表中显示。

举个例子,在温度一栏中,打高尔夫球的九天中有两天很热(yes)。转换为数学术语,可以把它解释成为打高尔夫球时天气很热的概率。这里的 数学符号为P(hot | yes)。这就是条件概率,这对于理解我将要说的其余内容至关重要。明白了这个以后,你就可以根据天气特征的任意组合来预测是否要打高尔夫球。

想象一个有以下特征的一天:

  • 天气:晴
  • 温度:温和
  • 湿度:正常
  • 风大:无

首先,我们先要计算在X,P(yes | X)的情况下打高尔夫球的概率,然后计算在给X,P(no | X)的情况下不打高尔夫球的概率。

使用上面的图表,我们可以获得以下信息:

现在,我们可以把这些信息放进以下公式:

相应的,现在要为P(no | X)进行同样的的步骤,得到以下结果。

由于P(yes | X)> P(no | X),因此你可以预测,在天气晴朗,温度适中,湿度正常且没有大风的情况下,此人会打高尔夫球。

这就是朴素贝叶斯的本质。

Support Vector Machines 支持向量机

支持向量机是一种监督分类技术,它可能会变得非常复杂,但其实最基本的级别上却非常直观。为了更容易理解,我们将把它放在一个广泛的层面上来讲。

假设我们有两类数据。支持向量机将在两类数据之间找到一个超平面或边界,让两类数据之间的余量最大化(请参见上图)。其实,有许多平面可以将两个类别分开,但是只存在一个平面能使两个类别之间的边距或距离最大化。

Decision Tree 决策树

Random Forest  随机森林

你需要知道以下几个术语:

  • Ensemble learning(集成学习) 是一种结合使用多种学习算法的方法。与单独使用一个算法相比,它可以实现更高的预测性能。
  • Bootstrap sampling (自助抽样法)是一种重新采样方法,它使用随机采样来替换样本。听起来很复杂,但它其实非常简单。
  • Bagging(袋装算法) 使用引导的数据库的汇总来做决定。

现在你已经知道了这些术语,让我们接着深入探讨。

随机森林是基于决策树的一种整体学习技术。随机森林使用原始数据的自举数据集来创建多个决策树,并在决策树的每一步中随机选择变量的子集。然后,模型会选择每个决策树的所有预测模式(装袋)。这有什么意义?通过依靠“多数者胜”的模型,它降低了单个树出错的风险。

例如,如果我们只创建了一个决策树,也就是图中第三个决策树,它将预测为0。但是,如果我们依靠以上所有4个决策树的模式,预测值就会为1。这就是随机森林的厉害之处!

AdaBoost

AdaBoost(Adaptive Boost)也是一种集成算法,它利用袋装和增强学习的方法来实现更强的预测器。AdaBoost与随机森林的相似之处在于,预测是同时来自许多决策树。但是,AdaBoost的独特之处在于它的三个主要区别:

  1. 首先,AdaBoost创建了的是由树桩而非树木组成的森林。树桩是仅由一个节点和两片叶子组成的树(如上图所示)。
  2. 其次,在最终决策(最终预测)中每个树桩的重要度不是平均的。产生更多错误的树桩在最终决定中将没有很大的影响。
  3. 最后,树桩的制作顺序很重要,因为每个树桩的目的都是减少先前树桩造成的错误。

从本质上讲,AdaBoost采取了一种更具迭代性的方法,即从以前的树桩所犯的错误中寻求改进。

Gradient Boost

Gradient Boost也是一种集成算法,它是利用增强学习的方法来开发更强的预测器。在许多方面,Gradient Boost与AdaBoost相似,但他们有几个主要区别:

  • 与AdaBoost生成树桩不同,Gradient Boost生成通常具有8–32片树叶的树木。
  • Gradient Boost将增强问题视为优化问题,在其中使用损失函数并尝试最小化误差。因为受梯度下降而启发,所以它才被称为“Gradient Boost(梯度增强)”。
  • 最后,它的树是用于预测样本的残差的(预测值减去实际值)。

尽管最后一点可能令人困惑,但你只需要知道的是,Gradient Boost是想要先构建一棵树来尝试拟合数据,而随后构建的树则是为了减少残差(错误)。与AdaBoost类似,它把重点放在了优化现有学习机器表现不够好的部分。

XGBoost

XGBoost是当今最流行和使用最广泛的算法之一,因为它简单却强大。它类似于Gradient Boost,但它具有一些额外特征让它本身更强大,包括:

  • 叶节点按比例缩小(修剪)—用于改善模型的泛化
  • Newton boosting(牛顿增强)-提供比梯度下降更直接的最小值,使其更快
  • 一个额外的随机参数-减少树与树之间的相关性,最终提高整体强度
  • 对树木的独特处理

LightGBM

可能你会认为XGBoost是目前最好的算法,其实不然。LightGBM是另一种增强算法,已显示出比XGBoost更快甚至更高的准确性。

LightGBM的与众不同之处在于,它使用一种独特技术, 被称作基于梯度的单面采样(Gradient-based One-Side Sampling:GOSS), 来过滤出数据,从而找到分割值。这与XGBoost不同,它使用的是预排序算法和直方图算法来找到最佳分割点。

CarBoost

CatBoost是基于梯度下降(Gradient Descent)的另一种算法, 它具有一些细微的差异,使其与别人不同:

  • CatBoost使用了对称树,这有助于减少预测时间,并且在默认情况下,树深度也会较浅(深度为6 )
  • CatBoost利用随机排列,与XGBoost利用随机参数的方式类似
  • 与XGBoost不同,CatBoost会更优雅地处理分类功能,它使用的是有序增强、响应编码等概念

总体而言,CatBoost如此强大是因为它极低的等待时间,同样情况下,它会比XGBoost快八倍左右。

如果你读到这里,那就恭喜!现在,你应该对所有不同的机器学习算法有了更好的了解。如果你很难理解最后几种算法,不要灰心–它们不仅比其他算法更复杂,同时也相对较新!因此,请继续关注更多资源,在未来会更深入讨论这些算法。祝你在数据科学披荆斩棘。如果你喜欢这篇文章,请多多关注,不胜感激!:)

原文作者:Terence Shin
翻译作者:Jiawei Tong
美工编辑:过儿
校对审稿:Dongdong
原文链接:https://towardsdatascience.com/all-machine-learning-algorithms-you-should-know-in-2021-2e357dd494c7

Top20高薪H1B职位: 高管、工程师

Mar 08, 2021

随着拜登(Biden)政府的上台,H-1B签证(以及需要就业的移民)相关条例可能会在未来几年发生根本性变化。此刻,有必要研究一下哪些技术岗位给H-1B员工的薪酬最高。

被Airbnb裁员的技术人员的新选择 — JP Morgan

Jul 22, 2020

一个月前,Airbnb联合创始人兼首席执行官Brian Cheskey通过电子邮件向员工宣布,公司将因2019冠状病毒裁员1900人。可能在不久后的某一天,他们中的一些人可能会出现在摩根大通。

如何在非技术背景下转数据领域?

Nov 15, 2020

如果你是另一领域的专业人士,并且对技术专家的职业感兴趣,我们有个好消息要告诉你:在没有任何技术经验的情况下,你很有可能投身于学习你所选择的技术专业。

Leave a Comment

Your email address will not be published. Required fields are marked *

Comment *