最近有人在工作,问我关于机器学习领域的入门知识。 令人尴尬的实现-我应该把这些东西记下来,并进行更广泛的共享。 我的旅途还没有完成,但是有些事情已经对我有所帮助。
这些都是对我有用的东西-请继续并适应您自己的环境和学习风格。 最重要的是,尝试并找出最适合您的方法,并告诉我是否可以提供任何帮助!
需要明确的是,这不是一个有关如何进行机器学习(例如线性回归,神经网络等)的详细博客-还有其他人可以比我做得更好。 这是关于可以使用哪些工具,资源和策略来学习这些东西的文章。
唯一的假设是您具有一定的软件开发经验-至少熟悉面向对象的编程语言。 从软件工程进入数据科学世界是一个巨大的挑战,需要加快学习速度,尽管具备基本的计算机科学,编程和SQL技能会有所帮助。 在可能的情况下,我将尝试为那些没有基础的人提供资源。
- 我们知道如何知道,但不知道如何学习
- Ujamaa
- 今天的孩子
- 哈里森镇全日制幼儿园有可能在2018-19学年
- Додатки,зякимивививчитеіноземнімови,першніжяскажу«квідич»
学习时间表
我的旅程有点像下图。 实话实说,如果我有远见卓识以正确的顺序做事,这是理想的时间表-相反,我太早介入,在最合适的时候停止并重新考虑了策略。

Python要点-开发环境
预先设置一个基本环境,以试验Python和机器学习。 使用Conda隔离python环境-可以更轻松地尝试不同的设置,例如使用不同版本的Python或pip库。
清单:
- 安装Conda-https://conda.io/docs/user-guide/install/index.html
- 创建一个新的conda环境
康达创建-n py36 python = 3.6
康达激活py36
3.通过pip安装一些依赖项
pip install pandas scikit-learn
4.安装Jupyter笔记本-https://jupyter.readthedocs.io/en/latest/install.html
pip安装jupyter
jupyter笔记本
Python要点-Jupyter
Jupyter Notebooks是一个基于Web的IDE,用于开发Python应用程序,该程序将代码与富文本元素(段落,方程式,图形,链接等)结合在一起。 它可以轻松地测试Python程序,让您以最小的设置开始学习(请参阅上一节)。
它对于数据分析和机器学习特别有用,因为Python代码可以与数据的视觉效果和注释相结合,因此记录数据分析和机器学习结果变得容易。 请预先付款并在Github上共享您自己的Jupyter笔记本!

Python要点-语言
Python似乎在数据科学中得到了广泛的使用,并且具有出色的库和框架。 在我看来,它比R更为流行-Python不仅更易于学习,而且在网络上有许多用Python实现的清晰,编写良好的示例项目。 其他一切都取决于对Python的了解,因此绝对是开始的地方。
如果您已广泛使用其他语言,请查看以下资源以快速使用Python:
- Python教程
- 学习Python
如果您绝对是编程的新手,请尝试:
- Python基础
- Python大师
- Python 3编程:Python语言的完整介绍(本书)

数据分析
我认为,不学习一些统计和数据分析技术而进入机器学习是一个错误。 了解统计数据的质量和分布有助于您决定是否甚至可以进行机器学习以及哪种技术最合适。
从学习统计基础开始。 在此阶段,不必担心掌握这一领域。 而是专注于基础知识-如果您要更新自己的知识,那么这可能会有所帮助:
- https://www.mv.helsinki.fi/home/jmisotal/BoS.pdf
如果您是统计学的新手,并且想要更全面地介绍它,那么以下内容将帮助您对基础知识有深入的了解。 请注意,一门课程将使您的学习时间增加几个月:
- 头先统计
- 没有眼泪的统计:非数学家入门
- 统计资料:简介:自学:学习统计资料的简便方法
- 概率统计讲习班
- 统计简介
- 基本统计
- 统计与概率
熟悉Pandas —这是一个用于数据分析的Python库,一旦掌握了统计学和Python的基础,便非常容易上手。 它使学习数据分析变得很有趣-您可以感觉到进度,易于使用,并且可以将细节抽象化(统计函数,绘图)。
这本书将帮助您学习熊猫:
- 适用于数据分析的Python,2e

机器学习-入门文章
如果在进入细节之前需要鸟瞰机器学习,这里有一些简短的博客文章可以帮助您:
- https://medium.com/@ageitgey/machine-learning-is-fun-80ea3ec3c471
- https://towardsdatascience.com/machine-learning-from-scratch-part-1-76603dececa6
- https://medium.com/ml-research-lab/chapter-1-machine-learning-introduction-6e29f8df43e9
- https://www.digitalocean.com/community/tutorials/an-introduction-to-machine-learning
- http://www.r2d3.us/visual-intro-to-machine-learning-part-1/
当然,在Medium上有很多这类入门文章,所以去探索吧!
机器学习-专业课程
机器学习的数学方面令人恐惧。 公平地说,没有办法完全摆脱数学; 尽管如果您愿意接受数学作品并只是应用它,那肯定会有所帮助。
尝试Andrew Ng的Coursera机器学习-这是一门深入的课程,风格颇具学术性,需要数周才能完成。 它要求您学习Octave / Matlab,这可能会使人分心,但Andrew鼓励您相信数学是有效的(但仍为您提供了有关其起作用原理的足够直觉),并迅速使您将算法应用于实际示例。 这些练习非常宝贵,因此请不要跳过它们-它们会变得上瘾! 对于进入机器学习世界的任何人来说,本课程都是事实上的标准。
另外,请查看Google的机器学习速成课程-它比Coursera机器学习课程更轻松,并且可能需要一周的努力才能完成。 这门课程有基本的机器学习知识的先决条件(它跳过了一些细节),而Coursera一门课程确实从头开始,涵盖了所有内容。

打开数据集
网络上有许多开放数据集-我最喜欢的地方是举办数据科学比赛的Kaggle。 如果您还不准备参加比赛,则可以简单地探索数据集并在它们上进行机器学习。
开始时有两个简单的数据集:
- https://www.kaggle.com/c/wine-quality
- https://www.kaggle.com/c/boston-housing
为了真正理解某些底层的机器学习算法,您可以尝试从头开始实现它们,而不是使用库(例如scikit-learn)。 您可以将算法实现的结果与scikit-learn的结果进行比较,以确信自己的实现可以工作。
通过探索许多开源的Jupyter笔记本(例如在Github上)进行各种Kaggle竞赛,从过去的工作中学习。 寻找那些具有数据分析,探索多种机器学习方法的知识,以及贯穿其中的大量评论和结论。

建立参考图书馆
从头到尾地阅读这些书籍将是无所不能的-在解决实际问题(例如开放数据集)时,请以它们为参考。
- 统计学习简介(网络上有免费副本)
- 从零开始的数据科学:Python的首要原理
- 适用于数据分析的Python,2e
- 编程集体智慧:构建智能Web 2.0应用程序
- Python机器学习:使用Python,scikit-learn和TensorFlow进行机器学习和深度学习
- 使用Scikit-Learn和TensorFlow进行动手机器学习
通过查看评论,询问社区中的其他人(Stack Overflow,Quora,在工作中)来形成高质量书籍的列表,或者在购买前阅读一些章节。 有些书确实写得不好-在数据科学界,每个人似乎都在写书,我发现这很普遍!

博客和论文
作为机器学习介绍部分的一部分,提到了一些博客文章。 这是关于更广泛,更深入地阅读。 有趣的主题可能包括:
- 与整个数据科学有关的机器学习
- 新的或鲜为人知的机器学习算法
- 特定领域的机器学习,例如金融,天气预报,医学,广告,图像/视频分类
- 机器学习技术的性能分析
- 用Python或其他语言从头开始实现算法
- 机器学习的模式/技术/框架/库
那里有很多博客:我最喜欢的是Towards Data Science。 这位作者也捕获了一些优秀的作者:
- https://medium.com/@exastax/top-20-data-science-blogs-and-websites-for-data-scientists-d88b7d99740
大多数论文来自顶级学术机构的研究部门。 这些文件太多了,无法列出-但要搜索斯坦福大学,伯克利大学,麻省理工学院等的论文。它们通常在某个地方有存储库。 其他一些研究论文来源:
ResearchGate | 分享和发现研究
查找118+百万出版页面,15 +百万研究人员和700k +项目。 您可以在ResearchGate发现… www.researchgate.net 出版物– Google AI
Google每年发表数百篇研究论文。 发布我们的作品使我们能够合作并分享想法… ai.google 斯普林格公开赛
自2010年推出以来,SpringerOpen产品组合发展迅猛,因此我们现在向所有研究人员提供… www.springeropen.com
聚会
聚会可能会碰到麻烦,有些会不清楚所需的熟练程度,或者会趋向极端销售。 一旦您掌握了一些基础知识,就可以更轻松地进行机器学习的聚会-从学习的角度来看,聚会可能会造成极大的混乱和浪费时间。
我推荐伦敦一些团体:
- PyData伦敦
- 伦敦数据科学ODSC
- 伦敦数据工程
做研究,检查一下谈话是否对您有帮助,并且在您当前的理解范围之内。 学习的另一个好处是结识社区中的人们并获得他们的建议。
会议活动
我还没有参加过数据科学会议,对此我无可奉告(尽管我计划在2018年参加ODSC,是的!)。 到目前为止,一些研究和一些建议已帮助形成此列表:
- 地层
- ODSC
- 凯迪
- 多媒体会议
- 数据工程
与聚会一样,大多数会议都假设一定程度的熟练度-在旅途的开始时正确选择一个位置可能不是明智的选择,但可能是在以后很多时间验证您的学习的一种好方法。


寻找导师
几个月后,我的脑海里浮现出一百万个东西。 在使用了一些数据集之后,我学到了很多东西,又失败了一些,对接下来的学习以及学习中的缺失感到困惑。
在我的导师的帮助下,我形成了一个未知的思维导图,这提供了我需要学习的细节周围的结构。
数据科学导师还可以指导您首先学习最重要的事情,并帮助您有效地应用80/20规则。
组织学习的有效方法是解决实际问题(例如来自Kaggle的问题),并与导师一起探索解决问题的不同方法,并在进行过程中将问题从清单中剔除。
加入数据团队
如果可以,请加入组织中的数据科学团队,该团队正在使用机器学习解决实际数据问题。 您不仅可以每天与当地社区互动,而且没有比与人才一起开发机器学习数据产品更好的端到端沉浸式学习体验。

摘要
这是关于如何学习机器学习和数据科学的广泛概述。 这篇文章中没有捕捉到太多东西,仅仅是因为我还没有到达那里! 我欢迎您对其他有用的建议。
在加速学习的方法上要有足智多谋-有些事情将不适用于您的上下文或可能不适用于您的学习风格。 愿意尝试并在不适合您的情况下将它们扔掉-形成自己的学习途径。
感谢Unruly(我现在的工作场所)为我提供有关学习数据科学的支持! 作为数据团队的一部分,一个学习预算(20%的时间,会议和书籍)以及与一群志趣相投的人的联系-如果没有这些东西,我的学习速度就会慢很多!