AAA教育发布:0基础初学者如何入门机器学习算法与大数据分析
“大数据分析”被评为“21 世纪最热门的工作”之后,人们对机器学习的兴趣迅速增长。然而,倘若你刚开始学习机器学习,可能会觉得难以着手。正因如此,AAA 教育发布了备受欢迎的针对初学者的优秀机器学习算法的文章。这篇文章是为 0 基础初学者准备的。你若在数据科学和机器学习方面有一些经验,可能会对做机器学习的更深入教程(使用-learn)或我们的机器学习课程更感兴趣,该课程从这里开始。倘若你还不清楚“数据科学”与“机器学习”的区别,那么本文会给你一个很好的解释:机器学习和数据科学,两者有何不同?
机器学习算法是能够从数据里学习并且凭借经验得以改进,无需人工进行干预的程序。其学习任务包含学习把输入映射为输出的功能,还包含学习未标记数据中隐藏的结构;也有“基于实例的学习”,这种学习方式是通过把新实例(行)与存储在内存中的训练数据里的实例进行对比,从而为新实例生成类标签。“基于实例的学习”不会从特定实例里创建出抽象。
机器学习算法的类型
机器学习(ML)算法有3种类型:
监督学习算法:
监督学习借助标记的训练数据去学习一种映射函数,这种函数能将输入变量(X)转化为输出变量(Y)。也就是说,它要在以下这个等式里求解 f :
Y = f(X)
当给定新的输入时,这使我们能够准确地生成输出。
我们将讨论两种类型的监督学习:分类和回归。
分类被用来预测给定样品的结果,若输出变量呈类的形式。分类模型或许会审视输入数据,并尝试去预测诸如“病”或者“健康”之类的标签。
当输出变量呈现实数值形式时,会运用回归来对给定样本的结果进行预测。比如,回归模型能够处理输入数据,从而预测出降雨量以及人的身高之类的情况。
我们在本博客中介绍的前 5 种算法分别是线性回归、逻辑回归、CART、朴素贝叶斯和 K 最近邻(KNN),它们是监督学习的示例。
合奏属于另一种监督学习。这表明要把多个自身较为弱小的机器学习模型的预测进行组合,从而对新的样本产生更精准的预测。本文的算法 9 和 10(利用随机森林进行装袋,运用某种方式进行增强)是集成技术的实例。
无监督学习算法:
当只有输入变量(X)而没有相应的输出变量时,会使用无监督学习模型。他们利用未标记的训练数据来对数据的基础结构进行建模。
我们将讨论三种无监督学习:
关联的作用是发现集合中项目同时出现的可能性。这种关联在市场分析中被广泛应用。比如,能够运用关联模型去发现,倘若客户购买了面包,那么他/她有 80%的可能性也会购买鸡蛋。
聚类的作用是对样本进行分组。这样做可以让同一聚类里的对象,它们彼此之间的相似性比较大。同时,同一聚类中的对象与另一个聚类中的对象相比,其相似性就会较小。
降维的作用是减少数据集的变量数量,并且要保证依然能传达重要信息。降维可以通过特征提取方法以及特征选择方法来实现。“特征选择”会挑选出原始变量的一部分。特征提取会进行从高维空间到低维空间的数据转换。例如:PCA 算法属于一种特征提取方法。
我们在此介绍的算法有 6、8 以及 K-means 和 PCA。这些算法属于无监督学习的范畴。
强化学习:
强化学习属于机器学习算法的范畴。它具备这样的特点,即能够让代理依据其当前所处的状态,去学习那些能使奖励达到最大化的行为,进而决定最为适宜的下一步操作。
加固算法通常依靠反复试验去学习最佳动作。比如,存在一个视频游戏,在这个游戏中,玩家得在特定时间移动到特定地点才能赚取积分。玩这个游戏的强化算法起初会从随机移动开始,然而随着时间的推移,经过多次试验后,它就能学会在何时何地移动游戏中的角色,以实现总点数的最大化。
量化机器学习算法的流行度
这些十种算法的来源是什么?任何这样的列表本质上都带有主观性。像这样的研究已经对 10 种最流行的数据挖掘算法进行了量化,但它们依然依赖于调查反馈的主观回应,通常是来自高级学术从业人员的。在上述研究中,受访者获得了 ACM KDD 创新奖和 IEEE ICDM 研究贡献奖;他们是 KDD '06、ICDM '06 和 SDM '06 的计划委员会成员;并且还是 ICDM '06 的 145 位与会者。
这篇文章所列出的前 10 个算法是基于机器学习初学者的情况而选定的。在孟买大学计算机工程学士学位期间,我从“数据仓库和挖掘”(DWM)课程中学到了这些算法,它们是主要的算法。我添加了最后两种算法(集成方法),主要是因为它们时常被用于赢得比赛。
没有更多的基础知识,面向初学者的十大机器学习算法:
1.线性回归
在机器学习领域,存在一组输入变量(x),这组输入变量用于确定输出变量(y)。输入变量与输出变量之间存在着一定的关系。而机器学习的目标就是对这种关系进行量化。
图1:线性回归以y = a + bx的形式表示为一条线
在线性回归里,输入变量(x)与输出变量(y)之间的关系被表示为 y = a + bx 这种形式的方程。所以,线性回归的目标就是找出系数 a 以及系数 b 的值。这里,a 是截距,b 是直线的斜率。
图 1 展示了数据集所绘制出的 x 值和 y 值。其目标是找到一条最接近大多数数据点的线。这样做能够减小数据点的 y 值与该线之间的距离(即“误差”)。
2. 回归
线性回归预测的是连续值,比如以厘米为单位的降雨。逻辑回归预测的是经过应用转换函数后的离散值,像学生是否通过或者未通过。
回归到最适合二进制分类的数据集,即 y = 0 或 1 的数据集,其中 1 代表默认类。比如,在预测事件是否会发生时,仅有两种可能情况:事件发生(我们用 1 来表示)或者事件不发生(用 0 表示)。所以,倘若我们要预测患者是否生病,就会用 1 数据集中的值来标记患病的患者。
逻辑回归依据所使用的转换函数来命名,这个函数被称作逻辑函数,其表达式为 h(x)= 1 /(1 + ex)。并且,此函数形成了 S 形曲线。
逻辑回归中,输出是以默认类别的概率形式呈现的。而线性回归是直接产生输出,与逻辑回归不同。因为这是概率,所以输出在 0 到 1 的范围内。例如,若要预测患者是否生病,已知生病的患者表示为 1。那么,若算法给患者分配 0.98 的得分,就认为该患者很可能生病了。
使用逻辑函数 h(x)=1/(1+e^(-x)),对 x 值进行对数转换,以此来生成此输出(y 值)。接着应用阈值,强制将此概率转换为二进制分类。
https://img1.baidu.com/it/u=2029048038,1970930878&fm=253&fmt=JPEG&app=138&f=JPEG?w=500&h=655
图 2 表明逻辑回归用于确定肿瘤是恶性还是良性。若概率 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)是决策树的一种实现。
分类树和回归树的非终端节点包括根节点与内部节点。而终端节点就是叶节点。每一个非终端节点都对应着一个输入变量(x)以及该变量的分割点。叶节点则表示输出变量(y)。此模型进行预测的方式是:依次遍历树的拆分过程,直至到达叶节点,然后输出在叶节点处的那个值。
下面图 3 中的决策树依据一个人的年龄以及婚姻状况,对其是否会购买跑车或小型货车作出了分类。若此人的年龄超过 30 岁,并且处于未婚状态,那么我们将按照以下步骤来进行操作:首先判断“是否超过 30 岁?”,如果答案是“是”,接着再判断“是否已婚?”,如果答案是“不行”,那么模型就会输出一辆跑车。
图3:决策树的各个部分
4.朴素贝叶斯
我们使用贝叶斯定理来计算一个事件已经发生的可能性。在已知我们的先验知识(d)的前提下,若要计算假设(h)为真的概率,就会用到贝叶斯定理,其形式如下:
P(h | d)=(P(d | h)P(h))/ P(d)
哪里:
给定数据 d 时,假设 h 的概率为真的后验概率为 P(h | d),且 P(h | d)等于 P(d1 | h)P(d2 | h)…P(dn | h)P(d)
2)P(d | h)=似然。给定假设h为真,数据d的概率。
3)P(h)=班级先验概率。假设h为真的概率(与数据无关)
4)P(d)=预测器先验概率。数据的概率(与假设无关)
该算法被称为“朴素”的原因是它假设所有变量都相互独立,而在实际示例中这是一种朴素的假设。
图4:使用天真贝叶斯通过变量“天气”预测“比赛”的状态
以图 4 为例,要是天气是“sunny”,那么结果会是怎样呢?
给定变量天气为“晴天”,若要确定结果游戏是“是”还是“否”,需计算 P(是|晴天)以及 P(否|晴天),然后依据较高的概率来选择结果。
P(yes | sunny)等于(P(sunny | yes)乘以 P(yes))除以 P(sunny),即(3/9 乘以 9/14)除以 5/14,结果为 0.60
P(no 给定 sunny)等于(P(sunny 给定 no)乘以 P(no))除以 P(sunny),即(2/5 乘以 5/14)除以 5/14,结果为 0.40
因此,如果天气=“晴天”,则结果为游戏=“是”。
5. KNN
K 最近邻居算法把整个数据集当作训练集,并非将数据集划分成训练集和测试集。
当新数据实例需要结果时,KNN 算法会遍历整个数据集,去找到新实例的 k 个最近实例,也就是与新记录最相似的 k 个实例。接着,它会输出均值结果(用于回归问题)或者模式(最常见的分类)。而 k 的值是由用户指定的。
使用汉明距离这类度量来计算实例之间的相似度。
无监督学习算法
6.先验
事务数据库会运用算法去挖掘频繁的项目集,接着生成关联规则。它在市场购物篮分析中被广泛应用,在这种分析中能够检查数据库里经常一同出现的产品组合。一般情况下,我们把关联规则写成“若某人购买了商品 X,那么他购买了商品 Y”,即:X->Y。
如果某人购买了牛奶以及糖,那么她或许会购买咖啡粉。此情况可以以关联规则的形式表述为:{牛奶,糖}意味着咖啡粉。当超过支持度和信心度的阈值后,就会生成关联规则。
图5:关联规则X-> Y的支持度,置信度和提升度的公式
支持度量有助于降低在频繁生成项目集时需考虑的候选项目集的数量。该支持举措遵循一定原则,此原则表明,倘若某个项目集较为频繁,那么它的所有子集也必定较为频繁。
7. K-均值
K-means 是一种迭代算法,它能将相似数据分组为聚类。这种算法会计算 k 个聚类的质心,并且会为质心与数据点之间距离最小的聚类分配一个数据点。
图6:K-means算法的步骤
运作方式如下:
https://img2.baidu.com/it/u=4118167499,628146429&fm=253&fmt=JPEG&app=138&f=JPEG?w=800&h=1067
我们先选定 k 的值。在此,我们假设 k = 3。接着,把每个数据点随意分配给 3 个群集中的某一个。算出每个群集的群集质心。红色的星星代表一个星团的质心,蓝色的星星代表另一个星团的质心,绿色的星星代表第三个星团的质心。
接下来,把每个点重新分配给离它最近的聚类质心。在上面的图里,高 5 点被分配给了有着蓝色质心的那个聚类。按照相同的步骤,把点分配给包含红色质心的聚类以及包含绿色质心的聚类。
首先计算新群集的质心。旧质心呈现为灰色的星星,而新质心分别是红色的星星、绿色的星星和蓝色的星星。
首先,重复步骤 2 到 3 。然后持续进行这个操作,直到不存在点从一个群集切换到另一个群集的情况。当连续两个步骤都没有发生切换时,就可以退出 K-means 算法。
8. PCA
主成分分析(PCA)的作用是减少变量数量,让数据便于浏览和可视化。它是通过把数据中的最大方差捕捉到一个新的坐标系中,这个坐标系具有称为“主要成分”的轴来实现的。
每个分量都是由原始变量进行线性组合而成的,而且这些分量之间是相互正交的。分量之间的这种正交性表明,这些分量之间的相关性是为零的。
第一个主成分会捕获数据中可变性最大的那个方向。第二个主成分能捕获数据里的剩余方差,并且这些变量与第一个成分是不相关的。同样地,所有连续的主成分(比如 PC3、PC4 等)会捕获剩余的差异,同时它们与前一个成分也是不相关的。
图 7 表明,把 3 个原始变量(也就是基因)进行简化处理后,得到了 2 个新变量,这 2 个新变量被称作主成分(PC)。
集合学习技巧:
汇总就是把多个学习者(分类器)的结果通过投票或取平均值的方式组合起来,目的是提升结果。在分类的时候采用投票的方式,在回归的时候采用平均的方式。其理念是全体学习者的表现要比单个学习者好。
有 3 种组合算法,分别是装袋、增强和堆叠。我们不会在这儿讨论“堆叠”,不过倘若你想要对它进行详细的阐释,那么这是可靠的介绍。
9.随机森林套袋
套袋的第一步是利用某种方法创建的数据集来创建多个模型。在抽样过程中,每一个生成的训练集都是由原始数据集中的随机子样本所构成的。
每个训练集都和原始数据集一样大。有些记录在训练集中会重复多次,而有些记录在训练集中根本不会出现。接着,把整个原始数据集当作测试集。所以,若原始数据集大小是 N,那么每个生成的训练集大小也是 N,其中唯一记录的数量大概是(2N / 3),测试集的大小同样是 N。
套袋的第二步是在不同生成的训练集上使用相同算法。这样可以创建多个模型。
这里是随机森林开始起作用的地方。决策树是每个节点在最大特征上进行分割来最大程度减少错误,而在随机森林中,是通过随机选择特征来构建最佳分裂。之所以有随机性,是因为即便进行套袋,当决策树选择最佳分割特征时,它们最终还是会有相似的结构和相关的预测。但是,对特征进行随机子集的分割。这样分割后的装袋,意味着子树的预测之间相关性较小。
在每个分割点需要搜索的特征数量被规定为“随机森林”算法的一个参数。
在使用“随机森林”进行装袋时,每棵树是用记录的随机样本构建的。并且,每个拆分是用随机变量的预测变量构建的。
10.使用提升
代表自适应增强。套袋是一个并行的集合,其原因是每个模型都是独立构建的。而另一方面,是一个顺序集合,在这个集合中,每个模型都是依据纠正先前模型的错误分类来构建的。
套袋主要涉及“简单投票”,每个分类器进行投票从而获得最终结果,这个结果是由大多数并行模型来确定的;增强涉及“加权投票”,每个分类器投票以得到由多数决定的最终结果,而顺序模型是通过给先前模型的错误分类实例分配更大权重来构建的。
图8:决策树的
在图 8 里,步骤 1 涉及一个被称作决策树的弱学习者,这个弱学习者是一个仅依据 1 个输入要素的值来进行预测的 1 层决策树,且其根直接连接到它的叶子;步骤 2 也涉及这样的决策树;步骤 3 同样涉及这样的决策树。
构造弱学习者的过程会一直持续,直到构造出用户定义数量的弱学习者,或者在训练期间没有进一步的改进。步骤 4 把先前模型的 3 个决策树桩进行了合并,这样在决策树中就有了 3 个拆分规则。
首先,从一个决策树桩开始,对一个输入变量进行决策。
数据点的大小显示,我们通过应用相等的权重把它们分类为圆形或三角形。决策树桩在上半部分生成了一条水平线来对这些点进行分类。我们能看到有两个圆被错误地预测成了三角形。所以,我们要给这两个圆分配更高的权重,并应用另一个决策树桩。
其次,转到另一个决策树树桩,对另一个输入变量进行决策。
我们观察到上一步中存在两个错误分类的圆圈,这两个圆圈的大小比其余的点要大。现在,第二个决策树桩将会去尝试对这两个圆进行正确的预测。
分配了较高的权重后,这两个圆依据左侧的垂直线被正确地分类了。然而,这却致使对顶部三个圆圈的分类出现了错误。所以,我们要给顶部的这三个圆圈分配更高的权重,并且运用另一个决策树桩。
第三,训练另一个决策树树桩,以对另一个输入变量进行决策。
上一步里有三个错误分类的圆圈,它们比其余的数据点要大。现在,已经生成了右侧的垂直线,目的是对圆形和三角形进行分类。
第四,结合决策树桩。
我们将先前 3 个模型的分隔符进行了结合。我们观察到,与任何单个弱学习者相比,该模型的复杂规则能够正确地对数据点进行分类。
回顾一下,我们介绍了一些最重要的数据科学机器学习算法:
5 种监督学习技术分别是线性回归,它是一种常用的监督学习方法;逻辑回归,主要用于处理分类问题;CART,即分类与回归树;朴素贝叶斯,基于贝叶斯定理的分类算法;KNN,最近邻算法。
b)3种无监督学习技术-,K-means,PCA。
c)2种合奏技术-用随机森林装袋,用增强。
页:
[1]