快速选择合适的机器学习算法

简介: 机器学习初学者可以通过本文了解如何快速找到合适的机器学习算法

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


本文主要适用于初学者到中级数据科学家或分析师,他们有兴趣识别和应用机器学习算法来解决他们感兴趣的问题。

一个初学者面临各种机器学习算法的典型问题是“我应该使用哪种算法?”问题的答案取决于许多因素,包括:

  • 数据的大小、质量和性质。
  • 可用计算时间。
  • 任务的紧迫性。
  • 你想用数据做什么。

即使是经验丰富的数据科学家也不能在尝试不同的算法之前,判断哪种算法会最好。 我们并不是倡导一个一步到位的方法,但是我们希望首先根据一些明确的因素来提供一些尝试哪些算法的指导。

机器学习算法速查表

8cd0e819adc727d3cd7bd02725ca348eb7f17e5b

机器学习算法速查表帮助你从各种机器学习算法中选择,以找到适合你的具体问题的算法。 本文将引导你完成如何使用速查表的过程。

由于该速查表是专为初学者数据科学家和分析师设计的,所以在讨论算法时,我们将作出一些简化的假设。

这里推荐的算法是来自几个数据科学家和机器学习专家和开发人员的编译反馈和提示。有几个问题,我们还没有达成协议,对于这些问题,我们试图突出共性及调和差异。

稍后将会添加其他算法,因为我们的库增长包含一套更完整的可用方法。

如何使用速查表

将图表上的路径和算法标签读为“如果 <路径标签> 则使用<算法>”。 例如:

  • 如果要进行降维,则使用主成分分析
  • 如果需要快速的数预测,请使用决策树或逻辑回归。
  • 如果需要分层结果,请使用层次聚类。

有时多个分支适用,其他时候他们都不是绝配。 重要的是要记住,这些路径旨在作为有经验的建议,因此有些建议并不准确。我谈到的几位数据科学家说,找到最好算法的唯一方法就是尝试所有的算法。

机器学习算法的类型

本节提供最受欢迎的机器学习类型的概述。 如果熟悉这些类,并希望继续讨论特定的算法,则可以跳过本节并转到下面的何时使用特定算法

监督学习

监督学习算法基于一组示例进行预测。例如可以使用历史销售来估计未来价格。通过监督学习,有一个输入变量,由标记的训练数据和期望的输出变量组成。使用算法分析训练数据,来得到将输入映射到输出的函数。这个推断函数通过从训练数据推广来预测未知情况下的结果来映射新的未知示例。

  • 分类:当数据用于预测分类变量时,监督学习也称为分类。 当分配标签或指示符时,狗或猫分配给图像就是这种情况。 当只有两个标签时,这被称为二进制分类。 当有两类以上时,这些问题被称为多类分类。
  • 回归:当预测连续值时,问题变成一个回归问题。
  • 预测:这是基于过去和现在的数据来预测未来的过程。这是最常用的分析趋势。一个常见的例子可能是根据本年和前几年的销售额估计下一年的销售额。

半监督学习

监督学习的挑战是标注数据可能是昂贵和耗时的。 如果标签有限,可以使用未标记的示例来增强监督学习。 因为在这种情况下机器没有被完全监督,所以我们说机器是半监督的。 使用半监督学习,你可以使用少量标签数据的未标记示例来提高学习准确性。

监督学习

执行监督学习时,机器将呈现完全未标记的数据。 被要求发现基础数据的固有模式,如聚类结构,低维流形或稀疏树和图。

  • 聚类:分组一组数据示例,使一个组(或一个集群)中的示例与其他组中的示例更相似(根据某些标准)。 这通常用于将整个数据集分成几组。 可以在每个组中进行分析,以帮助用户找到固有模式。
  • 降维:减少考虑的变量数量。 在许多应用中,原始数据具有非常高的维度特征,并且一些特征是冗余的或与任务无关的。 降低维度有助于找到真实的,潜在的关系。

增强学习

增强学习根据环境的反馈分析和优化agent行为。机器尝试不同的场景来发现哪些行为会产生最大的回报,而不是被告知要采取哪些行动。试误与延迟奖励区别增强学习与其他技术。

选择算法时的注意事项

选择算法时,请务必考虑这些方面:准确度,训练时间和易用性。 许多用户将准确度放在第一位,而初学者则倾向于关注他们最了解的算法。

提供一个数据集时,首先要考虑的是如何获得结果,无论这些结果如何。 初学者倾向于选择易于实现的算法,并可以快速获得结果。 这样做很好,因为这只是过程的第一步。 获得一些结果并熟悉数据后,可以花费更多时间使用更复杂的算法来加强对数据的理解,从而进一步改进结果。

即使在这个阶段,最好的算法可能不是实现最高报告精度的方法,因为算法通常需要仔细调整和广泛的训练才能获得最佳的可实现性能。

何时使用特定的算法

更仔细地查看各个算法可以帮助了解它们提供的内容以及如何使用它们。 这些描述提供了更多的细节,并提供了什么时候使用特定算法,与速查表对准

线性回归和逻辑回归

2368207df9f66e6bebae7bec9af6c9d77a298c7a
0d0925e6f343fe2b85e1d401702cfdae540afea5



线性回归是对连续因变量y与一个或多个预测变量X之间的关系进行建模的方法.YX之间的关系可以线性建模为4e18a198a7d6f5e7f7a7908a0a6acf4fc6399e89。根据训练样本9b5d4693352cb9c7488b7d98660d0aad931c200d,可以学习参数向量β。

如果因变量不是连续的是分类的,则可以使用logit链接函数将线性回归转换为逻辑回归。 逻辑回归是一种简单,快速而强大的分类算法。 这里我们讨论二进制的情况,其中因变量y只取二进制值0c778e6df6e6ecbdc75683900a6707f98ac888ed它可以容易地扩展到多类分类问题)。

在逻辑回归中,我们使用不同的假设类来尝试预测给定示例属于“1”类的概率,而不是它属于“-1”类的概率。 具体来说,我们将尝试学习以下形式的函数:7ef6dc857c4130af7e7593a9f3dfbaf86268ad74edb689aa2dcd3440d76a84ec82a730298010144e这里467ffff444e4b3b66029eb2adefbc85d9ce1212asigmoid函数。给定训练样例535b5d837f9156eddfd04feed8bfdafca45a69f3,可以通过使给定数据集β的对数似然度最大化来得知参数向量β。

9d8ae980ab5d38322e973d31c836e0019e43fa24

9e20d3dfe9c61fe8f8925ffd0122aac75dbbdd52

线性SVM和核SVM

核机制用于将非线性可分离函数映射为更高维度的线性可分离函数。 支持向量机(SVM)训练算法找到由超平面的法向量w和偏差b表示的分类器。 这个超平面(边界)将不同的类分隔开尽可能大的边距。 该问题可以转化为约束优化问题:

84bb2e0d4c58ddf6b076cd8456470c393d7e9c53

支持向量机(SVM)训练算法找到由超平面的法向量w和偏差b表示的分类器。 这个超平面(边界)将不同的类分隔开尽可能大的边距。 该问题可以转化为约束优化问题:

cf6f2234a428f8ffda012ffd93dd49cde2ecca88

当类不可线性分离时,可以使用核机制将非线性可分离空间映射到更高维度的线性可分离空间。

当大多数因变量是数字时,逻辑回归和SVM应该是分类的第一个尝试。 这些机型易于实现,其参数易调,性能也相当不错。 所以这些模式适合初学者。

树和集成树

87a92df4a53445b387f066981975aa863285a2ff

决策树、随机森林和梯度提升都是基于决策树的算法。决策树有许多变种,但它们都做同样的事情--将特征空间细分为具有相同标签的区域。决策树易于理解和实施。 然而,当我们剪枝并深度运行树时往往过度拟合数据。随机森林和梯度提升是使用树算法实现良好准确性以及克服过拟合问题的两种流行方式。

神经网络和深度学习

049396d28d9afccb929cb16c13af4ed69ab14657

20世纪80年代中期,由于并行和分布式处理能力,神经网络蓬勃发展。 但是,这一领域的研究受到广泛用于优化神经网络参数的反向传播训练算法的无效性的阻碍。 支持向量机(SVM)等简单模型,可以通过解决凸优化问题轻松训练,逐渐取代机器学习中的神经网络。

近年来,新的和改进的训练技术,如非监督的预训练和逐层贪婪训练,导致对神经网络兴趣的兴起。 越来越强大的计算能力,如图形处理单元(GPU)和大规模并行处理(MPP),也激发了神经网络的复兴。神经网络复兴的研究引起了成千上万层模型的发明。

换句话说,浅层神经网络已经演变成深度学习神经网络。 深层神经网络对于监督学习已经非常成功。 当用于语言和图像识别时,深层次的学习表现与甚至比人类更好。 适用于非监督的学习任务,如特征提取,深度学习还从原始图像或语音中提取少量人为干预的特征。

4c3655ee479296a718d508781d039f3a8806281d

神经网络由三部分组成:输入层,隐层和输出层。 训练样本定义了输入和输出层。 当输出层是分类变量时,神经网络是解决分类问题的一种方式。 当输出层是连续变量时,网络可以用来做回归。 当输出层与输入层相同时,可以使用网络来提取内在特征。 隐藏层的数量定义了模型的复杂性和建模能力。

K-means/ K-modesGMM(高斯混合模型)聚类

663c4b51f789dee2bee96a2e099080caf1182ae3
5f7a0639c4fa2925f1037f644e96ad5fc8c570af

K-means/ K-modes,GMM聚类旨在将n个观察值分为k个集群。 K-means定义硬分配:样本将是且仅与一个集群相关联。 然而,GMM为每个样本定义一个软分配。 每个样本具有与每个集群相关联的概率。 当给定集群k的数量时,两种算法都是简单且足够快的聚类。

DBSCAN

6f2d45485749de7912c1b06742382bc07b495e7f

当聚类数k没有给出时,可以通过密度扩散连接样本来使用DBSCAN(基于密度的空间聚类)。

分层聚类

dc049bb829b807507eaced6c57d76eac9194e186

可以使用树结构(树形图)来可视化分层分区。 它不需要集群的数量作为输入,并且可以使用不同的K来以不同的粒度级(即,可以细化/粗化的集群)来查看分区。

PCA, SVD LDA

我们通常不想将大量的特征直接馈送到机器学习算法中,因为一些特征可能是不相关的,或者“固有的”维度可能小于特征的数量。 主成分分析(PCA),奇异值分解(SVD)和潜在Dirichlet分配(LDA)均可用于降维。

PCA是一种非监督的聚类方法,将原始数据空间映射到较低维数空间,同时保留尽可能多的信息。 PCA基本上找到一个最保留数据方差的子空间,其中子空间由数据协方差矩阵的主要特征向量定义。

SVD与PCA相关,意思是中心数据矩阵(特征与样本)的SVD提供了定义与PCA相同的子空间的主要左奇异向量。 然而,SVD是一种更通用的技术,因为它也可以做PCA可能不做的事情。 例如,用户对电影矩阵的SVD能够提取可以在推荐系统中使用的用户资料和电影简介。 此外,SVD也被广泛用作自然语言处理(NLP)中称为潜在语义分析的主题建模工具。

NLP中的相关技术是潜在的Dirichlet分配(LDA)。 LDA是概率主题模型,它以与高斯混合模型(GMM)类似的方式将文档分解为主题,将连续数据分解为高斯密度。 与GMM不同,LDA模型离散数据,并且限制了主题根据Dirichlet分布先验分布。

结论

这是易于遵循的工作流程。在此得出的当试图解决一个新问题时的结论:

  • 定义问题。你想解决什么问题?
  • 从简单的开始。熟悉数据和基线结果。
  • 然后尝试更复杂的东西。

SAS视觉数据挖掘和机器学习为初学者学习机器学习和应用机器学习方法提供了一个良好的平台。


309439dee90dd521f0f0ef23096ed4787c0694a3

作者:Hui Li

Dr. Hui Li是SAS数据科学技术的首席科学家。 她目前的工作重点是SAS Viya的深度学习,认知计算和SAS推荐系统。 她获得杜克大学电气和计算机工程博士学位和硕士学位。 在加入SAS之前,她曾在杜克大学任研究科学家,并在Signal Innovation Group,Inc.担任研究工程师。 她的研究兴趣包括机器学习,大型异构数据,协同过滤建议,贝叶斯统计建模和增强学习。


以上为译文

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

文章原标题《Which machine learning algorithm should I use?,作者:Hui Li,译者:tiamo_zn,审校:海棠。

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

相关文章
|
16天前
|
机器学习/深度学习 人工智能 算法
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
手写数字识别系统,使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对数据集进行训练,最后得到一个识别精度较高的模型。并基于Flask框架,开发网页端操作平台,实现用户上传一张图片识别其名称。
51 0
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
【MM2024】阿里云 PAI 团队图像编辑算法论文入选 MM2024
阿里云人工智能平台 PAI 团队发表的图像编辑算法论文在 MM2024 上正式亮相发表。ACM MM(ACM国际多媒体会议)是国际多媒体领域的顶级会议,旨在为研究人员、工程师和行业专家提供一个交流平台,以展示在多媒体领域的最新研究成果、技术进展和应用案例。其主题涵盖了图像处理、视频分析、音频处理、社交媒体和多媒体系统等广泛领域。此次入选标志着阿里云人工智能平台 PAI 在图像编辑算法方面的研究获得了学术界的充分认可。
【MM2024】阿里云 PAI 团队图像编辑算法论文入选 MM2024
|
2月前
|
机器学习/深度学习 算法 Java
机器学习、基础算法、python常见面试题必知必答系列大全:(面试问题持续更新)
机器学习、基础算法、python常见面试题必知必答系列大全:(面试问题持续更新)
|
2月前
|
机器学习/深度学习 人工智能 算法
【玉米病害识别】Python+卷积神经网络算法+人工智能+深度学习+计算机课设项目+TensorFlow+模型训练
玉米病害识别系统,本系统使用Python作为主要开发语言,通过收集了8种常见的玉米叶部病害图片数据集('矮花叶病', '健康', '灰斑病一般', '灰斑病严重', '锈病一般', '锈病严重', '叶斑病一般', '叶斑病严重'),然后基于TensorFlow搭建卷积神经网络算法模型,通过对数据集进行多轮迭代训练,最后得到一个识别精度较高的模型文件。再使用Django搭建Web网页操作平台,实现用户上传一张玉米病害图片识别其名称。
63 0
【玉米病害识别】Python+卷积神经网络算法+人工智能+深度学习+计算机课设项目+TensorFlow+模型训练
|
2月前
|
机器学习/深度学习 算法 决策智能
【机器学习】揭秘深度学习优化算法:加速训练与提升性能
【机器学习】揭秘深度学习优化算法:加速训练与提升性能
|
2月前
|
机器学习/深度学习 算法 Python
探索机器学习中的决策树算法:从理论到实践
【10月更文挑战第5天】本文旨在通过浅显易懂的语言,带领读者了解并实现一个基础的决策树模型。我们将从决策树的基本概念出发,逐步深入其构建过程,包括特征选择、树的生成与剪枝等关键技术点,并以一个简单的例子演示如何用Python代码实现一个决策树分类器。文章不仅注重理论阐述,更侧重于实际操作,以期帮助初学者快速入门并在真实数据上应用这一算法。
|
25天前
|
机器学习/深度学习 人工智能 算法
探索机器学习中的决策树算法
【10月更文挑战第29天】本文将深入浅出地介绍决策树算法,一种在机器学习中广泛使用的分类和回归方法。我们将从基础概念出发,逐步深入到算法的实际应用,最后通过一个代码示例来直观展示如何利用决策树解决实际问题。无论你是机器学习的初学者还是希望深化理解的开发者,这篇文章都将为你提供有价值的见解和指导。
|
2月前
|
机器学习/深度学习 算法 大数据
机器学习入门:梯度下降算法(下)
机器学习入门:梯度下降算法(下)
|
2月前
|
机器学习/深度学习 算法 API
机器学习入门(五):KNN概述 | K 近邻算法 API,K值选择问题
机器学习入门(五):KNN概述 | K 近邻算法 API,K值选择问题
|
2月前
|
机器学习/深度学习 算法 数据处理
EM算法对人脸数据降维(机器学习作业06)
本文介绍了使用EM算法对人脸数据进行降维的机器学习作业。首先通过加载ORL人脸数据库,然后分别应用SVD_PCA、MLE_PCA及EM_PCA三种方法实现数据降维,并输出降维后的数据形状。此作业展示了不同PCA变种在人脸数据处理中的应用效果。
35 0