`
sharp-fcc
  • 浏览: 111574 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

mahout中LDA简介以及示例

阅读更多

翻译自: https://cwiki.apache.org/confluence/display/MAHOUT/Latent+Dirichlet+Allocation

 

简介:

Latent Dirichlet Allocation (Blei et al, 2003)是一个强大的学习方法将words聚到一些topics里面,以及把一些document表示成topics的一些集合。
主题模型就是document在topics上的概率分布,和words在topics上的分布的一个层次贝叶斯模型,举个例子,一个topic是包括“体育”,“篮球”,"全垒打"等词,一个document讲述一些在篮球比赛中使用违禁药,可能包含"体育",“篮球”,“违禁药”,这些词,是事先被人类定义的标签,算法只不过给这些词跟概率关联上。模型中参数估计的目的是把这些topic学习出来,一个document跟这些topic的概率是多少。
另一个理解主题模型的视角是把他看作类似于 Dirichlet Process Clustering  的混合模型,从一个正常的混合模型开始,我们有一个全局混合的几个分布,我们可以说每一个document都有他全局分布之上自己的一个分布,在dirichlet process clustering中,每一个document在全局混合分布上有他自己的隐变量决定他属于哪个模型,在LDA中每一个词又有在document上的一个分布。
我们按照一定概率混合一些模型来解释已观测到的数据,每一个被观测到的数据假设是来自于许多模型中的一个,但是我们并不知道来自于哪一个,所以我们用一个称之为隐含变量的名字来指他从哪里来。
Collapsed Variational Bayes
CVB算法在LDA mahout的实现中结合了variational bayes 和 gibbs sampling .
使用方法:
mahout中LDA的实现需要工作在 一个稀疏的词频的向量上,词频一定要是一个非负数的,在概率模型中,负数没有意义,确保用的是TF而不是IDF作为词频。
调用方法如下:
bin/mahout cvb \
    -i <input path for document vectors> \
    -dict <path to term-dictionary file(s) , glob expression supported> \
    -o <output path for topic-term distributions>
    -dt <output path for doc-topic distributions> \
    -k <number of latent topics> \
    -nt <number of unique features defined by input document vectors> \
    -mt <path to store model state after each iteration> \
    -maxIter <max number of iterations> \
    -mipd <max number of iterations per doc for learning> \
    -a <smoothing for doc topic distributions> \
    -e <smoothing for term topic distributions> \
    -seed <random seed> \
    -tf <fraction of data to hold for testing> \
    -block <number of iterations per perplexity check, ignored unless test_set_percentage>0> \
 选择topic的数量的时候,建议多试几次。
在运行LDA之后,可以使用工具打印出来结果:
bin/mahout ldatopics \
    -i <input vectors directory> \
    -d <input dictionary file> \
    -w <optional number of words to print> \
    -o <optional output working directory. Default is to console> \
    -h <print out help> \
    -dt <optional dictionary type (text|sequencefile). Default is text>
 示例:
在mahout/examples/bin/build-reuters.sh  有详细的示例脚本,脚本自动下载数据集,建立lucence索引,把lucence索引再变成 向量的形式,注释掉最后两行,让他运行你的LDA,打印出来结果。
把样例改成你所需要的形式,需要自己建立lucence索引,需要一个adapter,剩下的东西都差不多。
参数估计:
使用EM算法。
分享到:
评论
1 楼 chenbaiyang12csdn 2016-04-12  
你好,运行LDA之后,使用工具打印出来结果这一部分能否给予一个细致的描述,我用自己的新闻集算出文档->主题的概率以及主题->词的概率后如何得到每个主题的代表词

相关推荐

    mahout 简介,中文

    Mahout的设计充分考虑了大规模数据处理的需求,它紧密集成到Hadoop生态系统中,利用MapReduce框架来并行处理大规模数据集。这意味着Mahout可以运行在分布式计算环境中,有效地处理PB级别的数据。Hadoop的MapReduce...

    mahout 原理 简介

    ### Mahout原理简介 #### 一、Mahout概述与背景 Apache Mahout 是一个高度可扩展的机器学习库,由 Apache 软件基金会维护。它最初作为一个子项目于2008年由Lucene项目管理委员会宣布成立,并于2010年成为Apache...

    Apache Mahout 简介

    Apache Mahout 简介

    mahout in action中的源码

    源码仓库中的`MiA-master`包含了《Mahout in Action》一书中的所有示例代码,这对于读者理解和实现书中介绍的算法非常有帮助。你可以跟随这些示例,逐步学习如何使用Mahout进行数据预处理、模型训练和评估。通过实际...

    mahout源码

    本篇将深入探讨Mahout中的朴素贝叶斯分类以及中文分词这两个核心功能。 一、Mahout与朴素贝叶斯分类 1. **Mahout简介** Apache Mahout的命名来源于古印度的一种数学算术工具,它体现了项目的目标——通过数学算法...

    mahout-core-0.9.jar+mahout-core-0.8.jar+mahout-core-0.1.jar

    作为Apache软件基金会的顶级项目,Mahout有一个活跃的社区,提供丰富的文档、教程和示例,帮助用户理解和使用Mahout。 8. **集成与扩展**: Mahout可以与Hadoop生态系统中的其他工具(如HBase、Spark等)无缝集成...

    Mahout in Action 2012

    这本书详细介绍了如何使用Apache Mahout进行数据挖掘和机器学习,并提供了大量的实践案例和代码示例,帮助读者快速上手Mahout,并且能够将其应用到实际的项目中去。本书不仅适合数据科学家、机器学习工程师,同样...

    mahout所需jar包

    在给定的压缩包中,包含了`mahout-distribution-0.5`版本,这个版本的Mahout已经包含了运行K-Means所需的所有jar包,用户可以直接使用而无需自行编译。 **使用Mahout的步骤** 1. **配置环境**:确保已经安装了Java...

    如何成功运行Apache Mahout的Taste Webapp-Mahout推荐教程-Maven3.0.5-JDK1.6-Mahout0.5

    在Mahout Taste Webapp工程中,需要添加对mahout-examples的依赖,这一步骤是必须的,因为示例代码提供了实际运行推荐系统所必需的组件。 6. 配置推荐引擎的属性 在Mahout Taste Webapp的recommender.properties...

    能找到的最全的 mahout in action中文版

    【适用人群】Mahout适合于开发智能应用的工程师、机器学习和人工智能的研究者,以及希望利用机器学习提高产品竞争力的团队或企业。通过这本书,读者可以了解到如何实际应用Mahout解决具体问题,而不涉及过多的理论...

    mahout_in_action_中文版

    通过这些示例,开发者可以更加直观地了解如何将Mahout集成到自己的项目中。 3. **产品团队或初创公司的领导者**:对于希望通过机器学习技术获得竞争优势的企业而言,Mahout提供了一种低成本的解决方案。它不仅能够...

    mahout1.0编译包

    描述中提到,“mahout0.9不能运行在hadoop2中,会报interface错误”,这暗示了在Mahout 0.9版本中,可能存在与Hadoop 2.x版本的API不兼容性问题。Hadoop是分布式计算框架,其接口可能会随着版本升级而发生变化,这...

    MAHOUT实战(中文版)

    2. **机器学习简介**:书中会介绍机器学习的基础知识,包括监督学习、无监督学习和半监督学习,并解释如何在Mahout中实现这些算法。 3. **Mahout的算法库**:涵盖各种算法,如K-means聚类、SVD(奇异值分解)用于...

    mahout学习

    在“Kmeans.txt”文件中,你可以找到关于如何在Mahout中使用KMeans的代码示例,包括数据预处理、模型训练、预测以及评估等步骤。通过实际操作,你可以更深入地理解KMeans的实现细节和效果。 总结,Mahout的KMeans...

    Mahout教程内含源码以及说明书可以自己运行复现.zip

    通过源码和说明书,你可以亲自运行示例,加深对Mahout的理解。 **0. Mahout 简介** Apache Mahout起源于2009年,是基于Hadoop的数据挖掘工具,主要目标是提供可扩展的、高效的机器学习算法。它支持多种类型的机器...

    Mahout最新基础依赖包.rar

    **Apache Mahout简介** Apache Mahout 是一个开源项目,它为大数据分析提供了机器学习库。这个库主要关注三个核心领域:推荐系统、分类和聚类。Mahout 的目标是使开发人员能够轻松构建智能应用程序,利用分布式计算...

    mahout聚类算法

    Mahout 聚类算法是数据挖掘和机器学习领域中的一种重要算法,它可以将相似的数据点聚集在一起,以便更好地理解和分析数据。Mahout 聚类算法可以分为多种类型,如 Canopy、KMeans、Fuzzy-KMeans、Spectral Clustering...

    Mahout_in_Action

    - **第7章:聚类简介**(Introduction to clustering):解释了聚类的基本概念和技术,以及它在数据分析中的应用。 - **第8章:表示数据**(Representing data):讲解了如何为聚类分析准备数据,包括数据清洗、特征...

Global site tag (gtag.js) - Google Analytics