2

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

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

我们无法让它对浮点值起作用,并且对字符串值的准确度降低了大约 20%。使用浮点数/整数,我们得到一个 [] 无从 nil 到整数的隐式转换。我们用 to_s 转换浮点数。

有没有办法让浮点值工作?如果不是,对于红宝石的 ai4r 或朴素贝叶斯的替代算法有什么替代宝石?

4

2 回答 2

2

...隐式转换...”错误来自 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.

我知道这并不能解决您的问题,但也许它会帮助您进一步进行分析。

于 2011-07-18T04:56:51.737 回答
1

我知道这个问题是一个较老的问题,但我想为朴素贝叶斯分类指出一个更强大的 Ruby gem:

https://github.com/oasic/nbayes

于 2012-06-27T03:20:48.033 回答