爱吧机器人网 » 技术 > 机器学习 > 正文

主流机器学习算法简介与其优缺点分析

机器学习算法的分类是棘手的,有几种合理的分类,他们可以分为生成/识别,参数/非参数,监督/无监督等。
 
例如,Scikit-Learn的文档页面通过学习机制对算法进行分组。这产生类别如:1,广义线性模型,2,支持向量机,3,最近邻居法,4,决策树,5,神经网络,等等…
 
但是,从我们的经验来看,这并不总是算法分组最为实用的方法。那是因为对于应用机器学习,你通常不会想,“今天我要训练一个支持向量机!”相反,你心里通常有一个最终目标,如利用它来预测结果或分类观察。
 
所以在机器学习中,有一种叫做“没有免费的午餐”的定理。简而言之,它的意思就是说没有任何一种算法可以完美地解决每个问题,这对于监督式学习(即预测性建模)尤其重要。
 
例如,你不能说神经网络总是比决策树好,反之亦然。有很多因素在起作用,比如数据集的大小和结构。因此,您应该为您的问题尝试许多不同的算法,同时使用数据的“测试集”来评估性能并选择优胜者。
 
当然,你尝试的算法必须适合你的问题,这就是选择正确的机器学习算法的重要性之所在。打个比方,如果你需要清理你的房子,你可以使用真空吸尘器,扫帚或拖把,但是你不会拿出一把铲子然后开始挖掘。
 
因此,我们想要介绍另一种分类算法的方法,即通过机器学习所负责的任务来分类。
 
机器学习的任务
 
1.回归
 
回归是一种用于建模和预测连续数值变量的监督学习任务。例如预测房地产价格,股价变动或学生考试分数。
 
回归任务的特征是具有数字目标变量的标记数据集。换句话说,对于每个可用于监督算法的观察结果,您都有一些“基于事实”的数值。

线性回归图
 
1.1。 (正则化)线性回归
 
线性回归是回归任务中最常用的算法之一。它最简单的形式是试图将一个直的超平面整合到你的数据集中(即当你只有两个变量的时候,你只能得到一条直线)。正如您可能猜到的那样,当数据集的变量之间存在线性关系时,它的效果是非常好的。
 
实际上,简单的线性回归经常被正则化的同类算法(LASSO,Ridge和Elastic-Net)所忽略。正则化是一种惩罚大系数的技术,以避免过度拟合,它应该调整其惩罚的力度。
 
优点:线性回归可以直观地理解和解释,并且可以正则化以避免过度拟合。另外,使用随机梯度下降的新数据可以很容易地更新线性模型。
 
缺点:当存在非线性关系时,线性回归表现不佳。它们本身并不具有足够的灵活性来捕捉更为复杂的模式,对于添加正确的交互作用项或者多项式来说可能会非常棘手和耗时。
 
实现:Python/ R
 
1.2。回归树(集成)
 
回归树(决策树的一种)是通过将数据集反复分割成单独的分支来实现分层化学习,从而最大化每个分割信息的增益效果。这种分支结构允许回归树自然地学习非线性关系。
 
随机森林(RF)和梯度增强树(GBM)等集成方法结合了许多单独树的特性。我们不会在这里介绍他们的基本机制,但是在实践中,随机森林通常表现地非常好,而梯度增强树则很难调整,但是后者往往会有更高的性能上限。
 
优点:回归树可以学习非线性关系,并且对异常值相当敏锐。在实践中,回归树也表现地非常出色,赢得了许多经典(即非深度学习)的机器学习比赛。
 
缺点:无约束的单个树很容易过拟合,因为它们可以保持分支直到它们记住了所有的训练数据。但是,这个问题可以通过使用集成的方式来缓解。
 
实现:随机森林 - Python / R,梯度增强树 - Python / R
 
1.3。深度学习
 
深度学习是指能学习极其复杂模式的多层神经网络。他们使用输入和输出之间的“隐藏层”来模拟其他算法难以学习的数据中介码。
 
他们有几个重要的机制,如卷积和丢弃,使他们能够有效地从高维数据中学习。然而,与其他算法相比,深度学习仍然需要更多的数据来训练,因为这些模型需要更多的参数来实现其更准确的推测。
 
优点:深度学习是在诸如计算机视觉和语音识别等领域内,目前可以被利用的最先进的方法。深度神经网络在图像,音频和文本数据上表现地非常出色,可以轻松地使用成批量的传播方法来更新数据。它的体系结构(即层的数量和结构)可以适应许多类型的问题,并且它们的隐藏层减少了对特征工程的需要。
 
缺点:深度学习算法不适合作为通用算法,因为它们需要大量的数据。事实上,对于传统的机器学习问题,它们的表现通常逊色于决策树。另外,它们需要密集型的计算训练,而且需要更多的专业知识来做调试(即设置架构和超参数)。
 
实现:Python/ R
 
1.4。特别提及:最近邻居法
 
最近邻居算法是“基于实例的”,这意味着它会保存每个训练观察的结果。然后,通过搜索最相似的训练观察值并汇集结果,来预测新的观测值。
 
这些算法是内存密集型的,对于高维度数据的表现不佳,并且需要有意义的距离函数来计算相似度。在实践中,训练正则化回归或决策树可能会更节省你的时间。
 
2.分类
 
分类是建模和预测分类变量的监督学习任务。例如预测员工的流失,垃圾邮件,财务欺诈或者学生信件等级。
 
如你所见,许多回归算法都有分类对应。这种算法适用于预测类(或类概率)而不是实数类。

正则化的逻辑回归
 
2.1。 (正则化的)逻辑回归
 
逻辑回归是线性回归的分类对应。它预测被映射到介于0和1之间的逻辑函数,这意味着预测可以被解释为类概率。
 
模型本身仍然是“线性的”,所以当你的类是线性可分的(即它们可以被一个单一的决策表面分开)时候,逻辑回归算法十分有效。 逻辑回归也可以通过具有可调惩罚强度的系数来实现正则化。
 
优点:数据的输出有一个很好的概率解释,算法可以正则化以避免过度拟合。 逻辑回归可以使用随机梯度下降的方法使得新数据的更新变得更为轻松。
 
缺点:当存在多个或非线性的决策边界时,逻辑回归往往表现不佳。它不够灵活,无法自然地捕捉到更复杂的关系。
 
实现:Python/ R
 
2.2。分类树(集成)
 
分类树是回归树的分类对应算法。它们俩被统称为“决策树”,或者被称为“分类和回归树(CART)”。
 
优点:与回归树一样,集成分类树在实践中的表现也很好。它们对于异常值的控制是可靠的和可扩展的,并且由于它们的层次结构,能够自然地对非线性决策边界进行建模。
 
缺点:不受约束的单个树容易过度拟合,但是这可以通过集成方法来缓解。
 
实现:随机森林 - Python / R,梯度增强树 - Python / R
 
2.3。深度学习
 
延续其一贯的趋势,深度学习也很容易适应分类问题。实际上,深度学习往往是分类中比较常用的方法,比如在图像分类中。
 
优点:在分类音频,文本和图像数据时,深度学习表现地非常出色。
 
缺点:与回归一样,深度神经网络需要大量的数据进行训练,所以它不被视为通用算法。
 
实现:Python的/ R
 
2.4。支持向量机
 
支持向量机(SVM)使用称为核心(kernels)的机制,它计算两个观察对象之间的距离。随后支持向量机算法找到一个决策边界,最大化不同类别的最近成员之间的距离。
 
例如,具有线性内核的支持向量机类似于逻辑回归。因此,在实践中,支持向量机的好处通常来自于使用非线性的内核来建模一种非线性的决策边界。
 
优点:支持向量机可以模拟非线性决策边界,并有许多内核可供选择。它们对于过度拟合的控制力也相当强大,特别是在高维空间。
 
缺点:然而,支持向量机是难以调整的内存密集型算法,而且很依赖于选择正确的核心,并且不能很好地扩展到较大的数据集里。目前在行业中,随机森林通常优于支持向量机。
 
实现:Python/ R
 
2.5。朴素贝叶斯
 
朴素贝叶斯(NB)是一个基于条件概率和计数的非常简单的算法。从本质上讲,你的模型实际上是一个概率表,通过你的训练数据得到更新。为了预测一个新的观察结果,您只需根据其“特征值”,在“概率表”中查找该类的概率。
 
它被称为“朴素的”,是因为它条件独立的核心假设(即所有输入特征是相互独立的),这在现实世界中很少成立。
 
优点:即使条件独立性假设很少成立,但朴素贝叶斯模型在实践中表现得非常出色,特别是它十分简单。而且很容易实现,并可以和数据集同步扩展。
 
缺点:由于其简单化的原因,朴素贝叶斯模型经常被经过适当训练的其他模型和之前已经列出的算法吊打。
 
实现:Python/ R
 
3.聚类
 
聚类是一种无监督的学习任务,用于基于数据集中的固有结构来发现自然的观测分组(即聚类)。例子包括客户细分,电子商务中的类似项目分组以及社交网络分析。
 
因为聚类是无监督的(即没有“正确答案”),所以通常使用可视化的数据来评估结果。如果有“正确的答案”(即你的训练集中有预标记的聚类),那么选择分类算法通常更合适。

聚类算法
 
3.1。K-Means算法
 
K-Means算法是一种通用算法,它根据点之间的几何距离(即坐标平面上的距离)进行聚类。这些集群围绕着质心分组,使它们成为球形,并具有相似的大小。
 
对于初学者来说,这是我们推荐的一种算法,因为它很简单,而且足够灵活,可以为大多数问题获得合理的结果。
 
优点:K-Means算法是最流行的聚类算法,因为如果您想预处理数据或者编译有用的功能,它是一种快速,简单和拥有令人惊讶的灵活性的一种算法。
 
缺点:用户必须指定簇的数目,这并不总是很容易的。另外,如果数据中真实的底层聚类不是球状的,那么K-Means算法将产生错误的聚类。
 
实现:Python/ R
 
3.2。近邻传播
 
近邻传播是一种相对较新的聚类技术,可以根据点之间的图距进行聚类。集群倾向于变得更小和具有不均匀的大小。
 
优点:用户不需要指定簇的数量(但是需要指定“样本偏好”和“阻尼”超参数)。
 
缺点:近邻传播的主要缺点是速度很慢,占用内存很大,难以扩展到较大的数据集。另外,它也需要假设真正的底层集群是球状的。
 
实现:Python/ R
 
3.3。分层/凝聚
 
分层聚类,又名聚集聚类,是基于相同思想的一套算法:(1)从它自己的聚类中的每个点开始。 (2)对于每个簇,根据一些标准将其与另一个簇合并。 (3)重复,直到只剩下一个群集,并留下一个簇的层次结构。
 
优点:分层聚类的主要优点是不会假设球体是球状的。另外,它可以很好地扩展到更大的数据集里。
 
缺点:就像K-Means算法一样,用户必须选择聚类的数量(即在算法完成之后要保留的层次级别)。
 
实现:Python/ R
 
3.4。 DBSCAN(Density-Based Spatial Clustering of Applications with Noise)
 
DBSCAN是一种基于密度的算法,可以为密集的点区域生成集群。还有一个最近的新发展被称为HDBSCAN,允许产生密度不同的集群。
 
优点:DBSCAN不假设集群为球状,其性能也是可扩展的。另外,它不需要将每个点都分配给一个簇,从而减少簇的噪声(这可能是一个弱点,取决于你的用的地方)。
 
缺点:用户必须调用超参数“epsilon”和“min_samples”,它们定义了簇的密度。 DBSCAN对这些超参数非常敏感。
 
实现:Python/ R


上一篇:Graphcore 研发出AI芯片让机器学习提速百倍
下一篇:机器学习集成算法:XGBoost模型构造
精选推荐
谷歌《Nature》发论文称实现量子霸权 18亿倍速碾压世界最强超算
谷歌《Nature》发论文称实现量子霸权 18亿倍速碾压世界最强超算

[2019-10-23]  谷歌坚称自己已经取得了量子霸权——这标志着计算研究领域的一个重要里程碑。谷歌首次发布声明是在今年9月,虽然遭到竞争对手的质疑,但就 ...

Waymo:人性和行为心理学才是无人驾驶最大的挑战
Waymo:人性和行为心理学才是无人驾驶最大的挑战

[2019-11-03]  自动驾驶汽车作为AI领域内最大的挑战之一,谷歌致力于其研发已有十余载,现在他们逐渐意识到,最困难的是如何让人们享受驾驶的乐趣。这是一 ...

人工智能准确预测患者一年内的死亡风险,原理却无法解释
人工智能准确预测患者一年内的死亡风险,原理却无法解释

[2019-11-13]  图片来自BURGER PHANIE SCIENCE PHOTO LIBRARY美国最新研究显示,人工智能通过查看心脏测试结果,以高达85%以上的准确率预测了一个人在一 ...

研究人员融合人类与AI的创造力 显著提高了深度学习的表现
研究人员融合人类与AI的创造力 显著提高了深度学习的表现

[2019-10-12]  由加拿大人工智能领域研究主席、滑铁卢大学系统设计工程教授Alexander Wong领导的一个团队开发了一种新型紧凑型神经网络家族,可以在智能 ...

机器人工程师具体都做什么?
机器人工程师具体都做什么?

[2017-12-08]  机器人工程师是幕后设计师,负责创建机器人和机器人系统,能够执行人类无法完成或不愿意完成的任务。 通过他们的创造,机器人工程师帮助工作更安全,更轻松,更高效,特别是......

深度神经网络揭示了大脑喜欢看什么
深度神经网络揭示了大脑喜欢看什么

[2019-11-06]  爱吧机器人网编者按:近日,《自然-神经科学》发表了一篇论文,研究人员创建了一种深度人工神经网络,能够准确预测生物大脑对视觉刺激所产 ...

美国普渡大学研发快动作软体机器人,灵感来自变色龙舌头捕食
美国普渡大学研发快动作软体机器人,灵感来自变色龙舌头捕食

[2019-10-31]  本文图片均来自:Ramses v Martinez 普渡大学变色龙、蝾螈和许多蟾蜍利用积蓄的弹性能量,向距离1 5倍体长的毫无防备的昆虫伸出粘糊糊的舌 ...

通过对抗性图像黑入大脑
通过对抗性图像黑入大脑

[2018-03-02]  在上面的图片中,左边是一张猫的照片。在右边,你能分辨出它是同一只猫的图片,还是一张看起来相似的狗的图片?这两张图片之间的区别在于, ...

本周栏目热点

关于应用机器学习作为搜索问题的入门简介

[2018-01-03]  机器学习的应用可以理解为一个搜索问题,即根据某个项目的已知信息和可获取的资源,找到从输入到输出的最好的映射。在本文你即将看到把应用机器学习当作搜索问题的概念...

[2017-03-02]   随着人工智能的不断发展,许多新的机器学习技术、架构和算法被提出,但这里有三个宏观趋势,将成为机器学习中,游戏规则的改变者。 机 ...

顶级AI会议NIPS压轴2017(附PPT、视频、代码大汇总)

[2017-12-19]  NIPS,全称神经信息处理系统大会(Conference and Workshop on Neural Information Processing Systems),是一个关于机器学习和计算神经科学的国际会议。该会议固定在每年的12月举行...

机器学习之——正则化

[2018-05-18]  最近在刷李航的《统计学习方法》这本书,在很多算法的损失函数里,都出现类似的描述:损失函数最小化原则一般就是用正则化的极大似然估计进 ...

机器学习算法可预测出乳腺癌治疗率(图)

[1970-01-01]    据外媒报道,患有同种疾病的不同病人在接受同一种治疗方案时,其获得的疗效也会存在不同,这就给医生留下了一个难题:他们怎样才能知道 ...