了解真实的人们是如何开始机器学习的非常有价值。
在这篇文章中,您将了解到一位初学者(就像您一样)是如何开始并且在应用机器学习方面取得了巨大进展的。
我发现这样的访谈非常迷人,因为可以学到很多东西。我确信您也会这么认为。

利用小型项目入门
照片由 pixonomy 拍摄,部分权利保留。
问:您用了哪些资源来开始学习机器学习?
- 吴恩达(Andrew Ng)的著名在线课程“机器学习”。
- Gareth James 等人所著的《统计学习导论:基于R应用》。
- 认真参加 Kaggle 的竞赛,努力争取最高的排名。非常激烈,学习经历很棒。
- 您的时事通讯和博客,以及您写的一些指南。特别是“小型项目方法论”。
这种方法论在获得机器学习不同技术方面的实践知识方面效果很好:哪种技术适用于哪种场景,以及各自的大致理论基础是什么。
上述方法论对于理解统计学和数据分析的理论基础帮助不大,而这在 Kaggle 之外的“数据科学”领域占有很大比重。
问:您在 Kaggle 竞赛中表现如何?
我在一个关于 Excel 数据分析的在线课程(竟然是 Excel!)中得知了 Kaggle。
可能和大多数 Kaggle 用户一样,我从著名的“泰坦尼克号”学习竞赛(使用 R)开始。后来我完成了另一个入门级竞赛,甚至为它写了一篇教程,引起了很多关注。
我开始深入研究这个领域,当时我的编程知识非常少。在折腾了 R 之后,我和一位同事一起参加了一个严肃的 Kaggle 竞赛,并使用了 Python。
尽管学习曲线非常陡峭,但这次经历对我的编程和数据分析技能起到了神奇的作用。
然而,在那之后,我从数据分析中转移了方向,更多地专注于软件开发,并试图以此开创(另一条)职业生涯。
在竞赛期间,您的网站对我帮助很大。
我们粗略地参考了您在“处理机器学习问题的流程”中所描述的工作流程。
后来,我从您网站上的其他文章中收集了一些更有用的技巧和信息,例如关于“如何在竞争性机器学习中脱颖而出”的文章,或者关于“如何擅长特征工程”的文章。
问:您如何比较 Python 和 R 在 Kaggle 竞赛中的使用?
从 Excel 背景过来,我发现 R 及其数据框的概念最初更容易上手。尤其是在使用 RStudio 时。
然而,深入研究后,我发现 Python 更方便。 Anaconda 发行版 提供了一个开箱即用的软件包,包含了您所需的一切:Pandas、scikit-learn 和 iPython notebook。
Pandas 提供了与 R 中的数据框非常相似的数据框。Scikit-learn 提供了大量现成的机器学习工具,它们共享一个通用的 API。文档非常好,有很多示例。如果您同时学习编程和机器学习,这对您来说是巨大的帮助。
对我来说,这是 Python 相对于 R 的一个主要优势。R 提供了大量的现成库。但是,您必须自己去寻找它们,而且库的文档通常是用非常科学的语言写的,如果您只是想对数据集进行分类的初学者,可能会感到迷茫。
在团队合作中,IPython notebook 是一个宝贵的工具,可以一起共享和编辑代码。对于初学者来说,当您可以立即看到每一行的结果时,代码也更容易理解。作为奖励,很多文档和示例都是以 IPython notebook 的形式编写的,甚至还有一些整本书都是用它写的。
如果您不熟悉 IPython notebook,请查看 nbviewer。 一旦您使用过它,就会很难离开它,真的。
问:您能否详细说明一下使用 Coursera 机器学习课程的经验?
作为一个完全的初学者,这门课程为我提供了宝贵的见解,让我了解了统计数据分析的基本原理。
这门课程几乎不需要您有任何超出高中数学的先验知识,它为您简要介绍了机器学习中最常用的技术和实践。Octave/Matlab 的作业很有挑战性,但并非难于登天,而且社区也很乐于助人。所需的编程技能非常基础。我建议任何想进入机器学习领域并正在寻找入门点的人都去学习。
在我看来,这门课程唯一的缺点是它完全忽略了基于决策树或集成方法的学习。作为一个初学者(尤其是在 Kaggle 上),您会看到很多随机森林和梯度提升。这门课程在帮助您理解它们方面作用不大。
每周授课和作业的形式使得完成课程成为一次有益的体验。不幸的是,他们最近将课程更改为不同的格式,因此您的体验可能会有所不同。
问:您是如何利用小型项目方法论的?
我早期购买它,以期为完全陌生的机器学习领域找到一个切入点。
每个人都是不同的学习者,但对我而言,我发现当解决实际问题时,我学习得最好。因此,通过完成小型项目来了解该领域——每个项目都比前一个“更深入”——对我来说非常有意义。如果您查看小型项目树并将其与我上面提到的资源进行比较,您可以看到很多相似之处。
至于学习算法:在我看来,最好的方法就是实现它们。
Andrew Ng 的机器学习课程很大一部分是实现流行算法的基本版本,这极大地增强了我对“幕后”真正发生的事情以及为什么会发生事情的理解。我认为调整参数和运行实验不会给您带来如此清晰的画面。在决定哪种算法最适合哪项任务以及如何对其进行优化时,实现过算法会让您对如何使用它有更好的见解。但最终这取决于个人喜好。
对于任何寻找小型项目机会的人,我绝对推荐参加 Kaggle 竞赛。它会(可以说)“迫使”您学习您的机器学习工具和算法。您需要两者兼备才能在排行榜上名列前茅。将小型项目方法论与 Kaggle 竞赛相结合,可以让您在机器学习方面迅速变得熟练。同时它也很有趣。
结束语
这是一次很棒的采访,我尤其喜欢他对 Python 和 R 使用经验的诚实评论。
我知道小型项目方法是一种强大的工具,看到初学者亲身体验并取得令人印象深刻的成果真是太棒了。
您是否有关于您如何开始机器学习的故事?在评论中分享!
暂无评论。