专栏名称: 数据派THU
本订阅号是“THU数据派”的姊妹账号,致力于传播大数据价值、培养数据思维。
目录
相关文章推荐
数据派THU  ·  综述 | 利用视觉模型进行时间序列分析 ·  昨天  
人工智能与大数据技术  ·  DeepSeek一天能赚多少钱?官方突然揭秘 ... ·  昨天  
软件定义世界(SDX)  ·  中信建投:DeepSeek如何加速金融业数字 ... ·  3 天前  
大数据分析和人工智能  ·  DeepSeek 1分钟搞定高颜值图表 ·  2 天前  
艺恩数据  ·  【艺恩报告】AI赋能服饰新趋洞察——2025 ... ·  3 天前  
51好读  ›  专栏  ›  数据派THU

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

数据派THU  · 公众号  · 大数据  · 2017-05-29 21:34

正文

来源:机器之心

参与:黄小天、蒋思源、吴攀

校对:谭佳瑶

本文长度为 4000字 ,建议阅读 6分钟

本文针对算法的选择为你提供一些参考意见。


本文主要的目标读者是机器学习爱好者或数据科学的初学者,以及对学习和应用机器学习算法解决实际问题抱有浓厚兴趣的读者。面对大量的机器学习算法,初学者通常会问自己一个典型的问题:「我该使用哪一种算法?」有很多因素会影响这一问题的答案,比如:


  • 数据的大小、质量及性质

  • 可用计算时间

  • 任务的急迫性

  • 数据的使用用途


在没有测试过不同算法之前,即使是经验丰富的数据科学家和机器学习算法开发者也都不能分辨出哪种算法性能最好。我们并不提倡一步到位,但是我们确实希望根据一些明确的因素为算法的选择提供一些参考意见。


机器学习算法速查表



机器学习算法速查表可帮助你从大量算法之中筛选出解决你的特定问题的算法,同时本文也将介绍如何使用该速查表。


由于该速查表专门针对数据科学和机器学习的初学者,所以在探讨这些算法之时,我们做了一些简化的假设。本文中所有推荐的算法均来自于程序编译反馈以及若干个数据科学家、机器学习专家和开发者的建议。对于没有达成一致意见的几个问题,我们会着重求同存异。


速查表的使用方法


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


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

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

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


有时会应用不止一个分支,而有时又找不到一个完美的匹配。重要的是这些路径是基于经验法则的推荐,因此其中一些并不精确。很多数据科学家说找到最佳算法的唯一确定方法就是尝试所有算法。


机器学习算法的分类


这一章节将对最流行的机器学习分类做一个概览,如果你对这些分类很熟悉,可直接跳至下文「什么时候使用具体算法」这一节。


监督学习


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


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

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

  • 预测:这是一个基于过去和现在的数据预测未来的过程,其最大应用是趋势分析。一个典型实例是根据今年和前年的销售业绩以预测下一年的销售业绩。


半监督学习


监督学习的主要挑战是标注数据价格昂贵且非常耗时。如果标签有限,你可以使用非标注数据来提高监督学习。由于在这一情况中机器并非完全有监督,所以称之为半监督。通过半监督学习,你可以使用只包含少量标注数据的非标注实例提升学习精确度。


无监督学习


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


  • 聚类:把一组数据实例归为一类,从而一个类(一个集群)之中的实例与其他类之中的实例更相似(根据一些指标),其经常被用于把整个数据集分割为若干个类。这种分析可在每一分类之中进行,从而帮助用户需要内在模式。

  • 降维:减少考虑的变量数量。在很多应用中,原始数据有非常高的特征维度,而其中一些特征是多余的且与任务不相关。降维将有助于发现真实、潜在的关系。


强化学习


强化学习是通过环境的反馈信息来分析和优化智能体的行为。在强化学习中,智能体不会被告知应该采取哪种行为,而是通过不断尝试不同的策略,从而发现哪种行为能够产生最大的回报。试错学习和延迟奖赏是将强化学习与其他技术区分的重要特点。


选择算法的注意事项


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


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


不过,即便到了这一步,达到最高精度的标准算法也可能不是最合适的算法,这是因为一个算法通常需要用户细致的调参以及大范围的训练才能获得其最佳性能。


选择具体算法的场景


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


线性回归和 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 应该被用作分类的首要尝试。这些模型可以轻松实现,它们的参数易于调节,而且其性能也相当好。所以这些模型非常适合初学者。


树和集成树








请到「今天看啥」查看全文