gpt4 book ai didi

scala - 使用 Scala 转换 LabeledPoint 中 Vector 的 RDD - Apache Spark 中的 MLLib

转载 作者:行者123 更新时间:2023-12-04 15:57:30 24 4
gpt4 key购买 nike

我正在使用 Apache-Spark 和 Scala 的 MLlib。我需要转换一组 Vector

import org.apache.spark.mllib.linalg.{Vector, Vectors}    
import org.apache.spark.mllib.regression.LabeledPoint

在 LabeledPoint 中以应用 MLLib 的算法
每个向量由 0.0 (false) 或 1.0 (true) 的 Double 值组成。
所有的向量都保存在一个 RDD 中,所以最终的 RDD 是
    val data_tmp: org.apache.spark.rdd.RDD[org.apache.spark.mllib.linalg.Vector]      

所以,在 RDD 中有向量创建
 def createArray(values: List[String]) : Vector =
{
var arr : Array[Double] = new Array[Double](tags_table.size)
tags_table.foreach(x => arr(x._2) = if (values.contains(x._1)) 1.0 else 0.0 )
val dv: Vector = Vectors.dense(arr)
return dv

}
/*each element of result is a List[String]*/
val data_tmp=result.map(x=> createArray(x._2))
val data: RowMatrix = new RowMatrix(data_tmp)

我如何从这个 RDD (data_tmp) 或从 RowMatrix (data) 创建一个用于使用 MLLib 算法的 LabeledPoint 集?
例如,我需要应用 SVM 线性算法显示 here

最佳答案

我找到了解决方案:

    def createArray(values: List[String]) : Vector =
{
var arr : Array[Double] = new Array[Double](tags_table.size)
tags_table.foreach(x => arr(x._2) = if (values.contains(x._1)) 1.0 else 0.0 )
val dv: Vector = Vectors.dense(arr)
return dv

}
val data_tmp=result.map(x=> createArray(x._2))
val parsedData = data_tmp.map { line => LabeledPoint(1.0,line) }

关于scala - 使用 Scala 转换 LabeledPoint 中 Vector 的 RDD - Apache Spark 中的 MLLib,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26829762/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com