SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Bluemixではじめてみよう! 「IoT→クラウド」データ活用アプリケーション開発(AD)

IoTセンサーデータを使ったD3.jsによるグラフ化と機械学習モデルによる故障予測

Bluemixではじめてみよう! 「IoT→クラウド」データ活用アプリケーション開発 【第3回】

  • このエントリーをはてなブックマークに追加

「過去データを元に機械学習モデルを用いて故障予測を行う」アプリケーション

機械学習とは

いよいよ本アプリケーションも最終段階です。IoTのセンサーデータ活用において期待されている機能の一つが故障予測(予知保全)です。故障予測において近年注目の手法が機械学習です。機械学習は人工知能のベースとなる技術で、ある程度の数のサンプルデータ集合を入力して解析を行い、そのデータから有用な規則、ルール、知識表現、判断基準などを抽出するものです。検索エンジン、医療診断、スパムメールの検出、金融市場の予測、DNA配列の分類、音声認識や文字認識などのパターン認識、ゲーム戦略、ロボット制御などに使われています。

機械学習では、あるデータが入力として与えられたときにある答えを出力するシステムを「モデル」と呼びます。通常はこうした機能をもつプログラムを開発するわけですが、機械学習では基本的にユーザーはプログラムを作りません。その代わりに、機械学習アルゴリズムに基づくモデルに対して訓練用データを与えることでモデルが学習して、正しい答えを出力するようになることを期待します。

過去データの準備

故障予測を行うために過去データを準備する必要があります。即ち、過去のどんな状況で故障が発生していたかというデータを基に機械学習モデルを作成します。ただし、今回データベースに蓄積しているセンサーデータだけでは故障が発生していたかどうかという情報がないので、サンプルデータを作成します。

機械学習で用いる様々なデータセットが登録されているサイトが「UCI Machine Learning Repository」です(画面39)。ここに、半導体製造プロセスに関するデータセット(SECOM Data Set)が登録されているので、今回はこのデータセットをベースに過去データを作成して故障予測を実施していきます。

画面39:UCI Machine Learning Repository
画面39:UCI Machine Learning Repository

SECOM Data Setにはセンサーデータなど、591項目のデータが含まれているのですが、今回はその中から3項目を抽出して気温・湿度・機械の温度に置き換えたものを使用します。気温・湿度・機械の温度という3つの項目と、機械が故障した/していないという過去データを作成しました(添付ファイルのSECOM_DEMO_DATA.csv)。この過去データを使って機械学習モデルを作成していきます。

SPSS Modelerによる機械学習モデルの作成

機械学習を行うライブラリやツールはいろいろありますが、ここではBluemix上で提供されている「IBM Predictive Analytics」(予測分析)サービスで利用できる「IBM SPSS Modeler」を使います。

まず IBM Predictive Analyticsのページを開きます。少しスクロールすると、SPSS Modelerのトライアル版を入手するための「TRY」ボタンがありますのでクリックします(画面40)。

画面40:SPSS Modelerトライアル版の入手
画面40:SPSS Modelerトライアル版の入手

対応OSは、Windows XP以降の32bit版、64bit版、Mac OS Xです。ご自分の環境に合わせてダウンロードとインストールを実施してください(画面41)。

画面41:SPSS Modelerトライアル版のダウンロードページ
画面41:SPSS Modelerトライアル版のダウンロードページ

インストールできたらSPSS Modelerを起動します。スタート画面が表示されるので「新規ストリームを作成する」を選択して「OK」ボタンを押してください(画面42)。

画面42:SPSS Modelerを起動し「新規ストリームを作成する」を選択
画面42:SPSS Modelerを起動し「新規ストリームを作成する」を選択

SPSS Modelerは、Node-REDと同じような感じでGUIベースで処理フローを作成できます。ここでは画面43に示すフローを作成してください。各ノードをつないでいる矢印は、ノードを右クリックして表示されるメニューにて「接続」を選択してつなげる先のノードを指定します。

画面43:SPSS Modelerで作成する処理フロー
画面43:SPSS Modelerで作成する処理フロー

配置できたら、それぞれのノードをダブルクリックして設定していきます。

① 入力 >「可変長ファイル」
  • 「ファイル」タブ
    • ファイル: ローカルPCに置いてある「SECOM_DEMO_DATA.csv」を指定
    • 「行区切り文字は改行文字です」にチェック
    • フィールド区切り文字: カンマ
  • 「データ型」タブ
    • 「ロール」 seq_no:レコードID、failure:対象
画面44:「ファイル」タブで行う設定
画面44:「ファイル」タブで行う設定
画面45:「データ型」タブで行う設定
画面45:「データ型」タブで行う設定
② レコード設定 >「サンプリング」
  • サンプル: 無作為 70%
画面46:レコード設定 >「サンプリング」の設定
画面46:レコード設定 >「サンプリング」の設定
③ モデル作成 >「自動分類」

設定する項目はありません。「エキスパート」タブを選択すると、使用する候補のアルゴリズム(モデルタイプ)を見ることができます。この中から適切なものが選択されます。

画面47:モデル作成 >「自動分類」の設定
画面47:モデル作成 >「自動分類」の設定

処理フローの設定まで終えたら、画面上部の「現在のストリームを実行」をクリックしてモデル作成を実行します(画面48)。

画面48:機械学習モデルの作成を実行
画面48:機械学習モデルの作成を実行

少し待つと、モデルが作成されます(画面49)。

画面49:機械学習モデルが作成された
画面49:機械学習モデルが作成された

作成されたモデルをダブルクリックすると、使われたアルゴリズム(モデル)を確認できます(画面50)。

画面50:使われたアルゴリズム(モデル)
画面50:使われたアルゴリズム(モデル)

学習した結果のモデルの精度を検証してみましょう。「精度分析」と「テーブル」をフローに追加して実行してください(画面51)。

画面51:「精度分析」と「テーブル」をフローに追加して実行
画面51:「精度分析」と「テーブル」をフローに追加して実行

実行が終わると、結果のウィンドウが表示されます(画面52)。全体としての精度(予測が当たっている率)は約93%でした。テーブルのほうの結果では1レコードごとに予測結果が表示されます。

画面52:学習した結果のモデルの精度を検証した結果
画面52:学習した結果のモデルの精度を検証した結果

予測モデルファイルの出力

次は、Bluemixで使用するための予測モデルファイルを出力します。新たにフィルターを追加します(画面53)。

画面53:フィルターの追加
画面53:フィルターの追加

フィルターをダブルクリックして「seq_no」と「failure」は対象外にします(画面54)。

画面54:「seq_no」と「failure」は対象外にする
画面54:「seq_no」と「failure」は対象外にする

テーブルを右クリックして、「スコアリング枝として使用」にチェックを入れます(画面55)。

画面55:「スコアリング枝として使用」にチェックを入れる
画面55:「スコアリング枝として使用」にチェックを入れる

すると、スコアリングするフローの線が緑色になります。この操作を忘れるとBluemix上に予測モデルファイルをアップロードしてもスコアリング対象がないというエラーになるので注意してください。

メニューバーの「ファイル」または画面上の任意の場所を右クリックして「名前を付けてストリームを保存」を選択し、任意の名前を付けて予測モデルファイル(.strファイル)を保存します(画面56)。

画面56:「名前を付けてストリームを保存」を選択して予測モデルファイルを保存
画面56:「名前を付けてストリームを保存」を選択して予測モデルファイルを保存

IoT成功のカギを握る:データ管理・分析クラウドサービスのご紹介

現象をデータ化するセンサーやデバイスに注目が集まりがちなIoTですが、価値を生むのはデータ化したその後の処理です。

「多数のセンサー、デバイスからインターネット経由で送信されてくるJSONデータを効率よく保管する」
「保管した大量のデータから未知のパターンを割り出し、ビジネスを成長させる知見を提供する」

こうしたIoTが価値を生むためのサービス・製品がIBMにあります。ぜひ、下記の資料をご覧ください。(編集部)

次のページ
「過去データを元に機械学習モデルを用いて故障予測を行う」アプリケーション(続き)

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
Bluemixではじめてみよう! 「IoT→クラウド」データ活用アプリケーション開発連載記事一覧

もっと読む

この記事の著者

大田尾 一作(株式会社DTS)(オオタオ イサク)

株式会社DTS イノベーション推進部在籍。業務内容は、FintechやIoT、AIといった新しい領域でのビジネスを推進するための調査・研究。日本Seleniumユーザーコミュニティに参加。   

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/9354 2016/07/08 14:48

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング