Набор инструментов для графического и вероятностного моделирования на Python: гранат

машинное обучение Информация

из GitHub

Сборник "Сердце машины"

Участие: Лу Сюэ

Недавно авторы гранаты объявили о выпуске новой версии граната v0.9.0. В новой версии представлены изменения в подборе модели, структурированном обучении и процессах логического вывода для таких моделей, как распределения вероятностей, k-средние, смешанные модели, скрытые марковские модели, байесовские сети, наивные байесовские/байесовские классификаторы и т. д. пропущенные значения в данных.

  • Адрес документа: http://pomegranate.readthedocs.io/en/latest/

  • Адрес GitHub: https://github.com/jmschrei/pomegranate

Новая версия фокусируется на обработке отсутствующих значений, тогда как наш обычный подход заключается в сборе достаточного количества данных только из наблюдений и исключении или присвоении аналогичных значений вместо отсутствующих значений. Но гранат v0.9.0 даст лучшие результаты, чем обычные простые методы заполнения. Авторы также объявили, что метод обработки отсутствующих значений для всех вероятностных графических моделей был отлажен, хотя некоторые проблемы, возможно, необходимо исправить.

Исправления, сделанные в гранате v0.9.0:

  • Добавлена ​​документация для раздела «Отсутствующие значения».

  • Добавлено расширенное руководство по обработке отсутствующих значений.

  • Добавлены некоторые функции, о которых автор упоминал в выступлении ODSC west 2017.

Модульная природа граната означает, что теперь вы можете комбинировать поддержку отсутствующих значений с другими функциями. Например, вы можете легко добавить многопоточность, чтобы ускорить вашу модель, или внешнее обучение с неполными наборами данных, или частично контролируемое обучение с неполными данными и метками.

Скопируйте этот репозиторий GitHub или запустите pip install pomegranate, чтобы установить pomegranate. Это обновление действительно очень полезно разработчикам для работы с более сложными вероятностными графическими моделями, и его внимание к обработке пропущенных значений также лучше, чем общий наивный подход. Поскольку это обновление настолько искреннее, а рекомендуемая им обработка отсутствующих значений также очень эффективна, что же такое гранат? Ниже мы кратко представим характеристики граната, метод установки и исследовательскую работу системы.

Знакомство с гранатом

pomegranate — это набор инструментов для создания графических и вероятностных моделей на основе Python, реализованный в Cython для ускорения реакции. Он является производным от YAHMM и обеспечивает быстрые, эффективные и чрезвычайно гибкие вероятностные модели, такие как распределения вероятностей, байесовские сети, гибридные скрытые марковские модели и многое другое. Самый базовый уровень вероятностного моделирования — это простое распределение вероятностей. Возьмем в качестве примера языковое моделирование. Распределение вероятностей — это распределение частоты появления каждого слова, произнесенного человеком.

1. Распределение вероятностей

Второй уровень представляет собой вероятностную модель, в которой простые распределения используются более сложным образом. Цепи Маркова могут расширять простые распределения вероятностей, по-прежнему взяв в качестве примера языковое моделирование, где вероятность слова зависит от ранее произнесенного слова. Вероятность слова в скрытой марковской модели зависит от латентного/скрытого состояния предыдущего слова, например, существительные обычно следуют за прилагательными.

  • Цепь Маркова

  • Байесовские классификаторы и наивный байесовский анализ

  • Общая смешанная модель

  • Скрытая марковская модель

  • Байесовская сеть

  • факторный график

Третий уровень представляет собой набор вероятностных моделей, которые могут моделировать более сложные явления. Если одна скрытая марковская модель может фиксировать акценты (например, чью-то речь), то гибридные скрытые марковские модели могут адаптировать ее к конкретной ситуации. Например, человек может использовать более формальный язык на работе и чуть более непринужденный язык при общении с друзьями. Смоделировав его как смешанную скрытую марковскую модель, мы представляем язык человека как «смесь» различных акцентов.

1. GMM-HMMs

2. Смешанные модели

3. Байесовский классификатор для модели

2. Установка

требования зависимости граната:

- Cython (only if building from source)
- NumPy
- SciPy
- NetworkX
- joblibскопировать код

Перед запуском тестов также установите Nose.

установка пипа:

pip install pomegranateскопировать код

установка конды:

conda install pomegranateскопировать код

Компилятор C++ не требуется, версия Wheels для быстрой установки для Windows уже собрана.

3. Проверьте установку

Настройка завершена, теперь пришло время проверить, доступен ли гранат:

$ python -c 'from pomegranate import *; print(NormalDistribution(0, 1).probability(0))'
0.398942280402скопировать код

Если вы не видите приведенный выше вывод или столкнулись с другими ошибками, отправьте сообщение о проблеме на https://github.com/jmschrei/pomegranate/issues. Кроме того, для получения подробных руководств по использованию ознакомьтесь с папкой учебников, которая содержит несколько руководств по эффективному использованию граната.

Диссертация: гранат: быстрое и гибкое вероятностное моделирование в питоне

Адрес статьи: https://arxiv.org/pdf/1711.00137.pdf

Аннотация: В этой статье представлен pomegranate, пакет машинного обучения с открытым исходным кодом для вероятностных моделей в Python. Вероятностное моделирование включает в себя ряд методов, явно описывающих неопределенность с использованием вероятностных распределений. Три широко используемые вероятностные модели, реализованные в гранате, — это обычные смешанные модели, скрытые марковские модели и байесовские модели. Основное внимание в гранате уделяется тому, чтобы абстрагировать сложность модели обучения от ее определения, позволяя пользователям сосредоточиться на выборе правильной модели для своего приложения, не ограничиваясь плохим пониманием лежащих в основе алгоритмов. Этот фокус граната включает в себя сбор достаточной статистики из наборов данных в качестве стратегии для обучения моделей. Этот метод использует много полезных стратегий обучения, таких как Внешнее обучение, мини-пакетное обучение и частично контролируемое обучение — пользователям не нужно думать о том, как разделить данные или изменить алгоритм, алгоритм выполняет эти задачи самостоятельно. Построенный на Cython для ускорения вычислений и со встроенными многопоточными методами параллельной обработки, pomegranate может соответствовать или даже превосходить другие реализации подобных алгоритмов. В этой статье представлен обзор того, как спроектирован Pomegranate и как поддерживать сложную функциональность с помощью простого кода.

Эта статья составлена ​​для сердца машины,Для перепечатки, пожалуйста, свяжитесь с этим официальным аккаунтом для авторизации .

✄------------------------------------------------

Присоединяйтесь к сердцу машины (штатный репортер/стажер): hr@jiqizhixin.com

Внесите свой вклад или запросите освещение: content@jiqizhixin.com

Реклама и деловое сотрудничество: bd@jiqizhixin.com