对于初学者来说,面对大量的机器学习算法,望而却步,经常疑惑“我应该使用什么算法?”然而要回答这个问题并不容易,需要取决于许多因素。
这些因素包括:
数据的规模、质量和属性
计算的时间控制
任务的紧急程度
想要对数据进行什么处理
即使是非常有经验的数据科学家也不能够在尝试多种不同算法前回答到底哪种算法是最有效率的。这里,我们并不是提倡一种已经成熟的解决方法,而是希望能够提供一种指导手册,帮助读者根据一些实际情况能够快速选择合适的算法去率先尝试。
上图是机器学习算法速查表,它能够帮助你根据你实际的问题本身从大量的机器学习算法中找到合适的算法。本文将带你走完一遍流程,学习如何使用这张表。
从这张表为数据科学家和分析师初学者制作完成后,当谈论起算法的时候,我们将会先制定一些简单的假设。
这样的算法推荐是根据多个数据科学家、机器学习专家和研究员的意见和反馈所完成的成果。这里面还有几个点没有达成一致,希望大家能够在使用中也根据实际的情况进行调整,如果有很好的想法,欢迎和我们联系。
怎么使用速查表
先观察图中的路径和算法标签,可以用条件语句转换为“IFDO”。
举例:
如果你想要完成降维,那么使用主成分分析。
如果你需要快速地完成数值预测,那么使用决策树或者逻辑回归
如果你想要一个层次结果,那么使用层次聚类
有时候不止一条路径可以使用,或者其他时候这里面没有一条路径匹配。所以,需要牢记,本文建议仅仅只是当作一份快速指导的选择路径图,有的并不一定特别准确。只有所有都尝试了,才能够找到最合适的算法。
监督学习
监督学习算法是在基于已有一组样本数据上做的预测。例如,历史销售记录可以用于估计未来的价格。使用监督学习,你需要输入包含有标签的训练数据,然后期望得到输出变量。你使用一种算法去分析训练数据,从中学得输入与输出之间的映射函数。这意味着,在映射函数获得后,在未知情况下,没有参与训练的样本数据能够从训练数据中产生结果。
分类:当数据被使用成预测一种分类值的时候,监督学习也被称作分类。在这种情况下,需要对数据指定到一类标签或者指示器中,例如一张图识别出猫或者狗。只有两种标签需要识别的情况,被称作二分类。超过两种需要识别的,叫做多分类。
回归:当需要预测连续性数值时,这种问题叫做回归问题。
预测:这是在基于目前和过去的数据上来预测未来的过程,通常用于分析趋势。一个常见的例子就是基于今年和过去几年的销售额来预测下一年的销售额。
半监督学习
监督学习的挑战点在于有标签的数据往往是昂贵的,而且比较费时。如果标签是限定的,那能够使用还没有打标签的数据来增强监督学习。因为这种情况下机器学习并不是全部监督的,所以称这种机器学习为半监督学习。使用半监督学习,你能给够使用没有标签的样本数据和少量的打标签了的数据来提高学习精度。
非监督学习
当进行非监督学习时,提供给机器的都是没有具体分类的数据。这就需要发现数据下的内在实质模式,例如一个聚类结构、低维或者稀疏树或者图。
聚类:对数据进行分组,做到同一组的数据比其他组的内部更加接近。经常将整个数据分出几个组,这样的学习能够帮助使用者发现数据的内在模式。
降维:降低需要考虑的变量维度。这许多情况下,原始数据有非常多维度的特征,有些特征在一些任务下其实是重复或者有相关关系的。降低维度能够帮助用户寻找真正的潜在关系。
增强学习
增强学习基于现实环境的反馈来分析和优化代理的行为。机器会用尝试不同的方式去发现怎样行动才能获得最好的报酬,而不是被命令执行什么样的动作。不断试错和后期报酬能够区分增强学习和其他技术。
选择算法时的衡量
当你在选择一种算法的时候,需要考虑这些层面:精度、训练时间和使用难易。初学者往往关注他们最了解的算法,以及首先考虑精度。
在数据集面前,第一件要考虑的事是如何获得结果,无论最终的结果如何。初学者会先选择容易使用和快速获得结果的算法,这样效果不错,往往是处理流程很好的开始。一旦你获得了一些结果,更加了解了数据,你就需要花时间去应用更复杂的算法来增强对数据的理解和提高结果精度。
即使是在这一个阶段,最好的算法可能不是号称能够获得最好精度的方法,而是能够经过仔细的调优和扩展训练集才能获得最好性能。
什么时候使用具体算法
了解更多不同的算法能够帮助你理解这些算法能够提供什么以及如何使用。结合速查表的描述,当你使用具体算法的时候,能够提供更多的细节信息和额外技巧。
更多数据科学、机器学习算法相关资源请点击:
领取专属 10元无门槛券
私享最新 技术干货