开发者社区> 问答> 正文

Spark Scala - ML - Kmeans聚类预测列

社区小助手 2018-12-21 11:01:26 551

我想在我的数据集中使用Kmeans算法后在我的数据集中添加预测列,我不知道如何实现这一点。下面是我到目前为止使用的代码(摘自spark文档)

case class MyCase(sId: Int, tId:Int, label:Double, sAuthors:String, sYear:Int, sJournal:String,
tAuthors:String, tYear:Int,tJournal:String, yearDiff:Int,nCommonAuthors:Int,isSelfCitation:Boolean

          ,isSameJournal:Boolean,cosSimTFIDF:Double,sInDegrees:Int,sNeighbors:Array[Long],tInDegrees:Int ,tNeighbors:Array[Long],inDegreesDiff:Int,commonNeighbors:Int,jaccardCoefficient:Double)

val men = Encoders.product[MyCase]

val ds: Dataset[MyCase] = transformedTrainingSetDF.as(men)

//KMEANS
val numOfClusters = 2
val kmeans = new KMeans().setK(numOfClusters).setSeed(1L)
val model = kmeans.fit(ds)
// Evaluate clustering by computing Within Set Sum of Squared Errors.
val WSSSE = model.computeCost(ds)
println(s"Within Set Sum of Squared Errors = $WSSSE")
// Shows the result.
println("Cluster Centers: ")
model.clusterCenters.foreach(println)

分布式计算 算法 数据挖掘 Scala Spark
分享到
取消 提交回答
全部回答(1)
  • 社区小助手
    2019-07-17 23:23:18

    使用KMeansModel.transform:

    def transform(dataset: Dataset[_]): DataFrame
    转换输入数据集。

    model.transform(ds)

    0 0
+ 订阅

大数据计算实践乐园,近距离学习前沿技术

推荐文章
相似问题