gpt4 book ai didi

apache-spark - Spark 中 LogisticRegression 的 model.predictProbabilities()?

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

我正在运行一个多类(class) 逻辑回归(带LBFGS)使用 Spark 1.6。

给定 x 和可能的标签 {1.0,2.0,3.0}
最终模型将只有输出什么是最好的预测,比如 2.0 .

如果我有兴趣知道次好的预测是什么,请说 3.0 ,我怎么能检索到这些信息?

在 NaiveBayes 中,我将使用 model.predictProbabilities() 函数,该函数将为每个样本输出一个向量,其中包含每个可能结果的所有概率。

最佳答案

Spark中有两种逻辑回归方法:spark.mlspark.mllib .

使用 DataFrames,您可以使用 spark.ml :

import org.apache.spark
import sqlContext.implicits._

def p(label: Double, a: Double, b: Double) =
new spark.mllib.regression.LabeledPoint(
label, new spark.mllib.linalg.DenseVector(Array(a, b)))

val data = sc.parallelize(Seq(p(1.0, 0.0, 0.5), p(0.0, 0.5, 1.0)))
val df = data.toDF

val model = new spark.ml.classification.LogisticRegression().fit(df)
model.transform(df).show

您将获得原始预测和概率:
+-----+---------+--------------------+--------------------+----------+
|label| features| rawPrediction| probability|prediction|
+-----+---------+--------------------+--------------------+----------+
| 1.0|[0.0,0.5]|[-19.037302860930...|[5.39764620520461...| 1.0|
| 0.0|[0.5,1.0]|[18.9861466274786...|[0.99999999431904...| 0.0|
+-----+---------+--------------------+--------------------+----------+

对于 RDD,您可以使用 spark.mllib :
val model = new spark.mllib.classification.LogisticRegressionWithLBFGS().run(data)

该模型不公开原始预测和概率。你可以看看 predictPoint .它将向量相乘并选择具有最高预测的类。权重是可公开访问的,因此您可以复制该算法并保存预测,而不仅仅是返回最高的。

关于apache-spark - Spark 中 LogisticRegression 的 model.predictProbabilities()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35274512/

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