Ruby中的朴素贝叶斯

问题描述 投票:2回答:2

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

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

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

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

ruby artificial-intelligence naivebayes
2个回答
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.返回的内容

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


1
投票

我知道这个问题比较旧,但是我想为Naive Bayes分类指出一个更强大的Ruby gem:

https://github.com/oasic/nbayes

© www.soinside.com 2019 - 2024. All rights reserved.