Я пытаюсь использовать добавленный в лес (или дерево) классификатор Байеса (Оригинальное введение, Обучение) в python
(предпочтительно python 3, но python 2 также будет приемлемым), сначала изучив его (как структуру, так и процесс обучения), а затем используя его для дискретной классификации и получения вероятностей для тех функций с отсутствующими данными. (Вот почему просто дискретная классификация и даже хорошие наивные классификаторы мне не очень полезны.)
Как поступают мои данные, я бы хотел использовать инкрементное обучение из неполных данных, но я даже не нашел ничего, что делало бы это в литературе, так что все, что делает структуру и параметрическое обучение и вывод вообще это хороший ответ.
Похоже, что есть несколько очень отдельных и незавершенных пакетов python, которые идут примерно в этом направлении, но я не видел ничего, что было бы умеренно недавним (например, я ожидал бы, что использование pandas
для этих вычислений будет разумно, но OpenBayes
едва использует numpy
), и расширенные классификаторы кажутся совершенно отсутствующими из всего, что я видел.
Итак, где я должен искать, чтобы спасти меня, какую-то работу по внедрению расширенного леса Байеса? Есть ли хорошая реализация алгоритма передачи сообщений Pearl в классе python, или это будет неуместно для расширенного классификатора Байеса? Есть ли читаемая объектно-ориентированная реализация для изучения и вывода классификаторов TAN Bayes на каком-то другом языке, который можно перевести на python?
Существующие пакеты, которые я знаю, но найдены неуместными,
-
milk
, который поддерживает классификацию, но не с байесовскими классификаторами (и я defitinetly нуждаются в вероятности для классификации и неопределенных функций) -
pebl
, который только структурирует обучение -
scikit-learn
, который узнает только наивные классификаторы Байеса. -
OpenBayes
, который только немного изменился, поскольку кто-то портировал его сnumarray
наnumpy
, а документация пренебрежимо мала. -
libpgm
, который утверждает, что поддерживает даже другой набор вещей. Согласно основной документации, это вывод, структура и изучение параметров. Кроме того, нет никаких методов для точного вывода. - Reverend утверждает, что является "байесовским классификатором", имеет незначительную документацию и, глядя на исходный код, я приведу к выводу, что это в основном классификатор спама, в соответствии с Робинсоном и аналогичными методами, а не байесовский классификатор.
- eBay
bayesian
Belief Networks позволяет создавать общие байесовские сети и реализовывать на них вывод (как точный, так и приблизительный), что означает, что его можно использовать для построения TAN, но там нет алгоритма обучения, а способ создания BN из функций означает, что внедрение параметров обучения сложнее, чем может быть для гипотетической различной реализации.