数据挖掘、机器学习、自然语言处理这三者是什么关系?这几个怎么入门啊?

本题已收录至知乎圆桌:机器之能 X 语言之美,更多「人工智能」相关话题欢迎关注讨论。本人菜鸟一枚,本科学机器学习、数据挖掘、自然语言处理零基础,目前正在学统计学习方法,由于英语比较差,吴恩达的课听不下去,所以有点无从下手,希望有经验的大牛们给指点迷津,指导下这些怎么学习。ps:本人对算法和数据分析比较感兴趣,机器学习、数据挖掘、自然语言处理哪一个更适合?这三个哪一个更有发展潜力?
关注者
3,264
被浏览
281,142
收录于 编辑推荐知乎圆桌 ·

已经有几个关于如何入门的回答,补充一下这三者的关系。数据挖掘和机器学习都是基于数据的科学。数据挖掘侧重于从数据中获取知识来供人类决策。知识来自与数据,结果往往是抽象的知识,大多数情况下并不直接进行决策。这是其主要特征。例如我们可以从大量春运数据中发现哪些站点人流量大从而调整运行图。获取人流量知识的过程,就是数据挖掘的一种简单应用。


机器学习则不同,它代表着一类技术。如果机器能够通过观测数据使得其处理某一任务的性能有所提升,那么它可以称为机器学习。例如,一个统计机器翻译系统或者神经网络机器翻译系统在初始状态下并不会翻译。当其处理了大量训练数据(训练过程)之后,其翻译性能就能得到提高,因此我们可以说这两种方法是机器学习。反之,如果我们面对的是一个通过手写规则生成的基于规则的机器翻译系统,则它并不能通过观测更多数据获得任何提升。那么它就不是一个机器学习系统。一个机器学习技术必须有五个组成部分:模型,数据,学习算法,推导算法和评测准则。模型在学习算法观测数据的过程中得到优化,推导算法对新的数据进行推导,评测准则告诉我们任务性能是否提高。


机器学习是解决问题的一种方法,但未必是唯一的方法,也未必是最优的方法。例如,如果我们要做的不是汉语到英语的翻译,而是C语言到机器代码的翻译,那么手写规则的编译器要远远强于机器学习做出来的编译器 (尽管基于机器学习编译器也是有可能实现的)。


自然语言处理则是一个很宽泛的概念,绝大多数与自然语言相关的技术都可以被归类为自然语言处理,包括解析、翻译、语音识别、摘要、自动修改、对话等等。根据所要完成的任务不同,可能需要融合大量不同的技术。例如,如果我们的任务是从大量文本语料中找出关于某个商品的评论,那么我们需要信息获取技术。如果进一步地我们需要判断商品的评价是正面还是负面,我们就需要Sentiment Analysis技术。许多自然语言技术都有机器学习实现(并且机器学习效果最好),但并不代表机器学习就是自然语言处理的全部(如传统的搜索技术就往往不用机器学习)。