Ruby中的朴素贝叶斯

时间:2011-07-18 04:16:58

标签: ruby artificial-intelligence naivebayes

我们正试图在Ruby中进行朴素的贝叶斯分类。

目前我们正在使用http://ai4r.rubyforge.org/

我们无法使其适用于浮点值,并且字符串值的准确度降低约20%。使用float /整数,我们得到一个[]没有从nil到整数的隐式转换。我们用to_s转换浮点数。

有没有办法让浮动值有效?如果没有什么是ai4r的替代宝石用于红宝石或替代算法的天真贝叶斯?

2 个答案:

答案 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宝石:

https://github.com/oasic/nbayes