13.5 Mahout中的聚类和分类

13.5.1 什么是聚类和分类

在日常生活中经常会有重复的事情发生,人们会把自己遇到的事情和记忆中的事情关联起来。例如,糖果使人们想起是甜味,因此,人们会把具有甜味的食物归类为甜食。即使人们没有甜食的概念,人们也能把甜的食物进行归类。潜意识里,人们能够自然地将甜与苦进行分类。生活中与此类似的现象还有很多,这些现象就是分类。

下面将用一个实际的例子来介绍到底什么是分类。假设在一个两岁的宝宝面前摆放一些水果,并告诉他红色圆的是苹果,橘黄色圆的是橘子。然后,拿一个又红又大的苹果问宝宝是不是苹果,宝宝回答是,这就是一个简单的分类过程。在这个过程中主要涉及两个阶段:第一个是建立模型阶段,第二个是使用模型阶段。建立模型就是告诉两岁的宝宝具有何种特征的水果是苹果,具有何种特征的水果是橘子;使用模型就是问宝宝又红又大的是不是苹果。

在日常的生活中除了前面介绍的分类外,还有很多种不同类型的聚类。下面同样用一个实际的例子来介绍聚类。假设你是一个藏书众多的图书馆馆长,但图书馆中的书是混乱的,没有任何顺序。来到图书馆的读者不得不找遍所有的书籍才能发现自己想要看的书。这个寻找书的过程非常缓慢。对于任何一个读者来说,这都是一个很头痛的问题。如果图书按照书名的首字母进行排列,那么在知道书名的情况下寻找一本书将会变得非常容易。如果图书按照主题进行摆放,图书查询也会变得简单易行。将众多的图书按照主题进行排列就是一个聚类的过程。在刚刚接触这个工作的时候,你不知道这些书会有多少种主题,比如哲学、文学等,也许还会有一些你从未听说过的主题。要完成这些任务,你首先要把它们排成一列,逐本查阅。当遇到与之前的书主题相似,就回到前面将它们放在一起,归为一类。当读完所有的书时,一遍聚类便完成了,众多的书籍也被分成了一些类。如果你觉得第一遍聚类的结果不够精细,你可以进行第二遍聚类,直到自己满意为止。

这就是聚类,在下面的章节中,我们将会详细地介绍Mahout中的分类和聚类。