通过本文你可以学习到程序员初学机器学习的四种方式(其余两种方式在下篇,敬请期待)。这是给技术人员设计的实用方法,并以实验为依据。大圣众包威客平台(www.dashengzb.cn)表示,你需要做调研并且完成实验才能建立自己的感性知识。
学习机器学习有很多方法,大多数人选择从理论开始。
如果你是个程序员,那么你已经掌握了把问题拆分成相应组成部分及设计小项目原型的能力,这些能力能帮助你学习新的技术、类库和方法。这些对任何一个职业程序员来说都是重要的能力,现在它们也能用在初学机器学习上。
要想有效地学习机器学习你必须学习相关理论,你可以利用你的兴趣及对知识的渴望,来激励你从实际例子学起,然后再步入对算法的数学理解。
这四种方法分别是(由于篇幅关系,本篇将介绍前两种,后两种在下篇中介绍):
学习一个机器学习工具
学习一个机器学习数据集
学习一个机器学习算法
实现一个机器学习算法
你应该通读一下这些方法的策略,然后选择你觉得最适合自己的一个,有选择性地执行。
一、学习一个机器学习工具
选一个你喜欢的工具或者类库,然后学着用好它。
推荐你从一个自带数据预处理工具,机器学习算法并且能呈现结果的工作平台开始学习。学习这样一个工作平台能让你更熟悉机器学习从头到尾的整个过程,这比学习一个特定的数据处理技术或者一个机器学习算法更有价值。
或者,也许你感兴趣的是一个特定技术或者一类技术。你可以利用这个机会更深入地学习一个提供这些方法的类库或工具,这样,能帮助你掌握相应的技术。
一些你可以采取的策略有:
比较一些可选的工具;
总结你选定的那个工具的能力;
阅读并总结这个工具的文档;
完成学习这个工具的文字或视频教程,并且总结每个教程中你重点学到了什么;
制作关于这个工具的功能或者特性的教程(选一些你不太了解的功能,然后写下得到结果的过程,或者把如何使用这个功能的过程录个五分钟的截屏视频)。
一些值得考虑的工作平台有:
R、Weka、scikit-learn、waffles、orange。
二、学习一个机器学习数据集
选一个数据集,然后深入地理解它,发掘究竟哪类算法最适合处理它。
推荐你选择一个中等大小的、内存能放下的、可能被很多人研究过的数据集。现在有很多非常好的包含数据的类库,你可以浏览它们并且从中选择。你的目的是尝试理解这个数据集背后的问题、它的结构,以及哪些种类的解决方法最适合这个问题。
用一个机器学习或者统计的工作平台来研究这个数据集,这样你能专心解答关于这个数据集你要研究的问题,而不是分心去学习某个特定的技术或者如何写代码来实现它。
一些可以帮助你学习实验性的机器学习数据集的策略有:
清晰地描述这个数据集所呈现的问题;
用描述性的统计数据来总结数据;
描述你从数据中观察到的结构,并且提出对数据间关系的假设;
简单地在这个数据集上测试一些常用的机器学习算法,然后发掘哪些类别的算法比其他的表现好;
调整表现好的算法的参数,然后发掘什么算法及算法参数设置在这个问题上表现得好。
你可以从这些包含高质量数据集的库中选择:
UCIMLRepository、Kaggle、data.gov。
额外有关项目的小贴士
这些策略的原则是让你利用你的程序员技能开始行动。下面是3条帮助你调整思维模式,有助你开始行动的小贴士:
1.写下你学到的东西。推荐你每个步骤都产生一个有形的劳动成果,它可以是本子里的笔记、微博、博客文章或者是开源项目。每个劳动成果都可以作为一个里程碑或锚。
2.除非项目的目的是写代码,否则不要写。这条不是那么显而易见,但却是最能帮助你加快理解机器学习的速度的建议。
3.目的是学到东西,而不是产生独一无二的资源。不要管是否有人读你关于一个算法的研究、教程或是笔记。这些都是你的观点,是你的劳动成果,它们证明你现在掌握到了知识。