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

Posted

技术标签:

【中文标题】Spark ML 朴素贝叶斯类值到概率索引映射【英文标题】:Spark ML naive bayes class value to probability index mapping 【发布时间】:2016-11-30 06:19:30 【问题描述】:

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

我正在使用 Spark ML 包,并且在运行朴素贝叶斯获得正确的概率结果后,但没有找到将特定类值与概率索引映射的方法(不是通过查看结果,我知道哪个索引指向哪个类值来自标签列,但我想要一种编程方式,有什么办法吗,在其中一个文档中我发现标签 col 中出现最多的类将具有索引 0 等等,但是如果多个类将具有相同的出现次数怎么办)

【问题讨论】:

【参考方案1】:

一种方法:

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

probabilityIndex 就是你要找的

【讨论】:

以上是关于Spark ML 朴素贝叶斯类值到概率索引映射的主要内容,如果未能解决你的问题,请参考以下文章

scikit-learn 朴素贝叶斯类库使用小结

Python从0实现朴素贝叶斯分类器

ML—朴素贝叶斯

spark ml 2.0 - 朴素贝叶斯 - 如何确定每个类的阈值

Java 朴素贝叶斯分类器评估

大数据:Spark mlib Naive bayes朴素贝叶斯分类之多元朴素贝叶斯源码分析