Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark Scala Spark:按AUC分组计算_Apache Spark_Apache Spark Sql_Apache Spark Mllib_Apache Spark Ml - Fatal编程技术网

Apache spark Scala Spark:按AUC分组计算

Apache spark Scala Spark:按AUC分组计算,apache-spark,apache-spark-sql,apache-spark-mllib,apache-spark-ml,Apache Spark,Apache Spark Sql,Apache Spark Mllib,Apache Spark Ml,我试图使用scala API计算ROC下按关键字段分组的AUC区域,类似于以下问题: 不幸的是,我不能使用sklearn。我怎样才能继续 我们将使用sklearn/mllib中使用的相同方法,即。这是一种用来近似定积分的技术 这很简单,您可以在中找到相同的代码 def梯形点:Seq[双精度,双精度]:双精度={ requirepoints.length==2 val x=点.head val y=最后一个点 y、 _1-x._1*y._2+x._2/2.0 } def Area UnderCur

我试图使用scala API计算ROC下按关键字段分组的AUC区域,类似于以下问题:


不幸的是,我不能使用sklearn。我怎样才能继续

我们将使用sklearn/mllib中使用的相同方法,即。这是一种用来近似定积分的技术

这很简单,您可以在中找到相同的代码

def梯形点:Seq[双精度,双精度]:双精度={ requirepoints.length==2 val x=点.head val y=最后一个点 y、 _1-x._1*y._2+x._2/2.0 } def Area UnderCurveCurve:Iterable[双精度,双精度]:双精度={ 曲线到迭代器滑动2.带PartialFalse.aggregate0.0 seqop=auc:Double,点:Seq[Double,Double]=>auc+梯形点, combop=u+_ } val seq=Seq0.0,0.0,1.0,1.0,2.0,3.0,3.0,0.0 区域如下 //res77:Double=4.0 结果是预期的4.0

现在让我们将其应用于数据集。数据已按此处的键分组:

val数据=序列ID1,数组0.5,1.0,0.6,0.0,0.7,1.0,0.8,0.0,id2,数组0.5,1.0,0.6,0.0,0.7,1.0,0.8,0.3。toDFkey,值 案例类Recordkey:字符串,值:Seq[Double,Double] data.as[Record].mapr=>r.key,r.values,AreaUnderServer.values.show // +--+----------+----------+ // | _1| _2| _3| // +--+----------+----------+ //| id1 |[0.5,1.0],[0.6…| 0.1500000000000002| //| id2 |[0.5,1.0],[0.6…| 0.16500000000000004| // +--+----------+----------+
我希望这能有所帮助。

非常感谢。此外,我理解阅读源代码的重要性code@nick_liu学习框架的最好方法是阅读它的源代码。