学习机器学习的方法有很多种,大多数人选择从理论入手。如果你是一名程序员,那么你已经掌握了将问题拆分成相应组件并设计小项目原型的能力。这些能力可以帮助您学习新技术、库和方法。这些都是任何专业程序员的重要技能,现在它们也可以用于初学者机器学习。要有效地学习机器学习,您必须学习理论,但您可以利用您的兴趣和对知识的渴望来激励您从实际示例开始,然后转向对算法的数学理解。通过这篇文章,你可以了解到程序员初次学习机器学习的四种方式。这是一种为技术人员设计的实用方法,基于实验,你需要做研究和完成实验来建立你的感性认识。这四种方法是:学习机器学习工具学习机器学习数据集学习机器学习算法实施机器学习算法积极执行。1.学习一个机器学习工具选择一个你喜欢的工具或者类库,并学会用好它。我建议你从一个带有数据预处理工具、机器学习算法并且可以呈现结果的工作平台开始。学习这样一个工作平台可以让你更加熟悉机器学习从头到尾的全过程,这比学习具体的数据处理技术或者机器学习算法更有价值。或者,您可能对特定技术或技术类别感兴趣。您可以利用这个机会更深入地了解提供这些方法的类库或工具。掌握提供这些技术的类库,可以帮助你掌握相应的技术。您可以采用的一些策略是:比较可用的工具。总结您选择的工具的功能。阅读并总结此工具的文档。完成学习该工具的文本或视频教程,并总结您在每个教程中学到的内容。制作有关此工具的功能或特性的教程。选择一些你不太了解的功能并写下你是如何得到结果的,或者录制一个五分钟的截屏视频来说明如何使用该功能。一些值得考虑的工作平台是:R、Weka、scikit-learn、waffles和orange。2.学习机器学习数据集选择一个数据集,然后深入理解它,发现最适合处理它的算法。我建议你选择适合内存的中等大小的数据集,并且可能已经被很多人研究过。有很多非常好的包含数据的库,您可以浏览它们并从中选择。您的目标是尝试了解此数据集背后的问题、其结构以及最适合该问题的解决方案类型。使用机器学习或统计工作台探索数据集。这样,你就可以集中精力回答你想研究的关于这个数据集的问题,而不是被学习某项具体技术或如何编写代码来实现而分心。一些可以帮助您学习实验性机器学习数据集的策略是:清楚地描述数据集存在的问题。用描述性统计总结数据。描述您在数据中观察到的结构,并对数据之间的关系做出假设。简单地在这个数据集上测试一些常用的机器学习算法,然后发现哪类算法比其他算法表现更好。调整表现好的算法的参数,然后发现什么算法和算法参数设置在这个问题上表现好的。您可以从这些包含高质量数据集的库中进行选择:UCIMLRepository、Kaggle和data.gov。稳定。我建议您从中等复杂度的算法开始。选择一个很好理解的算法,有许多可供选择的开源实现,并且需要您探索少量参数。您的目标是形成一种直觉,了解算法如何在不同问题和不同参数设置下执行。使用机器学习平台或库。这可以让你把算法当成一个“系统”,专心研究它的性能,而不是被数学公式描述或相关论文分心。在了解您选择的机器学习算法时,您可以采用的一些策略是:总结系统的参数,以及它们如何影响算法选择一组适合该算法的数据库,这可能会导致不同的性能选择一些你认为会导致不同结果的数据库算法的参数设置,然后列出你认为系统可能的性能。考虑可以在迭代或不同时间段期间监视的算法性能。旨在使用一个或多个数据集、算法设置和结果度量来解决特定问题。一个小实验,并报告结果你可以学简单的,也可以学复杂的。要了解更多信息,您可以探索使用算法的所谓启发式或经验法则,并通过实验向它们展示它们是否有效,如果有效,在什么条件下它们与成功结果相关。您可能考虑学习的一些算法是:最小二乘线性回归、逻辑回归、K最近邻分类算法、感知器算法。4.实施机器学习算法选择一个算法,然后选择一种编程语言来实施它,或者将现有实施移植到您选择的编程语言。您应该选择一个中等复杂度的算法来实现。我建议您仔细研究您要实现的算法,或者选择您喜欢的现有实现并将其移植到您选择的编程语言中。从头开始实现算法是了解将算法描述转换为可行系统所必须做出的无数小决策的好方法。在不同的算法上重复这个过程,很快你就会有一种阅读论文和书籍中算法的数学描述的感觉。可以帮助您从头开始实施机器学习算法的五种策略是:从代码移植开始。将开源算法实现从一种语言移植到另一种语言,可以教会您如何实现该算法,并且您可以拥有并掌握它。这是开始学习的最快方式,强烈推荐。从算法描述开始,然后收集一些其他描述来帮助您消除歧义并理解主要参考资料。阅读有关此算法的不同实现的更多信息。了解不同的程序员如何理解算法描述并将其转化为代码。不要太深入浮华的方法。许多机器学习算法的核心是高级优化算法。不要尝试重新实现这些方法,除非您正在对项目执行此操作。您应该使用提供优化算法的类库,或者使用更简单、更容易实现或类库中已有的优化算法(例如梯度下降算法)。小项目方法论以上四种策略属于我所说的“小项目”方法论。您可以通过这种方式快速建立机器学习等技术领域的实践技能。总体思路是您设计并亲自完成解决特定问题的小项目。小项目应该在几个方面足够小,以便您可以完成它们并从中学习,然后再继续下一个项目。以下是您应该考虑对您的项目施加的一些限制:时间短:一个项目从开始到完成并取得可展示的结果应该不超过5-15小时。这使您可以在工作日不工作的晚上和周末完成一个小项目。Smallinscope:一个项目应该是有意义的,但同时应该是你感兴趣的问题的最小范围版本。例如,不要解决广义的“写一个程序,可以告诉我微博是否会被转发”,最好研究这个问题在特定时间段内特定账户的表现。所需资源最少:一个项目应该能够用您联网的台式机或笔记本电脑完成。您不需要花哨的软件、网络架构或第三方数据或服务。你应该收集你需要的数据,将其读入内存,并使用开源工具来解决你的小问题。BonusProjectTips这些策略的原则是让您开始使用您的编程技能。这里有三个提示可以帮助您调整心态并开始工作:写下您学到的东西。我建议你的每一步都产生一个有形的劳动产品。它可以是笔记本、推文、博客文章或开源项目中的笔记。每个劳动产品都可以作??为里程碑或锚点。除非项目的目的是写代码,否则不要写。这不是那么明显,但它是加速您对机器学习的理解的最有帮助的建议。目标是学习一些东西,而不是产生大量资源。不要在意是否有人阅读了您的研究、教程或算法笔记。这些是你的意见,是你的劳动成果,它们证明你现在已经掌握了这些知识。总结下面是对这些策略的清晰的一句话总结,以帮助您选择适合您的策略。学习机器学习工具:选择一个你喜欢的工具或库,并学习如何使用它。.学习机器学习数据集:获取一个数据集,深入研究它,并发现哪种算法最适合它。学习机器学习算法:选择一种算法,深入理解它,发现哪些参数设置在不同的数据集上是稳定的。实施机器学习算法:选择一个算法,用您选择的语言实施它,或者将现有实施移植到您选择的语言。选一个!PDF指南如果您喜欢这篇自学策略文章,作者创建了一本32页的PDF指南,介绍学习和实践应用机器学习。请参阅此处:小型项目方法论:学习和实践应用机器学习作者还创建了一个包含90个项目想法的清单,作为奖励添加到本指南中。原文链接:JasonBrownlee翻译:伯乐在线-XiaoxiaoLi翻译链接:http://blog.jobbole.com/67621/
