机器学习初学者必须知道的十大算法

简介: 还在为不知道学什么算法入门机器学习感到头疼?本文作者通过自身的学习向初学者介绍十大机器学习(ML)算法,并附有数字和实例以便于理解。

更多深度文章,请关注云计算频道:https://yq.aliyun.com/cloud


f388c48dc43ba99164196c43e2a01d9105f75264

哈佛商业评论称数据科学家是21世纪最性感的工作。所以,对于那些ML刚刚开始的人来说,这篇博客机器学习算法工程师需要知道的十大算法是非常有用的。

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

1.ML算法的类型

有三种ML算法:

1.监督学习:

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

Y = fX

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

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

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

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

人工智能领域的大牛吴恩达曾在他的公开课中提到,目前机器学习带来的经济价值全部来自监督学习。

2.无监督学习:

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

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

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

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

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

AprioriK-meansPCA是无监督学习的例子。

3.强化学习:

强化学习是一种机器学习算法,它允许代理根据当前状态决定最佳的下一个动作。

强化算法通常通过反复试验来学习最佳行为。它们通常用于机器人的训练,机器人可以通过在碰到障碍物后接收负面反馈来学习避免碰撞。近期的alphago zero就是采用的强化学习的方法,来完成实验的。

监督学习算法

 1.线性回归

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

62717adc3f54b274e32ed349ad7cb6a3916735e5

图一

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

1显示了数据集的绘制xy值。目标是拟合最接近大部分点的线。
2. Logistic
回归

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

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

1dc12efda673cb72afd331e2615b7df133eab449

图二

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

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

 3. CART

分类和回归树(CART)是决策树的一个实现方式。

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

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

4d78a39eb39e47e376645f278beb6c1cdd4df3e3

图三

4.朴素贝叶斯

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

Ph | d=Pd | h* Ph))/ Pd

·         Ph | d=后验概率。

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

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

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

1c036d9fd43119555d8aabdb5fd39a12cdcc8e57

图四

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

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

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个实例,然后对于分类问题的结果(对于回归问题)或模式输出均值。

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

无监督学习算法:

6. Apriori

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

4de39dbae0d5fe8b0a522519943ef71efe9aa845

例如:如果一个人购买牛奶和糖,那么他很可能会购买咖啡粉。这可以写成关联规则的形式:{牛奶,糖} - >咖啡粉。

7. K-means

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

d67949a7756ad7c3a63b091497e286f19ecf4796

步骤1k-means初始化:

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

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

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

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

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

3步:重新计算质心:

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

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

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

 8. PCA

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

c615bcb144fe5d84e1f16fb7c702d894986ebc1e

第一个主成分捕捉数据中最大变化的方向。第二个主要组件捕获数据中的剩余变量,但变量与第一个组件不相关。

9.随机森林装袋

随机森林是对袋装决策树(bagged decision trees)改进。

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

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

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

 10. Boosting with AdaBoost

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

Adaboost代表Adaptive Boosting

dfc0dacba30d323416f046c38bd960f98ac5cf07

图9

在图9中,步骤1,2,3涉及一个称为决策残缺的弱学习者(一个1级决策树,仅基于1个输入特征的值进行预测)。步骤4结合了以前模型的3个决策树(在决策树中有3个分裂规则)。

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

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

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

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

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

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

步骤4:合并决策树:

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

作者信息

Dr. Jason Brownlee 是一名机器学习从业者,学术研究人员,致力于帮助开发人员从入门到精通机器学习。

本文由北邮@爱可-爱生老师推荐,阿里云云栖组织翻译。

文章原标题《top-10-machine-learning-algorithms-beginners

作者:Reena Shaw 译者:虎说八道

文章为简译,更为详细的内容,请查看原文

相关文章
|
15天前
|
机器学习/深度学习 算法 TensorFlow
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
交通标志识别系统。本系统使用Python作为主要编程语言,在交通标志图像识别功能实现中,基于TensorFlow搭建卷积神经网络算法模型,通过对收集到的58种常见的交通标志图像作为数据集,进行迭代训练最后得到一个识别精度较高的模型文件,然后保存为本地的h5格式文件。再使用Django开发Web网页端操作界面,实现用户上传一张交通标志图片,识别其名称。
44 6
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
|
2月前
|
机器学习/深度学习 算法 数据挖掘
8个常见的机器学习算法的计算复杂度总结
8个常见的机器学习算法的计算复杂度总结
8个常见的机器学习算法的计算复杂度总结
|
16天前
|
机器学习/深度学习 存储 人工智能
文本情感识别分析系统Python+SVM分类算法+机器学习人工智能+计算机毕业设计
使用Python作为开发语言,基于文本数据集(一个积极的xls文本格式和一个消极的xls文本格式文件),使用Word2vec对文本进行处理。通过支持向量机SVM算法训练情绪分类模型。实现对文本消极情感和文本积极情感的识别。并基于Django框架开发网页平台实现对用户的可视化操作和数据存储。
20 0
文本情感识别分析系统Python+SVM分类算法+机器学习人工智能+计算机毕业设计
|
29天前
|
机器学习/深度学习 数据采集 算法
数据挖掘和机器学习算法
数据挖掘和机器学习算法
|
1月前
|
机器学习/深度学习 数据采集 存储
一文读懂蒙特卡洛算法:从概率模拟到机器学习模型优化的全方位解析
蒙特卡洛方法起源于1945年科学家斯坦尼斯劳·乌拉姆对纸牌游戏中概率问题的思考,与约翰·冯·诺依曼共同奠定了该方法的理论基础。该方法通过模拟大量随机场景来近似复杂问题的解,因命名灵感源自蒙特卡洛赌场。如今,蒙特卡洛方法广泛应用于机器学习领域,尤其在超参数调优、贝叶斯滤波等方面表现出色。通过随机采样超参数空间,蒙特卡洛方法能够高效地找到优质组合,适用于处理高维度、非线性问题。本文通过实例展示了蒙特卡洛方法在估算圆周率π和优化机器学习模型中的应用,并对比了其与网格搜索方法的性能。
165 1
|
2月前
|
机器学习/深度学习 算法 数据挖掘
机器学习必知必会10大算法
机器学习必知必会10大算法
|
2月前
|
机器学习/深度学习 算法 数据挖掘
【白话机器学习】算法理论+实战之决策树
【白话机器学习】算法理论+实战之决策树
|
2月前
|
机器学习/深度学习 存储 算法
图解最常用的 10 个机器学习算法!
图解最常用的 10 个机器学习算法!
|
2天前
|
传感器 算法 C语言
基于无线传感器网络的节点分簇算法matlab仿真
该程序对传感器网络进行分簇,考虑节点能量状态、拓扑位置及孤立节点等因素。相较于LEACH算法,本程序评估网络持续时间、节点死亡趋势及能量消耗。使用MATLAB 2022a版本运行,展示了节点能量管理优化及网络生命周期延长的效果。通过簇头管理和数据融合,实现了能量高效和网络可扩展性。
|
1月前
|
算法 BI Serverless
基于鱼群算法的散热片形状优化matlab仿真
本研究利用浴盆曲线模拟空隙外形,并通过鱼群算法(FSA)优化浴盆曲线参数,以获得最佳孔隙度值及对应的R值。FSA通过模拟鱼群的聚群、避障和觅食行为,实现高效全局搜索。具体步骤包括初始化鱼群、计算适应度值、更新位置及判断终止条件。最终确定散热片的最佳形状参数。仿真结果显示该方法能显著提高优化效率。相关代码使用MATLAB 2022a实现。
下一篇
无影云桌面