初学者的十大机器学习算法
2018-01-07 23:15 作者:FintechProbe编译 收藏(0) 阅读(1667) 评论(0)


一、导言

在《哈佛商业评论》(Harvard Business Review)的一篇文章中,对ML算法的研究获得了巨大的关注,他将“数据科学家”作为“21世纪最性感的工作”。所以,对于那些在ML领域起步的人来说,我们决定重新启动我们非常流行的黄金博客——10算法机器学习工程师需要知道的——尽管这篇文章是针对初学者的。

ML算法是那些可以从数据中学习并从经验中改进的算法,无需人工干预。学习任务可能包括学习将输入映射到输出的函数,在未标记数据中学习隐藏结构;或者“基于实例的学习”,其中通过将新实例(行)与来自存储在存储器中的训练数据的实例进行比较来为新实例生成类标签。 “基于实例的学习”不会创建具体实例的抽象。 

二、 ML算法的类型

有三种ML算法:

1.监督式学习:

监督式学习可以解释如下:使用标记的训练数据来学习从输入变量(X)到输出变量(Y)的映射函数。

Y = fX

监督学习问题可以有两种类型:

a.分类:预测给定样本的结果,其中输出变量以类别的形式出现。例如男性和女性,患病和健康的标签。

b.回归:回归:预测给定样本的结果,其中输出变量以实际值的形式出现。例子包括表示降雨量的实值标签,一个人的身高。

我们在这篇博客中介绍的前5个算法 - 线性回归,Logistic回归,CART,朴素贝叶斯,KNN是监督学习的例子。

组合是一种有监督的学习。这意味着结合多个不同弱ML模型的预测来预测一个新的样本。算法9 - 10我们用随机森林覆盖的方法,用XGBoost来促进集成技术的例子。

2.无监督学习:

无监督学习问题只有输入变量(X),但没有相应的输出变量。它使用无标签的训练数据来模拟数据的基本结构。

无监督学习问题可以有两种类型:

a.       关联:发现集合中项目共同出现的概率。它广泛用于市场购物篮分析。例子:如果一个顾客买面包,他80%的可能也会买鸡蛋。

b.聚类:对样本进行分组,使得同一群集内的对象彼此之间的关系比另一个群集中的对象更为相似。

C.维度减少:正如其名称,维度减少意味着减少数据集的变量数量,同时确保重要的信息仍然传达。可以使用特征提取方法和特征选择方法来完成降维。特征选择选择原始变量的一个子集。特征提取执行从高维空间到低维空间的数据转换。例如:PCA算法是一种特征提取方法。

我们在这里介绍的算法6-8AprioriK-meansPCA是无监督学习的例子。

3.强化学习:

强化学习是一种机器学习算法,它允许代理根据其当前状态决定最佳的下一个动作,通过学习行为来最大化回报。

强化算法通常通过反复试验来学习最佳行为。它们通常用于机器人 - 机器人可以通过在碰到障碍物后接收负面反馈来学习避免碰撞,以及在视频游戏中 - 反复试验显示特定动作可以激发玩家的奖励。然后,代理可以使用这些奖励来了解游戏的最佳状态,并选择下一个动作。

三、量化ML算法的流行度

这些调查报告对10种最流行的数据挖掘算法进行了量化。但是,这样的清单是主观的,就像在引用的文件中那样,被调查参与者的样本规模非常狭窄,由数据挖掘的高级从业人员组成。受访者是ACM KDD创新奖、IEEE ICDM研究贡献奖的获奖者; KDD-06ICDM6SDM6的计划委员会成员;ICDM6145名与会者。

本博客中排名前十的算法是针对初学者的,主要是我在孟买大学计算机工程学士学位期间从“数据仓库与挖掘”(DWM)课程中学到的。 DWM课程是对ML算法领域的一个很好的介绍。我特别把最后两个算法(集合方法)包括在他们的流行的基础上,以赢得Kaggle比赛。希望你喜欢这篇文章!

第四,监督学习算法

1.线性回归

ML中,我们有一组输入变量(x)用于确定输出变量(y)。输入变量和输出变量之间存在关系。 ML的目标是量化这种关系。


图1:线性回归以y = a + bx的形式表示。

在线性回归中,输入变量(x)和输出变量(y)之间的关系表示为形式为y = a + bx的方程。因此,线性回归的目标是找出系数ab的值。这里,a是截距,b是线的斜率。

1显示了数据集的xy值。目标是拟合一条与大多数点距离最近的直线。这将减少数据点和直线的y值之间的距离( error )

 2. 逻辑回归

线性回归预测是连续值(以cm为单位的降雨量),逻辑回归预测是在应用变换函数之后的离散值(不管学生是否通过/失败)。

逻辑回归最适合二进制分类(y = 01的数据集,其中1表示默认类)例如:在预测事件是否发生时,发生的事件被分类为1.在预测人将会生病或不生病,生病的实例记为1)。它是以其中使用的变换函数命名的,称为逻辑函数hx= 1 /1 + e x),它是一个S形曲线。

在逻辑回归中,输出是以默认类的概率的形式出现的(不同于直接产生输出的线性回归)。因为这是一个概率,所以输出在0-1的范围内。输出(y值)通过对数转换x值,使用逻辑函数hx= 1 /1 + e -x)来生成。然后应用一个阈值来强制这个概率进入二元分类。


图2:Logistic回归分析确定肿瘤是恶性还是良性的。 如果概率h(x)> = 0.5,则分类为恶性。

在图2中,为了确定肿瘤是否是恶性的,默认变量是y = 1(肿瘤=恶性); x变量可以是肿瘤的量度,例如肿瘤的大小。如图所示,逻辑函数将数据集的各种实例的x值转换成01的范围。如果概率超过阈值0.5(由水平线示出),则将肿瘤分类如恶性。

可以将逻辑回归方程Px= e b0 + b1 x/1 + e b0 + b1 x))转换为lnpx/ 1-p = b0 + b1 x

逻辑回归的目标是使用训练数据来找到系数b0b1的值,以使预测结果与实际结果之间的误差最小化。这些系数是使用最大似然估计技术估计的。

3. CART

分类和回归树(CART)是决策树的一个实现,其中包括ID3C4.5等。

非终端节点是根节点和内部节点。终端节点是叶节点。每个非终端节点表示单个输入变量(x)和该变量上的分裂点;叶节点表示输出变量(y)。该模型用于做出如下预测:漫游树的分裂到达一个叶节点,并输出叶节点上存在的值。

3中的决策树根据年龄和婚姻状况分类是否购买跑车或小型货车。如果这个人超过三十年没有结婚,我们走树如下:“三十多年?” - > - >“已婚?” - >否。因此,该模型输出一个跑车。


图3:决策树的部分。

4.朴素贝叶斯

为了计算事件发生的概率,假设已经发生了另一个事件,我们使用贝叶斯定理。为了计算给定某个变量值的结果的概率,也就是说,根据我们的先验知识(d)计算假设(h)为真的概率,我们使用贝叶斯定理如下:

Ph d=Pd h Ph))/ Pd

在哪里

Ph d=后验概率。假设h为真的概率给定数据d,其中Ph d= Pd1 h Pd2 h ... Pdn h Pd

Pd h=可能性。数据d的概率假设h是真的。

Ph=类别先验概率。假设h的可能性为真(不考虑数据)

Pd=预测值先验概率。数据的可能性(与假设无关)

这个算法被称为“天真的”,因为它假设所有的变量是相互独立的,这是一个天真的假设,在现实世界的例子。


图4:用朴素贝叶斯预测变量“天气”的状态。

以图4为例,如果天气=“阳光”,结果如何?

为了确定结果play =yes o,给定变量weather =sunny的值,计算P(是晴天)和Pno 晴天),并以较高的概率选择结果。

- > P(是晴天)=P(晴天是) P(是))/ P(晴天)

  =3/9 9/14/5/14

  = 0.60

- > Pno sunny=P(晴天) Pno))/ P(晴天)

  =2/5 5/14/5/14

  = 0.40

因此,如果天气=“晴天”,结果是play =

5. KNN

k最近邻算法使用整个数据集作为训练集,而不是将数据集分成训练集和测试集。

当新的数据实例需要结果时,KNN算法遍历整个数据集,以找到新实例的k个最近实例,或者与新记录最相似的k个实例,然后输出均值 对于分类问题的结果(对于回归问题)或模式(最常见的类别)。 k的值是用户指定的。

实例之间的相似度使用欧几里德距离和汉明距离等度量来计算。

6. Apriori

Apriori算法用于事务数据库挖掘频繁项目集,然后生成关联规则。它在市场篮子分析中被广泛使用,其中检查在数据库中经常发生的产品组合。一般来说,我们写出“如果一个人购买项目X,然后他购买项目Y的关联规则为:X - > Y.

例如:如果一个人购买牛奶和糖,那么他很可能会购买咖啡粉。这可以写成关联规则的形式:牛奶,糖 - >咖啡粉。关联规则是在超越支持和信任的门槛之后产生的。


图5:关联规则X→Y的支持度,置信度和提升的公式。

“支持”度量有助于修剪在频繁项目集生成期间要考虑的候选项目集的数量。这个支持措施是由Apriori原则指导的。 Apriori原则规定,如果一个项目集合频繁,那么它的所有子集也必须是频繁的。

7. K-means

K-means是一种迭代算法,将相似的数据分组为簇,计算k个簇的质心,并将一个数据点分配给其质心和数据点之间距离最小的簇。


Figure 6: Steps of the K-means algorithm.

步骤1k-means初始化:

a)选择k的值。在这里,让我们取k = 3

b)将每个数据点随机分配到3个群集中的任何一个。

c)为每个集群计算集群质心。红色,蓝色和绿色星星表示3个星团中的每一个的质心。

步骤2:将每个观察结果与群集相关联:

将每个点重新分配到最近的集群质心。这里,上面的5个点被分配到具有蓝色质心的簇。按照相同的步骤将点分配给包含红色和绿色质心的群集。

3步:重新计算质心:

计算新簇的质心。旧的质心由灰色星星表示,而新的质心是红色,绿色和蓝色星星。

4步:迭代,然后退出,如果不变。

重复步骤2-3,直到没有从一个群集切换到另一个群集。一旦连续两个步骤没有切换,退出k-means算法。

8. PCA

主成分分析(PCA)用于通过减少变量的数量来使数据易于探索和可视化。这是通过将数据中的最大方差捕获到一个称为“主要成分”的轴上的新的坐标系来完成的。每个组件是原始变量的线性组合,并且彼此正交。组件之间的正交性表明这些组件之间的相关性为零。

第一个主成分捕捉数据中最大变化的方向。第二个主要组件捕获数据中的剩余变量,但变量与第一个组件不相关。类似地,所有连续的主成分(PC3PC4等)在与前一个成分不相关的情况下捕获剩余的方差。


Figure 7: The 3 original variables (genes) are reduced to 2 new variables termed principal components (PCs).

VI、合奏学习技巧:

合奏意味着通过投票或平均将多个学习者(分类器)的结果结合起来,以改善结果。在分类过程中使用投票,在回归过程中使用平均。这个想法是,学习者的合奏比单独的学习者表现更好。

有三种类型的合成算法:套袋,提升和堆叠。我们不打算在这里覆盖“堆叠”。

9.随机森林装袋

随机森林(多个学习者)是对袋装决策树(单个学习者)的改进。

装袋:装袋的第一步是创建多个模型,使用Bootstrap Sampling方法创建数据集。在Bootstrap Sampling中,每个生成的训练集由来自原始数据集的随机子样本组成。这些训练集中的每一个与原始数据集大小相同,但有些记录会重复多次,有些记录根本不会出现。然后,整个原始数据集被用作测试集。因此,如果原始数据集的大小为N,那么每个生成的训练集的大小也是N,唯一记录的数量约为(2N / 3)。测试集的大小也是N.

装袋的第二步是在不同的生成的训练集上使用相同的算法创建多个模型。在这种情况下,让我们讨论随机森林。与决策树不同的是,每个节点被分割为最小化误差的最佳特征,在随机森林中,我们选择随机选择的特征来构建最佳分割。随机性的原因是:即使是装袋,当决策树选择一个最佳的特征来分裂,他们结束了相似的结构和相关的预测。但是,在分割一个随机的特征子集之后进行装袋意味着在子树的预测之间的相关性较小。

在每个分割点处要搜索的特征的数量被指定为随机森林算法的参数。

因此,在用随机森林装袋时,每棵树都使用记录的随机样本来构建,每个分裂是使用预测变量的随机样本构建的。

10.AdaBoost助力

a)套袋是一个平行的集合,因为每个模型都是独立建立的。另一方面,boosting是一个连续的集合,每个模型的建立都是基于纠正前一个模型的错误分类。

b)套袋大多涉及“简单投票”,每个分类器投票获得最终结果 - 一个由大多数平行模型确定的结果;提升包括“加权投票”,其中每个分类器投票获得由多数决定的最终结果,但是连续模型是通过为以前模型的错误分类实例分配更大的权重而建立的。

Adaboost代表Adaptive Boosting


9:决策树的Adaboost资源

在图9中,步骤1,2,3涉及一个称为决策残缺的弱学习者(一个1级决策树,仅基于1个输入特征的值进行预测;一个决策树,其根部立即连接到其树叶) 。构建弱学习者的过程一直持续到用户定义数量的弱学习者被构建或者直到训练时没有进一步的改进。步骤4结合了以前模型的3个决策树(在决策树中有3个分裂规则)。

步骤1:从1个决策树桩开始,对1个输入变量做出决定:

数据点的大小表明我们已经应用相同的权重将它们分类为一个圆或三角形。决策树桩在上半部分产生了一条水平线来分类这些点。我们可以看到有2个圆圈错误地预测为三角形。因此,我们将为这两个圈子分配更高的权重,并应用另一个决策树桩。

步骤2:移动到另一个决策树树桩,以决定另一个输入变量:

我们观察到,上一步的两个错误分类圈的大小大于其余点。现在,第二个决策树会试图正确预测这两个圆。

作为分配更高权重的结果,这2个圆圈已经被左边的垂直线正确地分类。但是现在这导致了对顶部3个圈子的错误分类。因此,我们将在这三个圈子顶部分配更高的权重,并应用另一个决策树桩。

步骤3:训练另一个决策树树桩来决定另一个输入变量。

来自上一步的3个错误分类圈大于其余的数据点。现在,已经生成了一条垂直线,用于分类圆和三角形。

第四步:结合决策树桩:

我们已经结合了以前3个模型中的分隔符,并观察到这个模型中的复杂规则与任何一个单独的弱学习者相比,正确地分类了数据点。

 

七、结论:

回顾一下,我们了解到:

5个监督学习技术 - 线性回归,Logistic回归,CART,朴素贝叶斯,KNN

3种无监督学习技术 - AprioriK-meansPCA

2个合奏技巧 - 随机森林装袋,XGBoost助推。


原作者:Reena Shaw, KDnuggets.

来源:kdnuggets

编译:FintechProbe