`
strayly
  • 浏览: 97398 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

spark2.3聚类算法lda代码(python)

 
阅读更多
spark的lda有两个一个是mllib下 一个是ml下的,下面代码是使用ml的

from pyspark import SparkConf, SparkContext,SQLContext
from pyspark.sql import SparkSession 
from pyspark.ml.feature import Word2Vec,CountVectorizer
from pyspark.ml.clustering import LDA, LDAModel
from pyspark.sql.functions import col, udf
from pyspark.sql.types import IntegerType,ArrayType,StringType
import pylab as pl

def to_word(termIndices):
    words = []
    for termID in termIndices:
        words.append(vocab_broadcast.value[termID])    
    return words
conf = SparkConf().setAppName("myspark") 
sc = SparkContext(conf=conf) 
sqlContext=SQLContext(sc)

'''
documentDF = sqlContext.createDataFrame([
    ("Hi I heard about Spark".split(" "),),
    ("I wish Java could use case classes".split(" "),),
    ("Logistic regression models are neat".split(" "),)
], ["text"])
'''
#documentDF 为文档分词数据 ,格式类似上面
spark_df = sqlContext.createDataFrame(documentDF)
cv = CountVectorizer(inputCol="words", outputCol="features")
cvmodel =cv.fit(spark_df);
cvResult= cvmodel.transform(spark_df);
#10个主题 也就是10个类别
lda = LDA(k=10, maxIter=100)
ldaModel = lda.fit(cvResult)

transformed = ldaModel.transform(cvResult).select("topicDistribution")
#结果显示 每个文档各个类别的权重
transformed.show(truncate=False)
#检验上面创建lda模型中使用的参数 ll越大越好,lp越小越好
ll = ldaModel.logLikelihood(cvResult)
lp = ldaModel.logPerplexity(cvResult)

#每个主题的分词分布情况
topicIndices = ldaModel.describeTopics(maxTermsPerTopic = wordNumbers)
vocab_broadcast = sc.broadcast(vocabArray)
udf_to_word = udf(to_word, ArrayType(StringType()))

topics = topicIndices.withColumn("words", udf_to_word(topicIndices.termIndices))
topics.show(truncate=False)
exit()

分享到:
评论

相关推荐

    K-Means文本聚类python实现

    在这个"K-Means文本聚类python实现"的项目中,我们将探讨如何使用Python来处理文本数据并应用K-Means算法进行聚类。 首先,文本预处理是任何文本分析任务的基石。在Python中,我们通常使用nltk(自然语言工具包)或...

    邹博-机器学习全套课件及代码.zip

    9. **聚类算法**,如K-means,DBSCAN等,用于无监督学习中的数据分组。 四、模型评估与调优 课件还将教授如何评估模型的性能,包括准确率、精确率、召回率、F1分数等指标,以及交叉验证、网格搜索等调参技术。此外...

    01、《Python数据分析师》项目集锦.pdf

    6. 机器学习在数据分析中的应用:项目集锦中的机器学习篇介绍了如何使用FP-growth算法进行新闻网站流量点击分析,如何使用聚类算法实现客户价值分析,以及如何使用LDA算法对电商行业商品评论进行情感分析,帮助学习...

    北邮计算机学院Python程序设计:数据挖掘类作业.zip

    Scikit-learn也提供了聚类算法。 3. **回归**:线性回归、逻辑回归等用于预测连续或离散的目标变量。Python的统计模型库statsmodels提供了这些方法。 4. **关联规则**:Apriori、FP-Growth等算法用于找出项集之间的...

    毕业设计-基于Python的主动学习推荐系统的实现.zip

    用户聚类依靠用户相似度作为距离度量,使用K-medoids作为聚类算法 问题主要存在于:由于评分稀疏,很多用户之间距离为0 命令:python user_clustering.py input_file number_of_clusters output_file 建树前的准备...

    2017年最新机器学习入门与实战精品高清全套视频教程附讲义作业(anaconda2 4.3Pytyhon2.7 jupyter) 70课

    7.4、04-聚类算法的衡量指标及案例实现 7.5、05-层次聚类及实现案例 7.6、06-密度聚类 7.7、07-密度聚类案例实现、谱聚类、谱聚类案例实现 7.8、08-不同聚类效果对比实现、文本案例、图片案例 7.9、09-朴素贝叶斯...

    网站主题标签生成,推荐算法(真实企业项目视频)

    - **聚类分析**:通过K-Means等聚类算法将相似内容归类到一起。 ### 二、推荐算法概述 #### 2.1 推荐系统的价值 随着互联网内容的爆炸式增长,用户面对海量信息时往往感到无所适从。推荐系统通过分析用户的偏好和...

    主动学习推荐系统的实现

    用户聚类依靠用户相似度作为距离度量,使用K-medoids作为聚类算法 问题主要存在于:由于评分稀疏,很多用户之间距离为0 命令:python user_clustering.py input_file number_of_clusters output_file 建树前的准备...

    PySpark 机器学习、自然语言处理与推荐系统配套代码+数据集.zip

    PySpark是Apache Spark的Python接口,它为Python开发者提供了高效的数据处理和大规模并行计算能力。在现代数据分析领域,PySpark因其强大的功能和易用性而备受青睐。本资料集合了PySpark在机器学习、自然语言处理和...

    document_clustering:document_clustering

    4. **聚类算法**:Python 中常用的聚类算法有 K-Means、层次聚类(Hierarchical Clustering)、DBSCAN(基于密度的聚类)等。K-Means 是一种迭代算法,通过迭代调整中心点和分配样本到最近的簇来达到聚类效果;层次...

    藏经阁-SparkData Science as a Service.pdf

    Spark MLlib 是一个机器学习库,提供了多种机器学习算法,包括分类、回归、协同 Filtering、聚类、降维等。Spark MLlib 还支持流处理和 Spark 的集成。 本文档介绍了 Spark 在数据科学服务中的应用,包括数据科学...

    2018泰迪杯数据挖掘c题(酒店、景区评论分析)-完整版

    5. **文本聚类**:通过K-means或其他聚类算法将评论分组,找出相似的反馈模式。 6. **特征工程**:创建有用的特征,如评论长度、情感词汇的频率等,以增强模型的预测能力。 7. **结果可视化**:使用Matplotlib、...

    pyspark-mlib:pyspark-mlib

    除了监督学习,MLlib还提供了无监督学习算法,如KMeans用于聚类,LDA用于主题模型。在实践中,我们需要注意调整聚类的数量或主题模型的参数,以找到最佳的模型表示。 协同过滤是推荐系统中的常见方法,MLlib提供了...

    数据分析(如excel、powerBI、python、R语言或其他数据分析工具)面试题.pdf

    - **应用**: 分类、回归、聚类等。 **10. RMarkdown 的作用** - **文档生成**: 结合文本、代码、输出结果于一体。 - **报告撰写**: 自动生成 HTML、PDF 等格式的报告。 #### 五、其他数据分析工具 **1. Tableau*...

    2021年大数据常见面试题.docx

    7. 多人共用账户检测:可能涉及交易行为分析和异常检测,可能使用聚类算法或时间序列分析。 8. 实时处理点击流数据:对于实时性要求高的系统,流处理技术如Apache Flink或Kafka Streams是关键。 9. 好数据与好模型...

    2014-sowetan-live:Sowetan Live的2014年文章摘要

    如果标签字段是空的,那么这可能是一个无监督学习的任务,适合使用聚类算法(如K-means、DBSCAN)或主题模型(如LDA)来发现文章的隐藏主题。如果标签已经存在,可以进行分类任务,如情感分析,判断文章的情感倾向是...

    毕业设计,基于机器学习的商品评论分析系统.zip

    常见的主题建模算法有潜在狄利克雷分配(LDA)和非负矩阵分解(NMF),这些方法能帮助我们理解评论的隐藏结构。 4. **关键词提取**:为了快速了解评论的核心内容,我们需要提取关键信息。TF-IDF和TextRank等算法...

    csci-347:数据挖掘

    - 聚类:K-means、层次聚类、DBSCAN等,无监督地将数据分组。 - 关联规则:Apriori、FP-Growth等,发现项集之间的频繁模式。 4. **特征工程**: - 特征构造:通过数学运算或领域知识创建新特征。 - 特征提取:...

    优质课件 北京大学研究生课程文本挖掘 文本数据挖掘全套PPT教程(共67页) TextMining14-文本挖掘工具与应用.ra

    11. **文本挖掘工具**:课程可能会介绍一些常用工具,如NLTK、Spacy(Python)、Gensim、Stanford NLP(Java)、Apache OpenNLP等,以及开源平台如Apache Mahout、Spark MLlib等。 12. **实际应用**:可能包括舆情...

Global site tag (gtag.js) - Google Analytics