我刚刚使用VectorAssembler
来规范ML应用程序的功能。
def kmeansClustering ( k : Int ) : sql.DataFrame = {
val assembler = new VectorAssembler()
.setInputCols(this.listeOfName())
.setOutputCol("features")
val intermediaireDF = assembler
.transform(this.filterNumeric())
.select("features")
val kmeans = new KMeans().setK(k).setSeed(1L)
val model = kmeans.fit(intermediaireDF)
val predictions = model.transform(intermediaireDF)
return(predictions)
}
结果我得到了2个向量数据框:
+--------------------+----------+
| features|prediction|
+--------------------+----------+
|[-27.482279,153.0...| 0|
|[-27.47059,153.03...| 2|
|[-27.474531,153.0...| 3|
.................................
所以我想为每列执行avg和std按组的操作,但是这些功能是组合在一起的,因此无法对其进行操作。
我尝试使用org.apache.spark.ml.feature.VectorDisassembler
,但是没有用。
val disassembler = new VectorDisassembler().setInputCol("vectorCol")
disassembler.transform(df).show()
有什么建议吗?
答案 0 :(得分:0)
实际上,您不需要删除原始列即可执行集群。
<div class="a-checkbox a-checkbox-fancy s-navigation-checkbox">
<label>
<input type="checkbox" name="" value="" checked="">
<i class="a-icon a-icon-checkbox"></i>
<span class="a-label a-checkbox-label">
<span class="a-size-base a-color-base a-text-bold">Dell</span>
</span>
</label>
</div>
从那里,您可以计算所需的内容。