mahout

一、mahout简介

      mahout是Apache SoftWare Foundation旗下的一个开源项目,提供一些可扩展的机器学习领域的经典算法的实现,旨在帮助开发人员更加方便快捷地创建智能应用程序。


二、mahout中的数据表示

      mahout中的数据以向量的形式存储。

                稠密向量:用一个double型的数组实现。当向量具有很少的非0值时,这种向量表示法效率高,能快速访问

                随机访问向量:类似于HashMap的结构,键是int型、值是double型。

                序列访问向量:使用int和double的并行数组表示向量。因此,使用它按序遍历整个向量的各个维度是很快的

                        如:k-means算法,需要重复计算向量的大小,因此选择序列访问向量比随机访问向量要好。


三、将文本装换成向量

       在信息时代,文本文件的数量爆炸性增长。公司或者机构可以使用诸如聚类、分类的机器学习算法去发现这些知识。学习用向量表示文本是从海量数据中发现只是的第一步。

mahout_第1张图片

TF-IDF介绍:

       如果某一个单词或者短语在一篇文章中出现的频率TF高,并且在其他稳重中很少出现的话,那么此单词或者短语就可以用来分类。TF=Term Frequency(单词出现频率),IDF=Inverse Document Frequency(反文档频率)。


四、mahout的聚类、分类算法

              分类是指有监督的学习,即要分类的样本是有标记的,类别是已知的;聚类是指无监督的学习,样本没有标记,根据某种相似度度量把样本聚为k类。

  1、聚类算法

   常使用canopy+k-means两者结合

   (1)k-means算法

       先确立k个类别,然后各自选取初始化中心,然后不断求平均值,迭代的过程

   (2)canopy算法

       

      mahout_第2张图片

    (3)聚类示例

         主要步骤:将文本转化成序列文件->将序列文件转化成向量->运行聚类算法

五、推荐算法

   Taste的框架介绍

  mahout_第3张图片

   主要包括下面五个组件

   mahout_第4张图片

  1、基于用户的推荐

    mahout_第5张图片

     结果:把D推荐给用户A,因为C喜欢ACD,A喜欢AC,所以推荐DA

  2、基于商品的推荐

    

     

    结果:如果一个商品有多个人喜欢,就把这个商品推荐给其他人

 3、slope one推荐策略

    mahout_第6张图片

你可能感兴趣的:(hadoop,Mahout,分类,聚类)