如何获得 Spark Naive Bayes 分类器中类的概率?
Posted
技术标签:
【中文标题】如何获得 Spark Naive Bayes 分类器中类的概率?【英文标题】:How to get the probabilities of classes in Spark Naive Bayes classifier? 【发布时间】: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 计算概率 【参考方案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 中实现此功能的提示?以上是关于如何获得 Spark Naive Bayes 分类器中类的概率?的主要内容,如果未能解决你的问题,请参考以下文章
Spark MLlib 源码学习---朴素贝叶斯模型(Naive Bayes)
Spark MLlib 源码学习---朴素贝叶斯模型(Naive Bayes)
Spark MLlib 源码学习---朴素贝叶斯模型(Naive Bayes)
Spark MLlib 源码学习---朴素贝叶斯模型(Naive Bayes)