Можно ли извлечь формулы из обученных моделей машинного обучения в Python? - PullRequest
0 голосов
/ 27 мая 2018

В моем проекте я должен использовать классификаторы для прогнозирования одного из 8 классов в зависимости от 6 входных значений.Я должен сравнить все контролируемые учебные классы на устройстве, которое работает только на C ++.Поэтому я использую python для обучения / подгонки моделей машинного обучения, но мне нужно выяснить окончательную формулу для каждого классификатора, чтобы запустить его на C ++.Есть ли способ получить эти формулы / код из модели?

Используемые алгоритмы машинного обучения:

  1. Машины опорных векторов
  2. Наивный Байес
  3. Линейная регрессия
  4. Линейный дискриминантный анализ
  5. Деревья решений
  6. K-алгоритм ближайшего соседа
  7. Логистическая регрессия
  8. Нейронные сети
  9. Алгоритмы повышения градиента
  10. Случайный лес.

1 Ответ

0 голосов
/ 23 июня 2018

Не существует общего механизма для преобразования модели машинного обучения Python в код C ++, так как для кода Python требуется полная реализация во время выполнения.

Мне также нужно было запускать классификаторы на низкихвстроенные устройства питания / микроконтроллеры.И начали реализовывать некоторые из перечисленных вами алгоритмов во встроенном дружественном Си, основываясь на моделях, обученных по scikit-learn.

  • Наивный Байес: embayes
  • СлучайноЛеса / деревья решений: emtrees .В конце концов также деревья с градиентным усилением (XGBoost, LightGBM).

Существуют и другие доступные проекты для встроенных классификаторов:

  • Нейронные сети. uTensor позволяет запускать модели TensorFlow Lite на ARM Cortex с использованием CMSIS-NN.
  • K-ближайший сосед (kNN).Классический kNN очень прост в реализации.Но поскольку в нем хранятся все обучающие образцы, размер модели обычно проблематичен для встроенных устройств.Было предложено много альтернатив, например ProtoNN .Реализовано в ELL

Для других алгоритмов вы можете найти различные реализации C / C ++, но большинство предназначены для использования с операционной системой (например, Linux).В зависимости от того, насколько ограничено ваше устройство, можно использовать их повторно.Тогда вам нужно только реализовать экспорт модели из Python и импорт модели в библиотеку C ++.

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