入门比您想象中的要容易得多。
在这篇文章中,我向你展示了采用自顶向下的策略来入门应用机器学习的方法。我可以看到这个方法分为四个步骤。你应该对这些步骤他们感到熟悉,因为它可能跟你用来学习编程的自上而下的方法相同,亦即,掌握基础知识,大量练习,然后在你找到感觉、进入状态后再深入细节。
在这篇文章的最后,我贴上了我的迷你课程的链接,可以让你缩短学习路径,并给你手把手的指导,以开始和练习应用机器学习。
初学者对机器学习有兴趣,但不知道如何迈出第一步。他们感到困惑,因为现有的博客文章和课程中的材料几乎都是给有中等知识水平的人看的,这些人都有着初学者所不具备的基础知识。
机器学习
照片由埃里克·查尔顿拍摄,保留部分权利。
典型的书籍和大学水平的课程是自下而上的。他们先教数学知识,或者课前就要求掌握必备的数学知识,然后通过教授一些关键的算法和理论来带你入门。如果你有时间,耐心和适当的背景,这可能是一个好方法。但并不是每个人都有这么多的时间或者动力,在领略到应用机器学习的魅力前,花费大工夫学习底层的知识。
我收到很多来自初学者的电子邮件,询问入门机器学习的建议。这是一个棘手的问题,因为可能性太多了,我可以推荐的东西也太多了。我告诉他们不要深入数学细节,不要直接回到学校。
我给予建议的学生和专业人士几乎都是程序员,或者有工程背景,我告诉他们有一个更有效的学习机器学习的途径。
我对机器学习初学者的建议是采取自上而下的方法。
初学者是不同的
照片由mikebaird拍摄,保留部分权利。
我建议初学者在投入大量的时间资源来研究理论之前,先对应用机器学习的全部内容来一个快速、大致的了解。这是有道理的、有效的,也是你很熟悉的策略,因为这是你对编程产生兴趣的方式,此后你才会深入学习编程,并把它当成你学习和工作的重心。
所谓自顶向下的方法,就是使用软件工具,快速掌握从头到尾解决一个机器学习问题的每一个环节。使用现代化的平台,可以在软件工具内部,自动执行最复杂的、最先进的算法,严谨的验证、统计假设检验等工作,在几分钟到几个小时内解决一些小问题。
只有在你对整个过程感到熟悉和自信之后,我才建议你开始深入研究机器学习的算法和理论方面得知识。先学如何、先学做法(how),后学为何、后学原理(why)。
我们可以总结这种自顶向下的方法如下:
我已经写了很多关于应用机器学习过程的文章。我提倡使用一个六步骤的过程解决分类和回归类型问题,这也是大多数机器学习问题的核心。过程如下:
通过遵循这个结构化的流程来解决您所遇到的每一个问题,您都可以用最低程度的努力和要求,大大提高获得良好(或更可能优秀)结果的可能性。
Weka Machine Learning Workbench是初学者入门学习的软件平台。
我认为使用Weka来入门机器学习的道理是傻子都能明白的,因为:
加载了Iris数据集的Weka Explorer界面
你自己可以感受到这个平台使用起来有多容易,我写了一些5分钟的Weka教程,比如:
此外,你可以从命令行运行算法,并通过应用程序编程接口(API)将算法集成到应用程序中。它是一个可扩展的平台,您可以快速轻松地将自己的算法实现通过接口介入平台,并在GUI中使用它们。
一旦你开始使用Weka,你需要练习应用机器学习的6步骤流程。
Weka安装后包含一个带有许多标准的机器学习数据集的数据目录,大部分来自真实的具体领域的问题。还有大量优秀的数据集在UCI机器学习库中供你进行试用和学习。这些数据集是您开始学习和练习的好地方。
您可以在结构化流程的每个步骤中选择适合自己的详细程度。我建议每一步在开始时花费不超过一个小时。您可以在一小时内通过Weka对一个问题学到很多知识,特别是在设计和运行实验时。这将保持你的动力和项目运行的高速度。
大量的数据
照片由cibomahto贡献,保留部分权利
结构化流程鼓励您在您进行观察,并记录试验结果和解决问题过程中的发现。一个明智的做做法将这些观察和发现记录在一起,卸载在项目目录或Github项目中。
我建议您写下关于您的每个项目的博客,甚至完成项目的每一步。您可以在自己的博客(如果有)或Facebook或Google+的最新版本(现在已经支持图片和文本格式)写下笔记。公开博客项目鼓励诚实,这也是我所喜欢的。它还暗示了您的同行和同事,您对应用机器学习感兴趣,并且认真对待,还已经有了一些实际的工作。
由于项目规模小,流程结构化,因此您可以通过一些项目快速了解一些问题。您也可以收集有关您自己的问题的数据,并使用相同的流程为工作中的项目或您自己的事情提供有用且有意义的结果。
下一步是深入研究这些算法,并了解它们为什么会起作用,以及如何从中获得更多。我推荐通过阅读“ 数据挖掘:实用机器学习工具和技术 ”一这本书书,来深入探讨这个问题 。它由Weka平台的原作者编写,告诉了我们怎样在Weka的工作中使用算法,为什么使用这些算法,以及机器学习的其他更深层次的思考。
更深层的知识将帮助您定义自己的问题,并从平台上获得更多。它也可以让你更好地欣赏Weka中的方法,并且你将开始建立一种解决什么样的问题使用什么样的算法的直觉。
在这篇文章中,您发现了用自上而下的策略入门的机器学习方法,这种方法倡导学习具体的结构化过程,掌握一个支持这个过程的强大的工具,并聚焦在一系列项目中练习应用机器学习。
您还了解到,这与传统的自下而上的方法完全相反,因为他们希望您先进行繁重的准备工作(甚至在您知道该领域是否适合您之前),并完全让你自行去思考如何在实践中应用这些算法。