Spark ML朴素贝叶斯类值到概率索引映射

时间:2016-07-26 14:27:35

标签: apache-spark machine-learning naivebayes

问题可能听起来非常明显,但我已经做了很多搜索以找到答案,但却无法获得完整的证明解决方案。

我正在使用Spark ML包并在运行Naive Bayes后获得适当的概率结果,但没有找到一种方法用概率索引映射特定的类值(不是通过查看结果我知道哪个索引指向哪个类值从标签栏,但我想要一个程序化的方式,有什么办法,在我找到的标签col中的类中最常出现的类将有索引0等等,但是如果多个类具有相同的出现次数怎么办? )

enter image description here

1 个答案:

答案 0 :(得分:0)

一种方法:

val firstResult = resultsDataFrame.select($"probability", $"prediction").first()
val probabilityVector = firstResult(0).asInstanceOf[Vector]
val prediction = firstResult(1).asInstanceOf[Double]
val probabilityIndex = if ((probabilityVector(0) < 0.5 && prediction == 0) || (probabilityVector(0) > 0.5 && prediction == 1)) 0 else 1

概率指数是您正在寻找的