apache-spark - 如何获取 Spark 朴素贝叶斯分类器中类的概率?

标签 apache-spark apache-spark-mllib naivebayes

我正在 Spark 中训练 NaiveBayesModel,但是当我使用它来预测新实例时,我需要获取每个类别的概率。我查看了 NaiveBayesModel 中预测函数的代码,得出以下代码:

val thetaMatrix = new DenseMatrix (model.labels.length,model.theta(0).length,model.theta.flatten,true)
val piVector = new DenseVector(model.pi)
//val prob = thetaMatrix.multiply(test.features)

val x = test.map {p =>       
  val prob = thetaMatrix.multiply(p.features)          
  BLAS.axpy(1.0, piVector, prob)
  prob
}

这可以正常工作吗? BLAS.axpy(1.0, piVector, prob) 行不断给我一个错误,提示找不到值“axpy”。

最佳答案

在最近的pull-request中它已添加到 Spark 主干并将在 Spark 1.5 中发布(结束 SPARK-4362 )。因此你可以打电话

def PredictProbabilities(testData: RDD[Vector]): RDD[Vector]

def PredictProbabilities(testData: Vector): Vector

关于apache-spark - 如何获取 Spark 朴素贝叶斯分类器中类的概率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31842502/

相关文章:

python - 如何查出准确率?

python - 如何在文本分类中使用朴素贝叶斯预测所需类别

scala - Spark 按列值分区数据集

apache-spark - 从平均序列预测下一个事件

java - 在 Java spark ml 中创建自定义转换器

python - 使用 Word2VecModel.transform() 在映射函数中不起作用

python - 三种朴素贝叶斯分类器的区别

python - PySpark:如何判断数据框的列类型

scala - 将稀疏特征向量分解为单独的列

scala - 如何使用spark在数据框中创建模式数组