首页 > 解决方案 > 如何在pyspark中获得模型的预测

问题描述

我已经使用 pyspark 开发了一个聚类模型,我只想预测一个向量的类别,这是代码

spark = SparkSession.builder.config("spark.sql.warehouse.dir", 
            "file:///C:/temp").appName("Kmeans").getOrCreate()
 vecAssembler = VectorAssembler(inputCols=FEATURES_COL, outputCol="features")
 df_kmeans = vecAssembler.transform(df).select('LCLid', 'features')
 k = 6
 kmeans = KMeans().setK(k).setSeed(1).setFeaturesCol("features")
 model = kmeans.fit(df_kmeans)
 centers = model.clusterCenters()
 predictions = model.transform(df_kmeans)
 transformed = model.transform(df_kmeans).select('LCLid', 'prediction')
 rows = transformed.collect()

说我有一个特征向量 V 并且我想预测它属于哪个类我尝试了我在此链接http://web.cs.ucla.edu/~zhoudiyu/tutorial/中找到的一种方法, 但它没有t 工作,因为我正在使用 SparkSession 而不是在 sparkContext 中

标签: pysparkk-meansprediction

解决方案


predict您可以使用 Spark ML Vector调用 kmeans 模型的方法:

from pyspark.ml.linalg import Vectors

model.predict(Vectors.dense([1,0]))

这里[1,0]只是一个例子。它应该与您的特征向量具有相同的长度。


推荐阅读