НачатьНачать бесплатно

Применение модели к потоку данных

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

Вы будете использовать predict() для входящих сообщений, чтобы определить категорию. На основе результата предсказания вы примете решение: закрыть окна в доме или нет.

Напомним, что категория 1 означает хорошую погоду, а категория 0 — плохую, холодную.

Кроме того, конвейер возвращает массив предсказаний. Поскольку вы передали только один элемент, обращайтесь к первому элементу с помощью category[0].

Функция close_window() выполнит это за вас и дополнительно сохранит запись для дальнейшего изучения.

pandas в виде pd и json уже загружены в сессии, а модель доступна как pl.

Это упражнение является частью курса

Анализ данных Интернета вещей на Python

Посмотреть курс

Инструкции к упражнению

  • Преобразуйте словарь в DataFrame pandas с помощью DataFrame.from_records(), указав "timestamp" в качестве индекса и cols в качестве столбцов.
  • Определите категорию записи с помощью predict() из объекта конвейера и присвойте результат переменной category.
  • Вызовите close_window(), передав DataFrame df первым аргументом, а category — вторым.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

def model_subscribe(client, userdata, message):
    data = json.loads(message.payload)
    # Parse to DataFrame
    df = pd.____.____([data], index=____, columns=____)
    # Predict result
    category = ____
    if category[0] < 1:
        # Call business logic
        ____
    else:
        print("Nice Weather, nothing to do.")  

# Subscribe model_subscribe to MQTT Topic
subscribe.callback(model_subscribe, topic, hostname=MQTT_HOST)
Редактировать и запускать код