为了账号安全,请及时绑定邮箱和手机立即绑定

PySpark:属性错误:“管道模型”对象没有属性“群集中心”

PySpark:属性错误:“管道模型”对象没有属性“群集中心”

湖上湖 2022-08-11 20:11:09
我用Pypsark创建了一个kmeans算法。现在,我还想提取集群中心。如何将其包含在管道中?这是我到目前为止拥有的代码,但它给我带来了一个错误“AttributeError:'PipelineModel'对象没有属性'clusterCenters'。如何修复?#### model K-Means ###from pyspark.ml.clustering import KMeans, KMeansModelkmeans = KMeans() \          .setK(3) \          .setFeaturesCol("scaledFeatures")\          .setPredictionCol("cluster")# Chain indexer and tree in a Pipelinepipeline = Pipeline(stages=[kmeans])model = pipeline.fit(matrix_normalized)cluster = model.transform(matrix_normalized)#get cluster centerscenters = model.clusterCenters()
查看完整描述

1 回答

?
aluckdog

TA贡献1847条经验 获得超7个赞

虚拟数据


from pyspark.ml.linalg import Vectors

from pyspark.ml.clustering import KMeans, KMeansModel

from pyspark.ml.pipeline import Pipeline



data = [(Vectors.dense([0.0, 0.0]),), (Vectors.dense([1.0, 1.0]),),

        (Vectors.dense([9.0, 8.0]),), (Vectors.dense([8.0, 9.0]),)]

matrix_normalized = spark.createDataFrame(data, ["scaledFeatures"])

您的代码


kmeans = KMeans() \

          .setK(3) \

          .setFeaturesCol("scaledFeatures")\

          .setPredictionCol("cluster")


# Chain indexer and tree in a Pipeline

pipeline = Pipeline(stages=[kmeans])


model = pipeline.fit(matrix_normalized)


cluster = model.transform(matrix_normalized)

只需更改最后一行


model.stages[0].clusterCenters()


[array([0.5, 0.5]), array([8., 9.]), array([9., 8.])]


查看完整回答
反对 回复 2022-08-11
  • 1 回答
  • 0 关注
  • 77 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信