【盘点】掌握机器学习的5条必由之路(附学习资料推荐)

【新智元导读】作者在本文提出一种5步入门并应用机器学习的方法。它不是传统的方法。传统的机器学习方法提倡从下往上学,先从理论和数学开始,然后是算法实现,最后让你去解决现实世界的问题。

作者提倡的掌握机器学习的方法与传统方法相反,是从最有价值的成果部分开始。

目标是得到有商业价值的成果:怎样得出结果。

这个结果以一系列预测或能进行可靠预测的模型的方式呈现。

这是一种从上往下的、结果优先的方法。

在商业社会,开始时就有要得到结果的目标是最重要的,那么,怎样才能得到结果?

我们总结了5个步骤:

· 第1步:调整心态 (要有信心!).

· 第2步:选择程序

· 第3步:选择工具

· 第4步:用数据集练习

· 第5步:做一个作品集

就这么简单!

下图是这个过程的图示,为了简便省略了第1步和第5步。

下面是这个过程的详细解释。

第0步:了解机器学习基本概念

开始学习之前,你需要了解机器学习的一些基本概念和大事件。可以问自己一些问题,并尝试回答。

例如:

· 你应该了解机器学习是什么,并能够向同事解释。

· 你应该了解机器学习的一些经典案例。

· 你应该知道机器学习对某些复杂问题来说是唯一的解决办法。

· 你应该知道预测建模是应用机器学习最有效的部分。

· 你应该知道机器学习怎样应用于AI以及数据科学。

· 你应该了解可得到的机器学习算法有哪些类型。

· 你应该了解一些机器学习的基本术语。

第1步:调整心态

机器学习不是教授的专利,也不是只为天才和学术研究者所专有的。

你得有信心!

你一定能学会机器学习,并且利用它解决问题。

有什么理由做不到呢?

· 你不需要写代码

· 不需要掌握很多数学知识

· 不需要高等学历

· 不需要大数据

· 不需要超级计算机

· 也不需要花很多时间

真的,让你止步不前、甚至无法开始的原因只有一个,就是你自己。

· 也许你只是找不到动力。

· 也许你想必须备齐所有工具才开始。

· 也许你一直挑高深的问题做,而不是从初级问题开始。

· 也许你在使用工具和库时缺乏系统的过程。

· 也许你没有好好利用工具和库。

这些想法让你无法开始。下面这篇文章可能对你有帮助:

What isHolding you Back From Your Machine Learning Goals?http://machinelearningmastery.com/what-is-holding-you-back-from-your-machine-learning-goals/

解决这些问题的方法很多,你要发现它们、消除它们,然后继续前进。

为什么学机器学习?

当你认识到你可以学机器学习,你还要明白为什么学它。

· 也许你对学习更多机器学习算法感兴趣。

· 也许你对创建预测感兴趣。

· 也许你对解决复杂问题感兴趣。

· 也许你对开发更智能的软件感兴趣。

· 也许你甚至想成为一名数据科学家。

仔细思考这个问题,明白自己为什么想学习机器学习。

下面这篇文章可能对你有帮助:

http://machinelearningmastery.com/why-get-into-machine-learning/

找到了“为什么”后,你还要找到你的根据地。

下面这些分类,你属于哪种呢?

· 兴趣广泛的生意人

· 正在做项目的负责人

· 机器学习专业的学生

· 机器学习研究人员

· 正在处理棘手难题的研究者

· 想实现算法

· 需要一次性预测

· 需要可以利用的模型

· 数据科学家

· 数据分析师

不同的人有不同的兴趣点,因此会从不同的方向开始机器学习。

不是所有书籍或材料都适合你,知道你属于哪种人,然后再找适合自己的资料。

下面这篇文章可能对你有帮助:

http://machinelearningmastery.com/machine-learning-tribe/

第2步:选择程序

你想在一个接一个的问题中得出高于平均水平的结果吗?

那么你需要按照系统的程序来。

· 好的程序能让你利用和重复利用最好的练习

· 意味着你不必依赖记忆或直觉

· 引导你做完一个项目

· 让你总是明白下一步该做什么

· 还可以针对你的特殊问题类型和工具进行调整

我推荐的程序如下:

· Step 1: 确定问题

· Step 2: 准备数据

· Step 3: 抽样检查算法

· Step 4: 改善结果

· Step 5: 呈现结果

你可以不按这个步骤来,但在处理预测建模问题时最好要有系统性的程序。下面这篇文章可能对你有帮助:

http://machinelearningmastery.com/process-for-working-through-machine-learning-problems/

第3步:选择工具

选择一个能实现机器学习结果的最佳工具,并学习怎样最高效地使用工具。

我最推荐的工具是以下三个:

· WekaMachine Learning Workbench (适合初学者).Weka提供GUI界面,而且不需要自己写代码,可以用于快速一次性的建模问题。

· PythonEcosystem (适合中级学习者). 尤其是SciPy平台的pandas和scikit-learn。开发时你可以直接使用上面的代码和模型,它们的可靠性足够用来运行操作了。

· R Platform (适合高级学习者).R语言是为统计计算设计的,虽然语言艰深而且部分软件包文档很少,但它提供了很多方法。

针对专门领域,推荐的工具如下:

· 用于深度学习的Keras. Keras使用Python语言,意味着你可以充分利用整个Python生态系统,节省大量时间。它的界面非常干净,同时也支持Theano和Keras后端。

· 用于损失函数的XGBoost. 这是能最快实现损失函数的工具,它也支持R语言和Python。

以上只是我的一些个人推荐。同时也要学习怎样使用你选择的工具,成为这方面的专家。

用哪种编程语言?

用哪种编程语言都没关系,甚至用哪种工具也不会有什么影响。你在一个平台上实践时学到的技巧也能很容易转移到另一个平台。

第4步:用数据集练习

确定了程序和工具后,就需要练习,做很多练习。

用标准机器学习数据集练习。

· 使用从现实问题(而不是人造问题)中收集的真实数据集

· 使用适合内存和excel表单的小型数据集

· 使用好理解的数据集,以便预测结果类型

用不同类型的数据集进行练习。练习你不熟悉的问题,这能推动你在寻求解决方法的过程中技术得到进步。了解数据集的不同特性,例如:

· 不同类型的监督学习,例如分类和回归。

· 不同规格的数据集,实例(instance)的数量从小于十个、数十、数百到数千。

· 属性(attribute)的数量不同的数据集,从小于十种、数十种、数百种到数千种。

· 属性类型不同的数据集,包括实数、整数、分类数、序数、混合等。

· 不同的领域,能迫使你快速了解新的问题。

使用UCI机器学习资料库(UCI MachineLearning Repository)

上面有最常用、最好理解的一些数据集,对入门来说非常好。

·了解更多:PracticeMachine Learning with Small In-Memory Datasets from the UCI Machine LearningRepository

利用机器学习竞赛,例如Kaggle

Kaggle上的数据集通常更大型,建模需要更多准备。

这篇文章列举了一些最常用的数据集:

Tour ofReal-World Machine Learning Problems

用你自己设计的问题练习

为适合你自己的机器学习问题收集数据,你会发现这非常有帮助。

第5步:做一个作品集

为你完成的项目建一个作品集,并好好利用。

在用数据集练习并不断进步的过程中,创建一个半正式的输出集合,总结你的发现。

· 你可以上传代码,并在readme文档中总结。

· 你可以在博客中发表你的结果。

· 你可以做成幻灯片。

· 你也可以做一个小视频传到YouTube上。

每一个完成的项目都代表着你的成长作品集的一页。

技巧提示

以下是有关机器学习的一些技巧提示:

· 从简单的程序(例如上文推荐的)和简单的工具(例如Weka)开始,有信心之后再进阶。

· 从最简单最常用的数据集入手(如iris flowers 和 Pima diabetes)

· 每次应用该程序,尝试做一些改进。

· 发现新方法时,找到把它整合到你的程序中的最佳方式。

· 研究算法,但只研究到能帮助你取得更好结果就够了。

· 向专家学习,研究怎样将专家的方法加入到你的程序中。

· 像研究预测建模问题那样研究你的工具,充分利用它们。

· 不要在简单的问题中耽搁,不断挑战更难的问题。

· 专注于清晰呈现的结果,结果越清晰,你的作品集的作用越大。

· 加入论坛和问答网站社区,提问并回答问题。

总结

这篇文章提出了一个简单的5步方法,你可以用它来开始机器学习的入门,并在应用中不断进步。

虽然方法简单,但只要你确实投入努力,就会得到回报。

我有许多学生正是这样成为机器学习工程师或数据科学家的。

原文发布于微信公众号 - 新智元(AI_era)

原文发表时间:2016-10-17

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大数据挖掘DT机器学习

基于协同过滤的推荐算法与代码实现

什么是协同过滤 协同过滤是利用集体智慧的一个典型方法。要理解什么是协同过滤 (Collaborative Filtering, 简称 CF),首先想一个简单的问...

5168
来自专栏PPV课数据科学社区

读书笔记 |《推荐系统实践》- 个性化推荐系统总结

? 推荐系统实践 对于推荐系统,本文总结内容,如下图所示: ? 推荐系统.png 文章很长,你可以跳着看你感兴趣的部分。 一、什么是推荐系统 1. 为什么需要...

59111
来自专栏ATYUN订阅号

【业界】MIT新研发的芯片将神经网络功耗降低95%

近日,麻省理工学院(MIT)的工程师们设计了一种芯片,这种芯片能将神经网络计算的速度提高3到7倍,同时还能将耗电量降低94-95%。这大大减少了在芯片存储器和处...

2906
来自专栏目标检测和深度学习

EasyPR--中文车牌识别系统 开发详解(开源)

5291
来自专栏iOSDevLog

《 Python 机器学习基础教程》总结

学完了本书介绍的所有强大的方法,你现在可能很想马上行动,开始用你最喜欢的算法来解决数据相关的问题。但这通常并不是开始分析的好方法。机器学习算法通常只是更大的数据...

1297
来自专栏华章科技

独家 | 一文读懂推荐系统知识体系(附学习资料)

推荐系统就是根据用户的历史行为、社交关系、兴趣点、所处上下文环境等信息去判断用户当前需要或感兴趣的物品/服务的一类应用。

5346
来自专栏新智元

【热门】GitHub 深度学习Top18开源项目,全球进入协同编程时代

【新智元导读】鸡年伊始,万象更新。 随着深度学习的火热,GitHub上涌现了大量的开源项目,除了大家熟知的 TensorFlow 以外,还有哪些项目是最受欢迎的...

39012
来自专栏QQ大数据团队的专栏

手Q游戏中心的个性化推荐实战

自手Q游戏中心V6.0改版以来,产品形态发生了较大的转变,不再是纯粹通过app列表做游戏分发,而是试图通过内容来带游戏分发,全新的产品形态给推荐算法带来了许多的...

9199
来自专栏云计算D1net

云计算与粒计算

云计算,不必细说谁都知道是什么,人们多多少少都有所耳闻。云计算是继20世纪80年代大型计算机到C/S转变之后,IT界的又一次巨变,它通过互联网将某计算任务分布到...

52510
来自专栏目标检测和深度学习

EasyPR--中文车牌识别系统 开发详解(开源)

一个开源的中文车牌识别系统, Git地址为:https://github.com/liuruoze/EasyPR。   我给它取的名字为EasyPR,也就是Ea...

8868

扫码关注云+社区

领取腾讯云代金券