我已经使用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/中找到的方法,但它没有无法正常工作,因为我不在SparkContext中使用SparkSession
我看到您已经完成了模型创建中最基本的步骤,您仍然需要在要进行聚类的向量上应用k-means模型(例如您在第10行所做的操作),然后获得预测,我的意思是,您要做的是重新做第10行中所做的相同工作,但要对功能V的新向量进行重新理解。为了进一步了解这一点,我邀请您阅读StackOveflow中的已发布答案:PySpark中的KMeans聚类。我还想补充一点,您所关注的示例中的问题不是由于使用SparkSession或SparkContext引起的,因为这些只是Spark API的入口点,您还可以通过sparkSession访问sparContext,因为它自Spark 2.0起由Databricks统一。pyspark k-means就像Scikit一样,唯一的区别是spark python API(PySpark)中的预定义函数。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句