我们正试图在Ruby中进行朴素的贝叶斯分类。
目前我们正在使用http://ai4r.rubyforge.org/
我们无法使其适用于浮点值,并且使用字符串值可以降低约20%的精度。使用float /整数,我们得到一个[]没有从nil到整数的隐式转换。我们用to_s转换浮点数。
有没有办法让浮动值有效?如果不是什么是ai4r的替代宝石用于红宝石或替代算法的天真贝叶斯?
“...隐式转换......”错误来自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.
返回的内容
我知道这不能解决您的问题,但它可能会帮助您进一步分析。
我知道这个问题比较旧,但是我想为Naive Bayes分类指出一个更强大的Ruby gem: