【问题标题】:how to get Kmeans cluster data with Spark Kmeans model如何使用 Spark Kmeans 模型获取 Kmeans 集群数据
【发布时间】:2016-11-09 03:34:45
【问题描述】:

我正在使用 Spark ML 对 600 万条记录进行 Kmeans 聚类,我使用以下代码获取 Kmeans 模型:

val model = KMeans.train(parsedData, 3, 8)

我将聚类中心数设置为3。使用以下代码,我可以通过以下代码获得3个聚类中心:

model.clusterCenters.foreach{println} 

我的问题是如何获得真实的组数据,我想 Spark 应该输出 3 个组的 600 万个真实数据。

请进一步提问:上述任务用于聚类文本文档。所以我将文本文档转移到浮点向量。 Spark 只输出浮点向量,但我想直接获取原始文本文档,请问有什么想法吗? 例如: 我的文件如下:

doc1: {the book is good}
doc2: {the weather is sunny}
doc3: {rain is coming}

我将上述文本文件传输到浮点向量,如下所示用于输入 Spark ML:

doc1:{0.2,0.3,0.5,1.5,0.0,0.0,0.0,0.0}
doc1:{0.2,0.0,0.5,0.0,0.8,0.0,0.0,0.0}
doc1:{0.0,0.3,0.0,0.0,0.8,0.0,0.0,0.9}

所以我希望Spark可以直接输出聚集的原始文本文档而不是浮点向量。

【问题讨论】:

    标签: apache-spark machine-learning


    【解决方案1】:

    只需mappredict

    parsedData.map(p => (model.predict(p), p))
    

    要获取原始文档,您可以尝试zip 方法,只要数据没有被重新排序(打乱)否则:

    model.predict(parsedData).zip(rawDocuments)
    

    【讨论】:

      猜你喜欢
      • 2017-05-25
      • 2016-07-08
      • 2023-03-22
      • 2017-06-01
      • 2017-07-28
      • 2019-04-04
      • 2020-05-15
      • 2013-07-15
      相关资源
      最近更新 更多