教程 | 初学者如何选择合适的机器学习算法(附速查表)

2023-05-29 0 219

Liziersas

电脑之心校对

参予:黄小天、蒋光华、吴攀

责任编辑主要就的最终目标听众是电脑自学发烧友或统计数据自然科学的新手,和对自学和应用领域电脑自学演算法化解前述难题抱有深远负面影响的听众。直面大批的电脑自学演算法,新手一般来说会问他们两个众所周知的难题:「我该采用哪一类演算法?」有许多不利因素会负面影响而此难题的标准答案,比如说:

统计数据的大小不一、产品质量及物理性质

需用排序天数

各项任务的迫切性

统计数据的采用商业用途

在没试验过相同演算法以后,即便是训练有素的统计数据自然生物学家和电脑自学演算法开发人员也都无法辨别出何种演算法操控性最合适。他们并不倡导LX1,但他们的确期望依照许多明晰的不利因素为演算法的优先选择提供更多许多参照意见建议。

电脑自学演算法速查表

教程 | 初学者如何选择合适的机器学习算法(附速查表)

电脑自学演算法速查表可协助你从大批演算法当中甄选出化解你的某一难题的演算法,与此同时责任编辑也将如是说怎样采用该速查表。

虽然该速查表专门针对特别针对统计数据自然科学和电脑自学的新手,因此在深入探讨那些演算法之时,他们做了许多精简的假定。责任编辑中大部份所推荐的演算法均源自于流程校对意见建议反馈和二个统计数据自然生物学家、电脑自学专家和开发人员的建议。对于没达成一致意见建议的几个难题,他们会着重求同存异。

速查表的采用方法

将阅读速查表上的路径和演算法标签读为「如果符合<路径标签>,那么采用<演算法>。」例如:

如果你想要降维,那么采用主成分分析。

如果你需要得到快速的数值型预测,那么采用决策树或 logistic 回归。

如果你需要层级结果,那么采用层级聚类。

有时会应用领域不止两个分支,而有时又找不到两个完美的匹配。重要的是那些路径是基于经验法则的所推荐,因此其中许多并不精确。许多统计数据自然生物学家说找到最佳演算法的唯一确定方法就是尝试大部份演算法。

电脑自学演算法的分类

而此章节将对最流行的电脑自学分类做两个概览,如果你对那些分类很熟悉,可直接跳至下文「什么时候采用具体演算法」而此节。

监督自学

监督自学演算法基于一组样本对作出预测。例如,以往销售业绩可以用来预测未来的价格走势。借助监督自学,他们会有一组由标注训练统计数据组成的输入变量和一组期望预测的输出变量。他们可以采用演算法分析训练统计数据源自学两个将输入映射到输出的函数。演算法推断的函数可通过概括训练统计数据预测未知情景中的结果进而预测未知的新实例。

分类:当统计数据被用于预测类别时,监督自学也可处理这类分类各项任务。给一张图片贴上猫或狗的标签就是这种情况。当分类标签只有两个时,这就是二元分类;超过两个则是多元分类。

回归:当预测为连续数值型时,这就是两个回归难题。

预测:这是两个基于过去和现在的统计数据预测未来的过程,其最大应用领域是趋势分析。两个众所周知实例是依照今年和前年的销售业绩以预测下一年的销售业绩。

半监督自学

监督自学的主要就挑战是标注统计数据价格昂贵且非常耗时。如果标签有限,你可以采用非标注统计数据来提高监督自学。虽然在而此情况中电脑并非完全有监督,因此称之为半监督。通过半监督自学,你可以采用只包含少量标注统计数据的非标注实例提升自学精确度。

无监督自学

在无监督自学当中,电脑完全采用非标注统计数据,其被要求发现隐藏在数据之下的内在模式,比如说聚类结构、低维流形或者稀疏树和图。

聚类:把一组统计数据实例归为一类,从而两个类(两个集群)当中的实例与其他类当中的实例更相似(依照许多指标),其经常被用于把整个统计数据集分割为二个类。这种分析可在每一分类当中进行,从而协助用户需要内在模式。

降维:减少考虑的变量数量。在许多应用领域中,原始统计数据有非常高的特征维度,并且许多特征是多余的且与各项任务不相关。降维将有助于发现真实、潜在的关系。

强化学习

基于源自环境的意见建议反馈,强化自学分析和优化智能体的行为。电脑尝试相同的策略,从而发现何种行为能产生最大的回报,因此智能体不是被告知应该采取何种行为。试错和延迟的 reward 是将强化自学与其他技术区分的特点。

优先选择演算法的注意事项

当优先选择两个演算法的时候,你要时刻牢记如下方面:精确性、训练天数和易用性。许多用户将精确性置于首位,然而新手则倾向于优先选择他们最了解的演算法。

当你有两个统计数据集后,第一件需要考虑的事情就是怎样获得结果,无论那些结果可能会多么奇怪。新手倾向于优先选择易于实现且能快速获得结果的演算法。这种思路仅在整个训练的第一步过程中适用。一旦你获得了许多结果并且开始逐渐熟悉统计数据,你或许应该花更多天数,采用更加复杂的演算法来强化你对统计数据的理解,这样方可改进结果。

不过,即便到了而此步,达到最高精度的标准演算法也可能不是最最合适的演算法,这是因为两个演算法一般来说需要用户细致的调参和大范围的训练才能获得其最佳操控性。

优先选择具体演算法的场景

对具体演算法的深入研究可以协助你理解它们的能力和采用的方式。下面更多细节可为你优先选择具体演算法提供更多进一步协助,你可以配合前面速查表一起阅读。

线性回归和 Logistic 回归

教程 | 初学者如何选择合适的机器学习算法(附速查表)

线性回归(linear regression)是一类对连续型因变量 y 与单个或多个特征 X 之间的关系进行建模的方法。y 和 X 之间的关系可被线性建模成 如下形式:当存在训练样本教程 | 初学者如何选择合适的机器学习算法(附速查表)时,教程 | 初学者如何选择合适的机器学习算法(附速查表),参数向量β可从训练样本中学到。

如果因变量不连续且为类别,那么线性回归可以转为采用两个 Sigmoid 函数的 logistic 回归。logistic 回归是一类简便,快速而且强大的分类演算法。这里讨论二值情况,即因变量 y 只有两个值 y∈(−1,1)(这可以很容易被扩展为多类分类难题)。

在 logistic 回归中,他们采用相同的假定类别来尝试预测两个给定样例是属于「1」类还是「-1」类的概率。具体而言,他们将尝试自学如下形式的两个函数:教程 | 初学者如何选择合适的机器学习算法(附速查表)教程 | 初学者如何选择合适的机器学习算法(附速查表),其中

教程 | 初学者如何选择合适的机器学习算法(附速查表)是两个 sigmoid 函数。当存在训练样本 {xi,yi} 时,参数向量β能在给定统计数据集下,最大化 β 对数似然值源自学。

教程 | 初学者如何选择合适的机器学习算法(附速查表)

线性 SVM 和核 SVM

核(kernel)技巧可被用于将非线性可分函数映射成高维的线性可分函数。支持向量机(SVM)训练演算法可以找到由超平面的法向量 w 和偏置项 b 表示的分类器。这个超平面(边界)可以按照最大间隔的方式来分开相同的类别。这个难题可以被转换两个条件优化难题:

教程 | 初学者如何选择合适的机器学习算法(附速查表)

教程 | 初学者如何选择合适的机器学习算法(附速查表)

Kernel 技巧被用于将非线性可分函数映射成高维的线性可分函数

当类别不是线性可分的时候,核技巧可被用于将非线性可分空间映射到高维的线性可分空间。

当因变量不是数值型时,logistic 回归和 SVM 应该被用作分类的首要尝试。那些模型可以轻松实现,它们的参数易于调节,而且其操控性也相当好。因此那些模型非常适合新手。

树和集成树

教程 | 初学者如何选择合适的机器学习算法(附速查表)

用于预测模型的决策树

决策树、随机森林和梯度提升(gradient boosting)全都是基于决策树的演算法。决策树有许多变体,但它们所做的事情都一样——将特征空间细分为基本具有相同标签的区域。决策树易于理解和实现。但,它们往往会过拟合统计数据,并且在树上面走得非常深。随机森林和梯度提升是两种流行的采用树演算法来实现良好准确度的集成方法,该两种集成方法与此同时还能克服过拟合的难题。

神经网络和深度自学

教程 | 初学者如何选择合适的机器学习算法(附速查表)

两个卷积神经网络架构

神经网络凭借其并行和分布式处理的能力而在 1980 年代中期兴起。但该领域的研究受到了反向传播训练演算法的低效性的阻碍,而反向传播演算法在神经网络参数的优化上得到了广泛的应用领域。支持向量机(SVM)和其它更简单的模型(可以通过化解凸优化问题而轻松训练)逐渐在电脑自学领域替代的神经网络。

在最近几年,无监督预训练和层次方式的贪婪训练等新的和改进过的训练技术导致了人们对神经网络的兴趣的复兴。逐渐增强的排序能力(比如说 GPU 和大规模并行处理(MPP))也促进了神经网络的复兴。神经网络研究的复兴已经为他们带来了数千层的模型。

教程 | 初学者如何选择合适的机器学习算法(附速查表)

一类神经网络

换句话说,浅层神经网络已经发展成了深度自学神经网络。深度神经网络已经在监督自学领域取得了巨大的成功。当被用于语音识别和图像识别,深度自学的水平已经达到甚至超过了人类水平。当被应用领域于无监督自学各项任务(比如说特征提取)时,深度自学也可以从原始图像和语音中提取出特征,且仅需要非常少的人类干预。

神经网络由 3 个部分组成:输入层、隐藏层和输出层。当输出层是两个分类变量时,那么该神经网络可以化解分类难题。当输出层是两个连续变量时,那么该网络可被用于执行回归。当输出层和输入层一样时,该网络可被用于提取内在的特征。隐藏层的数量定义了模型复杂度和建模能力。

k-均值/k-模式、高斯混合模型(GMM)聚类

教程 | 初学者如何选择合适的机器学习算法(附速查表)

k-均值聚类

教程 | 初学者如何选择合适的机器学习算法(附速查表)

高斯混合模型

k-均值/k-模式,GMM 聚类的最终目标是将 n 个观察分区成 k 个集群。k-均值聚类定义为硬分配标准:其样本会被而且仅可被分配给两个集群。然而,GMM 可以为每个样本定义两个软分配(soft assignment)。每个样本都有两个与每个集群相关的概率。当给定了集群的数量 k 时,这两个算法都很简单快速。

DBSCAN

教程 | 初学者如何选择合适的机器学习算法(附速查表)

DBSCAN 示意图

当聚类的数量 k 给定时,可以通过密度扩散(density diffusion)来连接样本,从而采用 DBSCAN(基于密度的空间聚类(density-based spatial clustering))。

层次聚类

教程 | 初学者如何选择合适的机器学习算法(附速查表)

层次分区可以采用树结构(树形图)来进行可视化。其不需要集群的数量作为输入,且其分区可以采用相同的 K 而在相同的粒度水平下查看(即可以细化/粗化集群)。

PCA、SVD 和 LDA

他们一般来说并不想直接给电脑自学演算法送入大批特征,因为许多特征可能是无关的或者「固有的(intrinsic)」的维度可能少于特征的数量。主成分分析(PCA)、奇异值分解(Singular Value Decomposition)和隐狄利克雷分布(LDA)都可以被用于执行降维。

PCA 是一类无监督聚类方法,其可以将原有的统计数据空间映射到两个更低维的空间,与此同时还能保留尽可能多的信息。PCA 基本上是在寻找两个保留了最大统计数据方差的子空间,且该子空间由统计数据的协方差矩阵的主要就特征向量所定义。

SVD 和 PCA 有某种程度的联系——中心统计数据矩阵的 SVD(特征 vs. 样本)能提供更多定义由 PCA 所找到的同样子空间的主左奇异向量(dominant left singular vectors)。但,SVD 是一类更加通用的技术,因为其也能做许多 PCA 可能做不到的事情。比如说,两个用户 vs. 电影矩阵的 SVD 可以提取用户资料和电影资料,然后将其用在所推荐系统中。此外,SVD 也被广泛用作主题建模工具,在自然语言处理领域被称为潜在语义分析。

自然语言处理领域的两个相关技术是隐狄利克雷分布(LDA)。LDA 是概率主题模型,其可以将文档分解为主题,分解方式就像高斯混合模型(GMM)将连续统计数据分解成高斯密度(Gaussian densities)。相同于 GMM,LDA 建模的是离散统计数据(文档中的词),并且会限制其主题以按狄利克雷分布而先验地分布。

结论

这是两个易于掌握的工作流程。当你在尝试两个新难题时,其中的关键信息是:

定义难题。你想要化解什么难题?

从简单开始。熟悉你的统计数据和基准结果。

然后尝试更加复杂的东西。教程 | 初学者如何选择合适的机器学习算法(附速查表)

原文链接:http://blogs.sas.com/content/subconsciousmusings/2017/04/12/machine-learning-algorithm-use/

↓↓↓

教程 | 初学者如何选择合适的机器学习算法(附速查表)

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务