Реализация Наивного Байесового алгоритма в Java - Потребность некоторое руководство

Как Школьное присвоение я обязан реализовывать Наивный Байесов алгоритм, который я намереваюсь сделать в Java.

В попытке понять, как его сделанный, я прочитал книгу "Анализ данных - Практические Инструменты Машинного обучения и Методы", который имеет раздел по этой теме, но все еще не уверен на некоторых основных точках, которые блокируют мой успех.

Так как я ищу руководство не решение в здесь, я скажу Вам парней, что я думающий в моей голове, что я думаю, являюсь корректным подходом, и в ответ попросите исправление/руководство, которое будет очень цениться. обратите внимание на то, что я - абсолютный новичок на Наивном Байесовом алгоритме, Анализе данных и в общем программировании, таким образом, Вы могли бы видеть глупые комментарии/вычисления ниже:

Обучающий набор данных, который мне дают, имеет 4 атрибута/функции, которые являются числовыми и нормализованы (в диапазоне [0 1]) использование Weka (никакие отсутствующие значения) и один номинальный класс (да/нет)

1) Данные, прибывающие из файла CSV, являются числовыми СЛЕДОВАТЕЛЬНО

    *, Учитывая атрибуты являются числовыми, я использую PDF (функция плотности вероятности) формула.
      + Для вычисления PDF в Java, я сначала разделяю атрибуты на основе того, являются ли они в классе да или классом не и содержат их в другой массив (array class yes and array class no)
      + Затем вычислите среднее (sum of the values in row / number of values in that row) и стандартное предсказание для каждого из 4 атрибутов (столбцы) каждого класса
      + Теперь для нахождения PDF данного значения (n) я делаю (n-mean)^2/(2*SD^2),
      + Затем найти P( yes | E) и P( no | E) я multiply the PDF value of all 4 given attributes and compare which is larger, который указывает на класс, он принадлежит

В temrs Java я использую ArrayList of ArrayList и Double сохранить значения атрибута.

наконец я не уверен как к получить новые данные? Я должен попросить входной файл (как csv) или командная строка и попросить 4 значения?

Я остановлюсь здесь на данный момент (действительно имейте больше вопросов), но я волнуюсь, что это не получит ответов, данных сколько времени его полученный. Я буду действительно ценить для тех, которые дают их время, читая мои проблемы и комментарий.

7
задан Bill the Lizard 23 September 2012 в 01:58
поделиться

1 ответ

То, что вы делаете, почти правильно.

  + Затем, чтобы найти P (да | E) и P (нет | E), я умножаю значение PDF всех 4 заданных атрибутов и сравниваю, какой из них больше, что указывает на класс, к которому он принадлежит.

Здесь вы забыли умножить предыдущее P (да) или P (нет). Запомните формулы решения:

P(Yes | E) ~= P(Attr_1 | Yes) * P(Attr_2 | Yes) * P(Attr_3 | Yes) * P(Attr_4 | Yes) * P(Yes)

Для наивного Байеса (и любых других контролируемых алгоритмов обучения / классификации) вам необходимы данные обучения и данные тестирования. Вы используете обучающие данные для обучения модели и прогнозирования на основе данных тестирования. Вы можете просто использовать данные обучения в качестве данных тестирования. Или вы можете разделить CSV-файл на две части: одну для обучения, а другую - для тестирования. Вы также можете выполнить перекрестную проверку файла csv.

5
ответ дан 7 December 2019 в 12:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: