Пошаговое и полное руководство по созданию проекта машинного обучения

Задний план

Оставшийся срок полезного использования (RUL) относится к оставшемуся сроку службы, когда система может продолжать нормально работать после общей работы в течение определенного периода времени. С помощью RUL инженеры могут планировать время обслуживания, оптимизировать эффективность работы и избегать незапланированных простоев. Следовательно, прогнозирование RUL является основной задачей при планировании профилактического обслуживания.

На этом рисунке показана деградация машины с течением времени. Если A - текущее состояние, а B - минимально допустимое условие, при котором машина выйдет из строя, оставшийся срок службы рассчитывается как время между этими двумя точками. Если RUL оценивается заранее, его можно поддерживать или заменять, чтобы избежать незапланированных простоев и экономических потерь. Поскольку прогноз RUL важен для работы и принятия решений, очень важно его точно оценить.

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

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

Использование докера для извлечения демонстрационного образа

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

$ docker pull 4pdosc/openmldb_turbo_rul_demo:0.7.0

Запустить образ

Здесь мы выбираем команду bash для ее запуска

$ docker run -it 4pdosc/openmldb_turbo_rul_demo:0.7.0 bash

Перейдите в соответствующий каталог и инициализируйте среду.

Весь процесс инициализации включает установку OpenMLDB и соответствующей рабочей среды. Для сценария инициализации обратитесь к init. ш

$ cd rul && sh init.sh

Импортировать исторические данные в OpenMLDB

Исторические данные необходимы для расчета характеристик временных рядов с использованием OpenMLDB, поэтому мы импортируем исторические данные в OpenMLDB для вывода в реальном времени. Исторические данные могут использоваться для вывода признаков.

  1. Код импорта см. В import.py.
  2. Используйте `t est here_ Fd004. TXT `в качестве исторических данных, есть данные обнаружения нескольких циклов двигателя.
$ python3 import.py

Обучите модель

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

  1. Код сценария создания обучающих функций находится в train.p y
  2. Данные обучения: train_ Fd004. TXT `, который содержит данные обнаружения нескольких циклов двигателя.

Наконец, мы смогли сгенерировать модель.

$ python3 train.py ./fe.sql /tmp/model.txt

Использование модели обучения для построения HTTP-сервиса рассуждений в реальном времени

Основываясь на матрице функций обучения, созданной на предыдущем шаге, мы используем регрессор случайного леса для обучения. Полученная модель обучения в сочетании с историческими данными в OpenMLDB для построения службы рассуждений в реальном времени, а весь код службы вывода ссылается на pred_ server.py.

$ sh start_predict_server.sh ./fe.sql 9887 /tmp/model.txt

Затем мы могли бы отправить запрос на вывод через HTTP-запрос.

$ python3 predict.py

Наконец, результат прогноза можно распечатать

----------------ins---------------
         1     2      3       4    5    6    7
0  35.0033  0.84  100.0  449.44  0.0  0.0  0.0
---------------predict rul -------------
[321.26]
Congraduation! You have finished the task.
Your Key:b'kSpmZICy0kuTqgAPGC8TMCg/3HmnscIfJrESkOEekOpfcW6+oGnltUf9Vts='

В разделе ins выше показаны функции, рассчитанные с использованием OpenMLDB. Здесь функция, которую мы используем, упрощена. Вы можете прочитать файл fe.sql для получения информации о конкретных функциях;

Следующее RUL предсказания показывает результат предсказания, time_ in_ cycle, что означает, что двигатель может продолжать вращаться 321 раз.

С помощью базы данных вы можете завершить комплексное применение машинного обучения. Разве это не потрясающе!

Если вы хотите узнать больше, вы можете нажать: OpenMLDB

Архитектура