Наивный байесовский в рубине - PullRequest
2 голосов
/ 18 июля 2011

Мы пытаемся сделать наивную байесовскую классификацию в Ruby.

В настоящее время мы используем http://ai4r.rubyforge.org/

Нам не удалось заставить его работать для значений с плавающей запятой, и точность строковых значений была на 20% ниже. С помощью чисел с плавающей точкой / целых чисел мы получаем [] неявное преобразование из nil в целое число. Мы конвертируем поплавки с to_s.

Есть ли способ заставить работать значения с плавающей запятой? Если нет, то каковы альтернативные гемы ai4r для рубина или альтернативные алгоритмы наивным байесам?

Ответы [ 2 ]

2 голосов
/ 18 июля 2011

Ошибка "... неявное преобразование ..." исходит из интерпретатора 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 голос
/ 27 июня 2012

Я знаю, что этот вопрос более старый, но я хотел бы отметить более надежный рубиновый драгоценный камень для классификации Наивного Байеса:

https://github.com/oasic/nbayes

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...