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