# 初学者如何使用小型项目开始机器学习并在 Kaggle 上打比赛

> 原文： [https://machinelearningmastery.com/how-a-beginner-used-small-projects-to-get-started-in-machine-learning-and-compete-on-kaggle/](https://machinelearningmastery.com/how-a-beginner-used-small-projects-to-get-started-in-machine-learning-and-compete-on-kaggle/)

了解真实的人们如何开始机器学习是很有价值的。

在这篇文章中，您将了解初学者（就像您一样）是如何开始的，并且在应用机器学习方面取得了很大进展。

我发现这样的采访绝对令人着迷，因为你可以学到所有的东西。我相信你也会。

![Use Small Projects To Get Started](img/5611662bc272d7375e78b427786ebe0c.jpg)

使用小项目开始
照片由 [pixonomy](https://www.flickr.com/photos/pixonomy/3019373272) 拍摄，保留一些权利。

## 问：您使用了哪些资源来开始机器学习？

1.  Andrew Ng 着名的在线课程“[机器学习](https://www.coursera.org/learn/machine-learning)”。
2.  Gareth James 等人的书“[统计学习简介：在 R](http://www.amazon.com/dp/1461471370?tag=inspiredalgor-20) 中的应用”。
3.  在一场讨人喜欢的比赛中进行认真的比赛，试图获得最高排名。非常激烈，很棒的学习经历。
4.  您的简报和博客，以及您撰写的几本指南。特别是“[小型项目方法论](http://machinelearningmastery.com/self-study-machine-learning-projects/)”。

这种方法很好地掌握了机器学习的不同技术的工作知识：什么技术适用于哪些场景以及每个场景的粗略理论基础是什么。

上述方法对于理解统计学和数据分析的理论基础没有多大帮助，这些理论基础是学习之外的“数据科学”的重要组成部分。

## 问：你是如何参加 Kaggle 比赛的？

我通过一些关于 Excel 的数据分析（所有地方）的在线课程找到了讨价还价。

可能像大多数讨价还价的用户一样，我从 R 开始着名的“泰坦尼克号”学习比赛。后来我完成了另一个入门级比赛，甚至为此写了一个教程，引起了很多关注。

我开始以很少的编程知识深入研究整个问题。在与 R 搞混之后，一位同事和我参加了一场使用 Python 的严肃的讨价还价比赛。

虽然学习曲线非常陡峭，但我的编程和数据分析能力确实令人惊叹。

之后，我从数据分析中转移，更多地集中在软件开发上，并试图从中创造一个（新的）职业。

比赛期间对我很有帮助的是你的网站。

作为一个粗略的指导方针，我们使用[流程中描述的工作流程来解决机器学习问题](http://machinelearningmastery.com/process-for-working-through-machine-learning-problems/)。

后来我从你网站上的其他帖子中收集了一些更有用的提示和信息，例如关于机器学习竞赛的帖子[或](http://machinelearningmastery.com/how-to-kick-ass-in-competitive-machine-learning/)[关于如何擅长功能工程](http://machinelearningmastery.com/discover-feature-engineering-how-to-engineer-features-and-how-to-get-good-at-it/)的帖子。

## 问：你如何比较 Python 和 R 在 Kaggle 比赛中的表现？

来自 Excel 背景我发现 R 及其数据框架的概念最初更易于访问。特别是在使用 [RStudio](https://www.rstudio.com/) 时。

然而，深入研究这个问题我觉得 Python 更舒服。 [Anaconda 发行版](http://continuum.io/downloads)提供开箱即用的包装，包含您需要的一切： [Pandas](http://machinelearningmastery.com/quick-and-dirty-data-analysis-with-pandas/) ， [scikit-learn](http://machinelearningmastery.com/a-gentle-introduction-to-scikit-learn-a-python-machine-learning-library/) 和 iPython 笔记本。

Pandas 提供的数据框与 R 中的工作非常类似.Scikit-learn 提供了大量可随时使用的共享 API 的机器学习工具。很多例子都是非常好的文档。如果您同时学习编程和机器学习，这是一个巨大的帮助。

对我来说，这是 Python 相对于 R 的主要优势之一.R 提供了大量可供使用的库。但是，你必须自己寻找它们，并且库的文档通常是一种非常科学的语言，如果你是一个想要对数据集进行分类的初学者，这会让你迷失方向。

在团队中工作，IPython 笔记本是一个非常有用的工具，可以共享和编辑代码。对于初学者来说，当你可以立即看到每一行的结果时，它也使代码更容易理解。作为奖励，许多文档和示例都是作为 IPython 笔记本编写的，甚至还有整本书写在其中。

如果您不了解 IPython 笔记本，请查看 [nbviewer](http://nbviewer.ipython.org/) 。一旦你使用它，没有它真的很难工作。

## 问：你能详细说说 Coursera 机器学习课程的经验吗？

作为一名初学者，该课程为我提供了有关统计量分析背后基本原理的宝贵见解。

除了高中数学之外，该课程几乎没有任何先验知识，并为您提供机器学习中一些最常用技术和实践的基本概要。 Octave / Matlab 中的作业很有挑战性，但并不太难，社区也很有帮助。所需的编程技巧非常基础。我会推荐给任何想要进入机器学习并且正在寻找起点的人。

在我看来，该课程的唯一缺点是它完全否定了基于决策树或集合方法的学习方法。作为一个初学者（特别是在 kaggle），你会看到很多随机森林和梯度助推器。本课程对您的理解不会对您有所帮助。

每周讲座和家庭作业的格式使课程成为一种有益的经历。不幸的是，他们最近将课程改为不同的格式，因此您的体验可能会有所不同。

## 问：你是如何利用小项目方法的？

我早早就买了它，寻找一个角度来接近广泛的机器学习领域作为一个初学者。

每个人都是一个不同的学习器，但对我而言，我发现在解决实际问题时我学得最好。因此，通过完成小项目来了解这个领域的想法 - 每个项目都像前一个项目一样“更深入” - 对我来说很有意义。如果您查看 Small projects 树并将其与我上面提到的资源进行比较，您会发现有很多相似之处。

至于学习算法：在我看来，最好的方法是实现它们。

Andrew Ng 的机器学习课程的一个重要部分包括实现流行算法的基本版本，它增强了我对“幕后”真正发生的事情的理解以及为什么它发生了巨大的变化。我认为摆弄参数和运行实验不会给你如此清晰的画面。当决定哪个算法最适合哪个任务以及如何优化它时，实现算法将使您更好地了解如何使用它。但最终归结为个人偏好

对于那些寻找小型项目范围的人来说，我绝对可以推荐参加 kaggle 的比赛。它会“强迫”你（可以这么说）研究你的机器学习工具并研究算法。您将需要两个位于排行榜顶部附近的位置。将小项目方法与讨人喜欢的比赛相结合，将使您非常快速地掌握机器学习。而且它同时很有趣。

## 最后的话

这是一次很棒的采访，我特别喜欢他对 Python 和 R 的经验的诚实评论。

我知道小项目方法是一个强大的工具，看到初学者的第一手例子很好用，并获得令人印象深刻的结果真是太棒了。

你有一个关于如何开始机器学习的故事吗？在评论中分享！