2016-07-26 79 views
1

問題聽起來很明顯,但我已經做了大量的搜索以找到答案,但卻無法獲得完整的證明解決方案。Spark ML樸素貝葉斯分類值到概率指數映射

我正在使用Spark ML包,運行後樸素貝葉斯得到適當的結果的概率,但沒有找到一種方法來映射一個特定的類值與概率索引(不看看結果我知道哪個索引指向哪個類標籤列的值,但我想要一個程序化的方式,有沒有什麼辦法,在一個文件中,我發現標籤col中的類最常出現索引0等,但如果多個類將具有相同數量的occurence)

enter image description here

回答

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 

probabilityIndex是你在找什麼