【问题标题】:Spark ML- prediction in KMeansSpark ML- KMeans 中的预测
【发布时间】:2018-06-12 23:13:45
【问题描述】:

我使用 Spark ML 方法创建了一个 KMeans 模型。

val kmeans = new KMeans()
val model = kmeans.fit(df)

我准备好了模型。但是如何预测新数据点将落在哪个集群中。在 MLlib 中,model.predict(Vector) 预测新数据点的集群。我在模型上看到了transform 方法,但它不起作用。

【问题讨论】:

  • 你能详细说明什么是“不工作”吗?

标签: apache-spark k-means apache-spark-mllib apache-spark-ml


【解决方案1】:

感谢 Jacek Laskowski 澄清 Oli。它现在对我来说工作正常。这是一个简单的错误。下面是整个代码。

val conf = new SparkConf().setMaster("local").setAppName("ml Kmeans")
val spark = SparkSession.builder().config(conf).getOrCreate()
import spark.implicits._
val trainingData = spark.read.json(spark.sparkContext.wholeTextFiles("file:/home/iot/data/traingJson.json").values)
val parsedData = trainingData.select("value.humidity", "value.speed", "value.temperature", "value.vibration")
val assembler = new VectorAssembler().setInputCols(Array("humidity", "speed", "temperature", "vibration")).setOutputCol("features")
val df = assembler.transform(parsedData)
val kmeans = new KMeans()
val model = kmeans.fit(df)
model.write.save("file:/home/iot/data/model1")
//--------------------------------Testing the Model------------------------
val uploadModel=KMeansModel.load("file:/home/iot/data/model1")
val testData = spark.read.json(spark.sparkContext.wholeTextFiles("file:/home/iot/data/testJson.json").values).select("value.humidity", "value.speed", "value.temperature", "value.vibration")
 val assembler=new VectorAssembler().setInputCols(Array("humidity","speed","temperature","vibration")).setOutputCol("features")
 val df = assembler.transform(testData)
model.transform(df).show(false)

【讨论】:

    猜你喜欢
    • 2017-06-02
    • 1970-01-01
    • 2017-05-25
    • 1970-01-01
    • 2018-05-17
    • 2016-07-08
    • 2018-11-11
    • 2017-06-06
    • 1970-01-01
    相关资源
    最近更新 更多