初学者的十大机器学习算法

本文翻译整理:

https://www.dataquest.io/blog/top-10-machine-learning-algorithms-for-beginners/

 

介绍

在哈佛商业评论文章中称 “数据科学家”为“21世纪最性感的工作” 后,ML算法的研究获得了巨大的推动。因此,对于ML领域的初学者,我们决定重新启动我们广受欢迎的Gold博客10算法机器学习工程师需要知道 - 尽管这篇文章针对初学者。

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

 

ML算法的类型

有三种ML算法:

监督学习:

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

Y = f(X)

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

 

1.分类:预测输出变量处于类别形式的给定样本的结果。例子包括男性和女性,病态和健康等标签。

2.回归:预测输出变量处于实际值形式的给定样本的结果。例子包括表示降雨量和人的身高的实值标签。

本博客中介绍的前5种算法 - 线性回归,Logistic回归,CART,朴素贝叶斯,KNN - 都是监督式学习的例子。

 

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

 

无监督学习:

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

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

1.关联:发现集合中项目共现的可能性。它广泛用于市场购物篮分析。例如:如果顾客购买面包,他有80%的可能购买鸡蛋。

2.集群:对样本进行分组,使得同一集群内的对象彼此更相似,而不是来自另一集群中的对象。

 

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

我们在这里介绍的算法6-8 - Apriori,K-means,PCA是无监督学习的例子。

 

强化学习:

强化学习是一种机器学习算法,它允许代理根据当前状态决定最佳下一步行动,通过学习可最大化奖励的行为。

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

 

监督学习算法

 

1.线性回归

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

 

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

 

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

图1显示了数据集的绘制x和y值。目标是拟合最接近大多数点的线。这将减少数据点的y值与该行之间的距离('错误')。

 

2. Logistic回归

线性回归预测是连续值(以cm为单位的降雨量),逻辑回归预测是应用转换函数后的离散值。

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

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

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

 

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

 

 

可以将逻辑回归方程P(x)= e ^(b0 + b1x)/(1 + e(b0 + b1x))转换为ln(p(x)/ 1-p(x))= b0 + b1x

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

3. CART

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

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

图3:决策树的部分

 

4.朴素贝叶斯

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

P(h | d)=(P(d | h)P(h))/ P(d)

  • (h | d)=后验概率。假设h为真,给定数据d,其中P(h | d)= P(d1 | h)P(d2 | h)... P(dn | h)P(d)

  • P(d | h)=可能性。给出假设h为真的数据d的概率。

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

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

这个算法被称为'天真',因为它假设所有的变量都是彼此独立的,这在现实世界的例子中是一个天真的假设。

 

图4:使用朴素贝叶斯使用变量'天气'预测'游戏'的状态。

 

以图4为例,如果天气='晴天',结果如何?

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

P(晴天)=(P(阳光|是)* P(是))/ P(晴天)=(3/9 * 9/14)/(5/14)= 0.60

P(晴天)=(P(晴天)* P(晴天))/ P(晴天)=(2/5 * 5/14)/(5/14)= 0.40

因此,如果天气='晴天',结果是play ='yes'。

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个簇的质心,并将数据点分配给质心和数据点之间距离最小的簇。

图6:K-means算法的步骤

 

步骤1:k-means初始化:

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

b)将每个数据点随机分配给3个聚类中的任何一个。

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

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

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

第3步:重新计算质心:

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

第4步:迭代,然后退出,如果不更改。

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

 

8. PCA

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

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

 

图7:将3个原始变量(基因)简化为2个称为主成分的新变量。

 

集成学习技巧:

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

有三种类型的合成算法:Bagging,Boosting和Stacking。

9.Bagging与随机森林

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

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

第二步是在不同的生成的训练集上使用相同的算法创建多个模型。在这种情况下,让我们讨论随机森林。与决策树不同,每个节点在最小化错误的最佳特征上分割,在随机森林中,我们选择随机选择的特征来构建最佳分割。

10.使用AdaBoost进行提升

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

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

图9:决策树的Adaboost

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

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

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

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

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

作为分配较高权重的结果,这两个圆圈按照左侧的垂直线正确分类。但是现在这导致了对顶部3个圈子的错误分类。因此,我们会给顶部的这三个圈子分配更高的权重,并应用另一个决策树桩。

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

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

第4步:合并决策树桩:

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

结论:

回顾一下,我们了解到:

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

  • 3种无监督学习技术 - Apriori,K-means,PCA。

  • 2个合奏技巧 - 随机森林装袋,用XGBoost提升。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值