【问题标题】:How to get the probabilities of classes in Spark Naive Bayes classifier?如何获得 Spark Naive Bayes 分类器中类的概率?
【发布时间】:2015-10-28 19:39:28
【问题描述】:

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

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'。

【问题讨论】:

  • 或者有什么方法可以使用 pi 和 theta 计算概率

标签: apache-spark apache-spark-mllib naivebayes


【解决方案1】:

在最近的 pull-request 中,它被添加到 Spark 主干中,并将在 Spark 1.5 中发布(关闭 SPARK-4362)。因此,您可以调用

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

def predictProbabilities(testData: Vector): Vector

【讨论】:

  • 嗨。我也面临同样的问题。但是,我无法升级到 Spark 1.5。我必须坚持使用 Spark 1.1.0。您能否提供一些关于如何在 Spark 1.1.0 中实现此功能的提示?
猜你喜欢
  • 2014-06-18
  • 2018-08-28
  • 2014-04-08
  • 1970-01-01
  • 2019-10-25
  • 2016-06-28
  • 2014-10-24
  • 2015-03-31
  • 2020-10-09
相关资源
最近更新 更多