시작하기무료로 시작하기

데이터 스트림에 모델 적용하기

이제 학습한 Machine Learning Pipeline을 스트리밍 데이터에 적용해, 값을 바로 분류해 보겠습니다.

들어오는 메시지에 대해 predict()를 사용해 범주를 결정할 거예요. 예측 결과에 따라 조치를 취하고, 집의 창문을 닫을지 말지 결정합니다.

참고로 category 1은 좋은 날씨, category 0은 나쁘고 추운 날씨를 의미합니다.

또한 파이프라인은 예측 결과를 배열로 반환합니다. 요소를 하나만 넘겼으므로 category[0]으로 첫 번째 요소에 접근해야 합니다.

close_window() 함수가 이 작업을 처리하며, 추가로 해당 기록을 나중에 분석할 수 있도록 로그로 남깁니다.

세션에는 pandaspd로, json이 미리 로드되어 있고, 모델은 pl로 제공됩니다.

이 연습은 강의의 일부입니다

Python으로 IoT 데이터 분석하기

강의 보기

연습 안내

  • 사전을 DataFrame.from_records()로 pandas DataFrame으로 변환하고, 인덱스는 "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)
코드 편집 및 실행