http://blog.jobbole.com/67621/html
本文由 伯乐在线 - XiaoxiaoLi 翻译。未经许可,禁止转载!
英文出处:Jason Brownlee。欢迎加入翻译组。程序员
学习机器学习有不少方法,大多数人选择从理论开始。算法
若是你是个程序员,那么你已经掌握了把问题拆分红相应组成部分及设计小项目原型的能力,这些能力能帮助你学习新的技术、类库和方法。这些对任何一个职业程序员来讲都是重要的能力,如今它们也能用在初学机器学习上。数据库
要想有效地学习机器学习你必须学习相关理论,可是你能够利用你的兴趣及对知识的渴望,来激励你从实际例子学起,而后再步入对算法的数学理解。编程
经过本文你能够学习到程序员初学机器学习的四种方式。这是给技术人员设计的实用方法,并以实验为依据,你须要作调研而且完成实验才能创建本身的感性知识。网络
这四种方法分别是:架构
你应该通读一下这些方法的策略,而后选择你以为最适合本身的一个,而且有选择性地执行。机器学习
选一个你喜欢的工具或者类库,而后学着用好它。编程语言
我推荐你从一个自带数据预处理工具,机器学习算法而且能呈现结果的工做平台开始学习。学习这样一个工做平台能让你更熟悉机器学习从头至尾的整个过程,这比学习一个特定的数据处理技术或者一个机器学习算法更有价值。工具
或者,也许你感兴趣的是一个特定技术或者一类技术。你能够利用这个机会更深刻地学习一个提供这些方法的类库或工具,掌握了提供这些技术的类库能帮助你掌握相应的技术。
一些你能够采起的策略有:
一些值得考虑的工做平台有:R, Weka, scikit-learn, waffles, 和 orange.
选一个数据集,而后深刻地理解它,发掘究竟哪类算法最适合处理它。
我推荐你选择一个中等大小的,内存能放下的,可能被不少人研究过的数据集。如今有不少很是好的包含数据的类库,你能够浏览它们而且从中选择。你的目的是尝试理解这个数据集背后的问题,它的结构,和哪些种类的解决方法最适合这个问题。
用一个机器学习或者统计的工做平台来研究这个数据集。这样你能专心解答关于这个数据集你要研究的问题,而不是分心去学习某个特定的技术或者如何写代码来实现它。
一些能够帮助你学习实验性的机器学习数据集的策略有:
你能够从这些包含高质量数据集的库中选择: UCI ML Repository,Kaggle 和 data.gov.
选择一个算法,深刻理解它,发掘什么样的参数设置在不一样数据集上都稳定。
我推荐你从一个中等复杂度的算法开始学起。选一个已经被人充分理解了的,有许多可选的开源实现,而且须要你探索的参数数目较少的算法。你的目的是创建有关这个算法在不一样问题和不一样参数设定下表现如何的直觉。
使用一个机器学习平台或者类库。这样能让你把这个算法当成一个“系统”,专心研究它的表现,而不是分心研究数学公式描述或者相关论文。
一些学习你选定的机器学习算法时可采起的策略有:
你能够学简单点,也能够学复杂点。想多学一点的话,你能够探索所谓的启发式规则或经验法则来使用算法,而且以实验为依据来展现它们好很差用,及若是好用的话在什么条件下他们与成功的结果有关联。
一些你能够考虑学习的算法有:最小平方线性回归,逻辑回归,K最近邻分类算法,感知器算法。
选一个算法,而后选一个编程语言来实现它,或者把一个已有的实现移植到你选定的编程语言上。
你应选择一个中等复杂度的算法来实现。我推荐你仔细研究你想要实现的算法,或选择一个你喜欢的已有实现而后把它移植到你选定的编程语言。
从头开始实现一个算法,是学习那些关于把算法描述转换成一个可行的系统的过程当中必需要作的无数的小决定的好方法。在不一样算法上重复这个过程,很快你就能对读懂论文和书里面算法的数学描述有感受了。
五个能帮助你从头开始实现机器学习算法的策略有:
以上四个策略属于我称为“小型项目”的方法论。你用这个方法能够很快创建在技术领域(好比机器学习)方面的实用技能。大意就是你设计而且亲手完成解决特定问题的小项目。
小型项目在几个方面应该足够小,才能保证你能完成它们而且从中学习,而后好步入到下一个项目中去。下面是一些你应该考虑加在项目上的一些限制:
这些策略的原则是让你利用你的程序员技能开始行动。下面是三条帮助你调整思惟模式,有助你开始行动的小贴士:
下面是这些策略的一句话清晰总结,能够帮助你选择适合本身的那个。
选一个吧!
若是你喜欢这篇自学策略文章,做者建立了一个32页的有关学习并实践应用机器学习的PDF指导手册。看这里:
做者还建立了一个包含90个项目想法的清单,做为附加福利加在这个指导里面了。