Scala Spark中的Kmeans算法,
最近我在spark中进行集群,我在spark中使用Kmeans集群来进行一些计算 我有一个数据集,就像这样: - 1,2,3,4 - 2,3,4,5 -1,2,4,5 现在我想对前三列进行聚类,如何才能在不丢失最后一列的情况下将前三列预测为一列,就像Scala Spark中的Kmeans算法,,scala,apache-spark,cluster-computing,Scala,Apache Spark,Cluster Computing,最近我在spark中进行集群,我在spark中使用Kmeans集群来进行一些计算 我有一个数据集,就像这样: - 1,2,3,4 - 2,3,4,5 -1,2,4,5 现在我想对前三列进行聚类,如何才能在不丢失最后一列的情况下将前三列预测为一列,就像 1,2,3,1,4 2,3,4,2,5 1,2,4,3,5 第四列是预测列 val kmeansData = model.transform(input) 上面的代码仅使用dataframe作为参数进行预测您可以在创建kmeans实例时指定用
- 1,2,3,1,4
- 2,3,4,2,5
- 1,2,4,3,5
val kmeansData = model.transform(input)
上面的代码仅使用dataframe作为参数进行预测您可以在创建
kmeans
实例时指定用于预测的列,如下所示:
val kmeans = new KMeans()
.setK(3)
.setFeaturesCol("features")
.setPredictionCol("prediction")
val model = kmeans.fit(trainingData)
val kmeansData = model.transform(vectoredInput)
由于集群(我认为,大多数Spark ML算法)使用的是Vector
类型的列,因此必须首先将三个单独的列组合成一个向量:
val cols = Array("1", "2", "3")
val assembler = new VectorAssembler().setInputCols(cols).setOutputCol("features")
val vectoredInput = assembler.transform(input)
您可以在此处找到更多详细信息:数据为(1,2,3,4)、(2,3,4,5)、(1,2,4,5)三行