作者:Jason Brownlee
译者:刘小芹
【导读】作者在本文提出一种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步方法,你可以用它来开始机器学习的入门,并在应用中不断进步。
虽然方法简单,但只要你确实投入努力,就会得到回报。
我有许多学生正是这样成为机器学习工程师或数据科学家的。
来源:http://machinelearningmastery.com/
作者:Jason Brownlee
译者:刘小芹
转自:微信号 - 新智元(AI_era)
权威发布有关Imagination公司GPU、人工智能以及连接IP、无线IP最新资讯,提供有关物联网、可穿戴、通信、汽车电子、医疗电子等应用信息,每日更新大量信息,让你紧跟技术发展,欢迎关注!伸出小手按一下二维码我们就是好朋友!
领取专属 10元无门槛券
私享最新 技术干货