2011-07-18 38 views
2

我們試圖在Ruby中做樸素貝葉斯分類。Ruby中的樸素貝葉斯

目前我們使用的http://ai4r.rubyforge.org/

,我們不能把它用於浮點值工作,並與字符串值低約20個百分點的準確性。使用浮點數/整數我們得到一個[]沒有從零到整數的隱式轉換。我們用to_s轉換浮動。

有沒有辦法讓浮動值工作?如果不是什麼替代寶石ai4r的紅寶石或替代算法幼稚bayes?

回答

2

「...隱式轉換......」誤差由在需要的Integer上下文Ruby解釋器內的但nil被發現。

這是一個有點難以得到這個錯誤,但看到它的一個方法是:

Array.new(nil) 

...所以這可能是什麼在你的情況發生。

實際上,gems/ai4r-1.9/lib/ai4r/classifiers/naive_bayes.rb實際上確實使用了相當少見的Array.new(...)構造。

傳遞給Array.new()的值取決於從什麼#build_domains.

Ai4r::Data::DataSet回報我知道這不會解決你的問題,但也許這將幫助你分析進一步進行。