hadoop mathout学习笔记

jopen 8年前
当中会涉及算法和很多陌生知识,抛开能力,我有一个如饥似渴的疯狂的心;勤恳,专心,积极,磊落

官方网站: http://mahout.apache.org/
聚类----将物理或抽象对象的集合分成由类似的对象组成的多个类的过程被称为聚类。由聚类所生成的簇是一组数据对象的集合,这些对象与同一个簇中的对象彼此相似,与其他簇中的对象相异。“ 物以类聚,人以群分”,在自然科学和社会科学中,存在着大量的分类问题。聚类分析又称群分析,它是研究(样品或指标)分类问题的一种统计分析方法。聚类分析起源于分类学,但是聚类不等于分类。聚类与分类的不同在于,聚类所要求划分的类是未知的。聚类分析内容非常丰富,有 系统聚类法、有序样品聚类法、动态聚类法、模糊聚类法、图论聚类法、聚类预报法



mahout 当前已实现的三个具体的机器学习任务。它们正好也是实际应用程序中相当常见的三个领域:

  • 协作筛选
  • 集群
  • 分类

   协作筛选(CF) 应用程序根据用户和项目历史向系统的当前用户提供推荐。生成推荐的 4 种典型方法如下:

    基于用户 :通过查找相似的用户来推荐项目。由于用户的动态特性,这通常难以定量。

    基于项目 :计算项目之间的相似度并做出推荐。项目通常不会过多更改,因此这通常可以离线完成。

    Slope-One :非常快速简单的基于项目的推荐方法,需要使用用户的评分信息(而不仅仅是布尔型的首选项)。

基于模型 :通过开发一个用户及评分模型来提供推荐。

集群

对于大型数据集来说,无论它们是文本还是数值,一般都可以将类似的项目自动组织,或集群 ,到一起。举例来说,对于全美国某天内的所有的报纸新闻,您可能希望将所有主题相同的文章自动归类到一起;然后,可以选择专注于特定的集群和主题,而不需要阅读大量无关内容。另一个例子是:某台机器上的传感器会持续输出内容,您可能希望对输出进行分类,以便于分辨正常和有问题的操作,因为普通操作和异常操作 会归类到不同的集群中。

  • 与 CF 类似,集群计算集合中各项目之间的相似度,但它的任务只是对相似的项目进行分组。在许多集群实现中,集合中的项目都是作为矢量表示在 n 维度空间中的。通过矢量,开发人员可以使用各种指标(比如说曼哈顿距离、欧氏距离或余弦相似性)来计算两个项目之间的距离。然后,通过将距离相近的项目归类到一起,可以计算出实际集群。

    可 以通过许多方法来计算集群,每种方法都有自己的利弊。一些方法从较小的集群逐渐构建成较大的集群,还有一些方法将单个大集群分解为越来越小的集群。在发展 成平凡集群表示之前(所有项目都在一个集群中,或者所有项目都在各自的集群中),这两种方法都会通过特定的标准退出处理。流行的方法包括 k-Means 和分层集群。如下所示,Mahout 也随带了一些不同的集群方法。

    分类

    分类 (通常也称为归类 )的目标是标记不可见的文档,从而将它们归类不同的分组中。机器学习中的许多分类方法都需要计算各种统计数据(通过指定标签与文档的特性相关),从而创建一个模型以便以后用于分类不可见的文档。举例来说,一种简单的分类方法可以跟踪与标签相关的词,以及这些词在某个标签中的出现次数。然后,在对新文档进行分 类时,系统将在模型中查找文档中的词并计算概率,然后输出最佳结果并通过一个分类来证明结果的正确性。

    分类功能的特性可以包括词汇、词汇权重(比如说根据频率)和语音部件等。当然,这些特性确实有助于将文档关联到某个标签并将它整合到算法中。

    机器学习这个领域相当广泛和活跃。理论再多终究需要实践。接下来,我将继续讨论 Mahout 及其用法。

     

     

    Mahout 的入门相对比较简单。首先,您需要安装以下软件: