SHOEISHA iD

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

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

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

機械学習をクラウドで手軽に体験! BluemixのApache Sparkで異常なセンサーデータを洗い出す

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

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

Apache Sparkによるデータ分析

それではいよいよ、Bluemix上のApache Sparkを使ってデータ分析を行う手順とそのプログラムの説明に入ります。その前に、仮説の検証方法を確認しておきます。

仮説の検証方法

センサーデータの中から異常値を見つける場合、センサーデータの取りうる値がある一定の範囲内であれば、その範囲をはずれたかどうかを見れば判断がつくので、単純な範囲判定で異常値かどうか識別することができます。

しかし、様々な環境が想定される場合、異常値の検出は単純な計算ではできなくなってきます。例えば、ある1機種の室内センサーで世界中をサポートしようとする場合、当然国や季節によって「通常」と思われる温度、湿度は異なります。それではどうすればよいでしょうか。

今回は、機械学習アルゴリズムの一つである「K平均法(K-Means法)」[2]を使って、IoTセンサーシミュレーターから取得したデータ14万個を、最も近い値同士4つのグループに分割します。K平均法は与えられた値の群をそれぞれ近似するグループに分割する統計アルゴリズムです。つまり、K平均法を使ってグループ化した後に、レコードの一部に通常の値と異なる一群がある場合、それは「故障が疑われる」センサーであるといえるはずです。

レコードの一部に通常の値と異なる一群がある場合、それは「故障が疑われる」センサーであるといえる
レコードの一部に通常の値と異なる一群がある場合、それは「故障が疑われる」センサーであるといえる

[2]: K平均法の説明は、Wikipediaに記述されているものがわかりやすいです。

Apache Sparkの立ち上げ

それでは実際にApache Sparkのプログラムを作成していきます。まずはBluemixダッシュボードからApache Sparkをデプロイします。ダッシュボード右上にあるトップメニューから[カタログ]を選択し、カテゴリ「データおよび分析」の中から「Apache Spark」をクリックします。

「カタログ」で「Apache Spark」をクリック
「カタログ」で「Apache Spark」をクリック

Apache Sparkデプロイ画面で、バインドするBluemix IoTアプリケーションを選択し、[作成]ボタンを押すとデプロイが開始されます。

Apache Sparkのデプロイ
Apache Sparkのデプロイ

ただし、Bluemixの制約で、Bluemix IoTアプリケーションを再ステージする必要があり、その旨のダイアログボックスが表示されます。[再ステージ]ボタンを押して、デプロイを続行します。デプロイには3〜5分程度時間がかかります。

アプリケーションの再ステージ
アプリケーションの再ステージ

次のような画面が表示されたら、アプリケーションの再ステージとApache Sparkのデプロイが完了しています。

アプリケーションの再ステージとApache Sparkのデプロイが完了
アプリケーションの再ステージとApache Sparkのデプロイが完了

ダッシュボードに戻り、作成したApache Sparkアプリケーションを選択します。

ダッシュボードに戻って作成したApache Sparkアプリケーションを選択
ダッシュボードに戻って作成したApache Sparkアプリケーションを選択

分析プログラムを作成し実行する方法

次に示す画面が、Bluemix上のApache Sparkの初期画面です。今回の分析プログラムは、BluemixのApache Sparkがデフォルトで提供している「Jupyter Notebook」で作成します。Jupyter Notebookは対話的にPythonコードを実行できる(書き込んだコードを随時実行し、結果を出力してくれる)ツールです。

まず、初期画面で[NOTEBOOKS]ボタンをクリックし、Notebookの管理画面に遷移します。

[NOTEBOOKS]ボタンをクリックしてNotebookの管理画面へ遷移
[NOTEBOOKS]ボタンをクリックしてNotebookの管理画面へ遷移

管理画面に移ったら、[NEW NOTEBOOK]ボタンをクリックして新規作成画面に移ります。

[NEW NOTEBOOK]ボタンをクリックして新規作成画面に移る
[NEW NOTEBOOK]ボタンをクリックして新規作成画面に移る

新規作成画面ではノートのタイトルを「Name」欄に入力します。今回は「Codezine IoT」としました。タイトルを入力したら、[CREATE NOTEBOOK]ボタンをクリックして、ノートを作成します。

タイトルを入力してノートを新規作成
タイトルを入力してノートを新規作成

作成直後のノートは、次の画面のようになっています。「In []:」と表示されている右にある欄を「セル」といいます。Jupyter NotebookではこのセルにPythonコードを入力していきます。コードはセルごとに実行できます。

Jupyter Notebookのセル
Jupyter Notebookのセル

セルのコードを実行するには、対象のセルにフォーカスがある状態で、次のいずれかの操作を行います。

  • メニューバーで[Cell]→[Run]を選択する
  • ツールバーの実行ボタンボタンをクリックする
  • [Shift]+[Enter]キーを押す

例えば、セルに「print “Hello Jupyter”」と入力して実行すると、次のように表示されます。

セルに入力したPythonコードが実行された
セルに入力したPythonコードが実行された

また、セルにフォーカスがある状態で、上部の「Format」から「Markdown」を選択することで、コメントをMarkdown形式で記述できます。例えば、セルに「## これは実行されない」と入力し、実行すると次のように表示されます。Formatを「Code」にしたまま、セルに「#」からコードを入力すると、Pythonコードのコメントとして認識されます。

Markdown形式でコメントも記述できる。もちろんPythonコードのコメントも書ける
Markdown形式でコメントも記述できる。もちろんPythonコードのコメントも書ける

Jupyter Notebookの詳細については多くの方が情報を発信していますので、インターネットを検索して勉強してみましょう。

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

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

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

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

次のページ
分析プログラムを入力し実行する

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

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

もっと読む

この記事の著者

木内 満歳(クリエーションライン株式会社)(キウチ ミツトシ)

クリエーションライン株式会社 シニアコンサルタント。分散コンピューティングやビッグデータ分析の領域にて、主にApache Spark、Apache Mesos、Elasticsearch、Dockerを活用したシステムコンサルタント、エヴァンジェリストとして活動中。2015年July Tech Fe...

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

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

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

この記事をシェア

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

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング