我们正在尝试在 Ruby 中进行朴素贝叶斯分类。
目前我们正在使用http://ai4r.rubyforge.org/
我们无法让它对浮点值起作用,并且对字符串值的准确度降低了大约 20%。使用浮点数/整数,我们得到一个 [] 无从 nil 到整数的隐式转换。我们用 to_s 转换浮点数。
有没有办法让浮点值工作?如果不是,对于红宝石的 ai4r 或朴素贝叶斯的替代算法有什么替代宝石?
我们正在尝试在 Ruby 中进行朴素贝叶斯分类。
目前我们正在使用http://ai4r.rubyforge.org/
我们无法让它对浮点值起作用,并且对字符串值的准确度降低了大约 20%。使用浮点数/整数,我们得到一个 [] 无从 nil 到整数的隐式转换。我们用 to_s 转换浮点数。
有没有办法让浮点值工作?如果不是,对于红宝石的 ai4r 或朴素贝叶斯的替代算法有什么替代宝石?
“ ...隐式转换...”错误来自 Ruby 解释器中的上下文,其中Integer
需要 a 但nil
找到了 a。
遇到此错误有点困难,但查看它的一种方法是:
Array.new(nil)
...所以这可能就是您的情况。
事实上,gems/ai4r-1.9/lib/ai4r/classifiers/naive_bayes.rb
确实使用了相当罕见的Array.new(...)
.
传递给 Array.new() 的值取决于Ai4r::Data::DataSet
返回的内容#build_domains.
我知道这并不能解决您的问题,但也许它会帮助您进一步进行分析。
我知道这个问题是一个较老的问题,但我想为朴素贝叶斯分类指出一个更强大的 Ruby gem: