Я хочу изучить модель Naive Bayes для проблемы, когда класс является логическим (принимает одно из двух значений). Некоторые из функций являются логическими, но другие функции категоричны и могут принимать небольшое количество значений (~ 5).
Если все мои функции были логическими, тогда я хотел бы использовать sklearn.naive_bayes.BernoulliNB
. Кажется очевидным, что sklearn.naive_bayes.MultinomialNB
не то, что я хочу.
Одним из решений является разделение моих категориальных функций на логические функции. Например, если переменная "X" принимает значения "красный", "зеленый", "синий", у меня могут быть три переменные: "X красный", "X зеленый", "X - синий". Это нарушает предположение об условной независимости переменных, заданных классом, поэтому кажется совершенно неуместным.
Другая возможность заключается в том, чтобы кодировать переменную как действительную переменную, где 0.0 означает красный, 1.0 означает зеленый, а 2.0 означает синий. Это также кажется совершенно неуместным использовать GaussianNB (по понятным причинам).
То, что я пытаюсь сделать, не кажется странным, но я не понимаю, как вставить его в модели Naive Bayes, которые дает мне sklearn. Легко кодировать себя, но я предпочитаю использовать sklearn, если возможно, по понятным причинам (большинство: чтобы избежать ошибок).
[Изменить, чтобы объяснить, почему я не думаю, что многочленный NB - это то, что я хочу]:
Я понимаю, что в многочленном NB вектор признаков состоит из отсчетов, сколько раз токен наблюдался в образцах k
iid.
Я понимаю, что это подходит для документа классификации, где есть базовый класс документа, и тогда каждое слово в документе предполагается нарисованным из категориального распределения, специфичного для этого класса. У документа будет k
токенов, вектор функций будет иметь длину, равную размеру словаря, а сумма счетчиков функций будет равна k
.
В моем случае у меня есть несколько переменных bernoulli, плюс пара категориальных. Но здесь нет понятия "графы".
Пример: классы - это люди, которые любят или не любят математику. Предикторы являются главными колледжами (категоричны) и идут ли они в аспирантуру (boolean).
Я не думаю, что это соответствует многочлену, потому что здесь нет счетов.