IoTセンサーでの機械学習の応用

IoTセンサーでの機械学習の応用

  • Norbert Krupa
    Norbert has over 10 years’ experience in the data space working in different industries and various roles; from business intelligence to database administration, consulting as well as architecting high volume, distributed systems.

リアルタイムストリーミングIoT(モノのインターネット)のデータの分析に関するデモをすでにご覧になっている方は、ユーザーアクティビティを予測するために分類モデルをどのように訓練したのか疑問を持ったのではないでしょうか。ここでは、最初にデモの背景、そしてデータの分類方法を説明し、最後に適切なモデルの選択について検討していきます。

背景

IoTデモの目的は、Talendのリアルタイムストリーミングと機械学習の機能を実証することです。つまり、Talendは携帯電話から加速度センサーデータをリアルタイムで受信し、データをメッセージキューにプッシュし、分析のためにデータを分類するための機械学習を実行します。これはすべて、ハンドコーディングなしで実行されます。

処理側では、Talendを使用してRESTエンドポイントが作成され、そこにセンサーデータが送信されます。センサーデータは解析され、メッセージキュー(Kafka)にプッシュされます。データがメッセージキューに格納されると、Talend Big Data Streamingのジョブがスライディングウィンドウを使用してキューからメッセージを読み取り、機械学習モデルにデータを渡し、視覚化のためにデータを準備します。

データの表示

処理中のデータは、モバイルデバイスの加速度センサーから取得されます。より具体的には、X、Y、Z軸の線形加速度を処理しています。センサーデータのグラフから簡便な分析を実行するだけで、次のようなデータが表示されます。

各軸の加速度は、m/s2でグラフ化されています。アクティビティには、それぞれ低、中、高の3つのフェーズがあることを視覚的に推測できます。これを機械学習モデルに変換するために、選択したモデルがセンサーデータを低、中、高に分類できると期待します。機械学習における分類とは、観測値が属するカテゴリーを識別することを指します。Spark MLibから分類モデルを選択する演習を開始するために、一般的なモデル(ナイーブベイズ、ロジスティック回帰、ランダムフォレスト)を調べます。

モデルの選択

ナイーブベイズモデルは、一般的にテキストの分類に多く使用されます。また、ここでは10進数を扱っているため、うまく適合しません。次に、ロジスティック回帰モデルは、低、中、高のアクティビティに必要なマルチクラス分類に対応しません。最後に、ランダムフォレストモデルでは、各軸に対して分類を処理できます。さらに、ランダムフォレストモデルは大規模なデータセットでも効率的であり、数千の入力変数を処理できます。

ランダムフォレストモデルでは、トレーニングセットを取得し、ランダムサンプリングを実行してデータのサブセットまたはランダムな「」を作成します。多くの木が作成されると、ランダムな「」が作成されます。多くの木を持つことの利点は、データの分類をより正確に予測できることです。たとえば、森の中にある10本の木のうち7本が特定のセンサーイベントが歩行していることを示唆している場合、分類は歩行であると予想されます。

Talend Real-Time Big Data Platformには、機械学習のコンポーネントが組み込まれています。ランダムフォレストモデルを使用する最初のステップは、手作りの分類を使用して訓練することです。これは、簡便な分析からデータを取得し、アクティビティラベルを追加することを意味します。このトレーニングセットはモデルエンコーダーによって使用され、ストリーミング中のアクティビティの分類に使用されるモデルが出力されます。トレーニングセットのラベルは、人間の活動、特に休憩、歩行、およびランニングに関連付けられます。トレーニングセットは次のようになります。

このモデルの生成に使用されるトレーニングセットには、アクティビティごとに約150のイベントがありました。生成されたモデルを取得し、手作りの分類ラベルを出力と比較すると、97%の精度が得られました。これは予想どおりです。

機械学習モデルの精度を評価するために、K-分割交差検証の手法を使用して、10個の学習の演習を実行します。各演習はトレーニングセットのパーティションを取り、検証データとして使用します。この手法により、選択したモデルで95%の精度が得られました。今後のブログでは、この検証手法を検討し、Talend Studioを使用して構築する方法を紹介します。

最後のステップは、デモのストリーミング部分のモデルを使用してデータを分類することです。データを分類する前に、将来の分析のためのアーカイブ用にキャプチャーして保存することも可能です。分類されたデータは、視覚化のために準備されます。

ビデオをご覧ください: Analytics Dashboard — Talend IoT Demo.

まとめ

この演習の最も注目すべき点は、ハンドコーディングが不要だったことです。データを取得するRESTサービスの作成から、機械学習モデルを実装するSpark Streamingジョブまで、すべてがグラフィカルユーザー環境を使用して設計されました。デモをまだご覧になっていない場合は、Talendにご連絡ください。皆さんの次のビッグデータプロジェクトでTalendを簡単に使用する方法をご案内します。

ディスカッションに参加

0 Comments

コメントを残す

Your email address will not be published. Required fields are marked *