Java、Weka、そして Analytics Warehouse サービスを利用してデータ・マイニング・アプリケーションを構築する

2014年 10月 02日
PDF (1132 KB)
 
Krunal Vora

Krunal Vora

Software Engineer

Karandeep Chawla

Karandeep Chawla

Software Engineer

@karandeepsingh

IBM Bluemix™ にサインアップ
無償のサービス、ランタイム、インフラを含むクラウド・プラットフォームが、新たなモバイルやウェブ・アプリのクイックな構築とデプロイを実現します。

ワイヤレス・サービス・プロバイダーの企業で、顧客分析グループのデータ・サイエンティストとして働いている私たちは、顧客データを利用して顧客離れを予測しています。年間の解約率が 40 パーセントにも上る通信業界にとって、顧客の維持は重要な課題です。どの顧客が解約しそうであるかを予測できれば、企業はその顧客が解約する前に、顧客を維持するための措置を取ることができます。これにより、解約率が少し下がるだけでも、最終的な収益に大きな影響が出てくるはずです。

私たちは、短時間で Web アプリケーションを構築し、時間をかけて機能を増強していくことにしました。このアプリケーションでは、私たちが Weka (オープンソースの機械学習ツール) を使って Java™ 言語で開発した、分類アルゴリズムのコードを使用します。私たちはこの Java アプリケーションを Bluemix にデプロイし、Analytics Warehouse (旧 BLU Acceleration) サービスを利用して顧客データを分析することができます。Analytics Warehouse サービスを利用すると、単純化とパフォーマンスの向上が実現されるだけでなく、このモデルを拡張することにした場合や、アプリケーションの機能を強化して顧客データに対して行う分析の種類を追加することにした場合には、エンタープライズ規模にすることができます。Web 開発フレームワークとしては Twitter Bootstrap を選びました。その理由は、Twitter Bootstrap にはモバイル・ファーストの Web インターフェースならではの柔軟性があり、会社のアナリストたちが使用している多種多様な端末とブラウザーに容易に対応させることができるからです。

この記事を読んで、Bluemix で同様のアプリケーションを構築する方法を学んでください。ここでは、皆さんのアプリケーションに必要なコードが既にあるという前提のもとで、私たちが作成したアプリケーション・コードとデータをサンプルとして提供し、皆さんが作業を始められるようにします。

同様のアプリケーションを作成するために必要なもの

 
  • Java アプリケーション開発の十分な知識
  • Twitter Bootstrap などの最近のフロントエンド・フレームワークの十分な知識
  • Weka や R などの統計分析ツールの知識

ステップ 1. Bluemix でアプリケーションを作成する

 

Bluemix にログインします。

Bluemix のログイン画面のスクリーン・キャプチャー

クリックして大きなイメージを見る

「DASHBOARD (ダッシュボード)」ページで「Add an application (アプリケーションを追加)」をクリックします。

この例では Java アプリケーションを作成するので、「Runtimes (ランタイム)」から「.java liberty」を選択します (これは、Java 対応の Liberty です)。

ポップアップ・ウィンドウが表示されたら、「CREATE APP (アプリケーションの作成)」をクリックします。

次のポップアップ・ウィンドウで、アプリケーションの名前とホストを入力してから「CREATE (作成)」をクリックします。

「Create application (アプリケーションの作成)」ダイアログのスクリーン・キャプチャー

クリックして大きなイメージを見る

Bluemix が、ワークスペースにアプリケーションを作成して、Java ランタイムを起動します。ダッシュボードに表示される確認メッセージによって、アプリケーションが正常に起動されたことがわかります。

アプリケーションの作成を確認できる画面のスクリーン・キャプチャー

クリックして大きなイメージを見る

ステップ 2. Analytics Warehouse (旧 BLU Acceleration) サービスを作成する

 

ダッシュボードから、作成したアプリケーションを選択して、アプリケーションの「OVERVIEW (概要)」ページに進みます。

「OVERVIEW (概要)」ページの「Services (サービス)」セクションで、「Add new service (新規サービスの追加)」をクリックします。

新規サービスを追加する画面のスクリーン・キャプチャー

クリックして大きなイメージを見る

追加するサービスとして「Analytics Warehouse」を選択します。

Analytics Warehouse サービスの詳細を説明するポップアップ・ウィンドウが表示されます。「ADD TO APPLICATION (アプリケーションに追加)」をクリックし、次に表示されるポップアップ・ウィンドウで「CREATE (作成)」をクリックします。

「Create service instance (サービス・インスタンスの作成)」ダイアログのスクリーン・キャプチャー

クリックして大きなイメージを見る

ステップ 3. Analytics Warehouse サービスについて調べる (オプション)

 

Analytics Warehouse サービスでは、いくつかのデータ分析ツールを Web コンソールから提供しています。例えば、データのロードやデータに対するクエリーを実行するツール、R や Excel を使用したデータ分析ツール、Cognos を使用したレポート作成ツール、一般的な業界固有の使用事例に役立つ業界モデルなどが提供されています。このサービスに用意されている一連の素晴らしいツールは、将来のプロジェクトに備えて調べておく価値があります。

アプリケーションの「OVERVIEW (概要)」ページで、「Analytics Warehouse」サービスを選択します。

アプリケーションの「OVERVIEW (概要)」ページのスクリーン・キャプチャー

クリックして大きなイメージを見る

次に表示されるページで「Launch the console (コンソールの起動)」をクリックします。

新しいウィンドウが開いて、Web コンソールが表示されます。このコンソールでは、データ・ファイルをデータベースにアップロードしたり、データを R で分析したりするなど、さまざまな操作を実行することができます。

Web コンソールのスクリーン・キャプチャー

クリックして大きなイメージを見る

ステップ 4. Analytics Warehouse にデータをアップロードする (オプション)

 

Analytics Warehouse には、すでにサンプル・データ・セットが用意されていますが、皆さん独自のデータを使用することもできます。データをアップロードする方法は以下のとおりです。

  1. Analytics Warehouse Web コンソールで「Manage (管理)」タブをクリックし、「Load Data (データのロード)」を選択します。
  2. この例では、CSV ファイルからデータをロードします。「Quick load (クイック・ロード)」画面では、ロード用ファイルを選択します。すべてをデフォルト設定のままにして、「Load File (ファイルのロード)」をクリックします。 データをロードする画面のスクリーン・キャプチャー

    クリックして大きなイメージを見る

  3. テーブルのプレビューを確認したら、「Next (次へ)」をクリックします。
  4. 「Choose the target (ターゲットの選択)」画面では、「Create a new table and load (新規テーブルの作成とロード)」を選択して、「Next (次へ)」をクリックします。
  5. 「Table name (テーブル名)」「churntrainingset」に変更します。別のテーブル名を選択することもできますが、その場合はコードを更新することを忘れないでください。「churn (解約)」列の「Data type (データ型)」「VARCHAR」に変更します。それ以外のすべての列は選択されているデフォルトのままにしておいて構いません。最後に「Finish (完了)」をクリックします。
  6. 成功のメッセージが表示され、データがロードされるはずです。

ステップ 5. コードをダウンロードする

 

コードをまだ入手していない場合は、コードを入手します。

「EDIT CODE (コードの編集)」を選択します。ログインすると、コードが表示されます。

「File (ファイル)」 > 「Export (エクスポート)」 > 「Zip」の順にクリックして、コードをお使いのマシンにダウンロードします。

ステップ 6. コードを理解する

 

以下では、このサンプル・アプリケーションを構成するコンポーネントについて説明します。

  • FileLocationContextListener は、サーバー上にファイル・アップロード用のフォルダーを作成します。
  • ユーザーがモデルのトレーニング用セットをアップロードするデータベースを選択した場合、入力された詳細を使用して、データが TrainingSet として Instances オブジェクトにロードされます。そしてこの TrainingSet が、NaiveBayes モデルを作成するために使用されます。トレーニング用セットをアップロードするデータベースを選択しない場合は、デフォルトのデータベース・テーブルを使用してモデルが作成されます。
  • ユーザーは、CSV ファイルをテスト用セットとしてアップロードすることができます。ファイルがアップロードされる場所は、先ほどサーバー上に作成したファイル・アップロード用のフォルダーです。
  • Weka は、基本ファイル・フォーマットとして、必要な属性とデータ・セットを含む ARFF (Attribute-Relation File Format) ファイルを扱います。CSV2ARFF.java は、CSV ファイルを ARFF ファイルに変換してサーバー上の同じフォルダーに格納する、独立したユーティリティーです。
  • 変換後の ARFF ファイルは、TestingSet として Instances オブジェクトにロードされます。
  • TestingSet に含まれるすべてのインスタンスに対し、出力を Churn (解約) クラスまたは Not Churn (非解約) クラスに分類するために NaiveBayes モデルが使用されます。
  • 対応する出力が、ユーザー・インターフェースに表示されます。

ステップ 7. War ファイルを生成する

 

コードを Bluemix にプッシュするには、WAR ファイルを生成する必要があります。Eclipse を使用すると、簡単に WAR ファイルを生成することができます。生成できない場合に備えて、サンプルにはすでに WAR ファイルが含まれています。

「File (ファイル)」 > 「Import (インポート)」の順に選択します。ダイアログ・ウィンドウで、「Existing Projects into Workspace (既存プロジェクトをワークスペースへ)」を選択してから、「Next (次へ)」を選択します。

次のダイアログ・ウィンドウで、ダウンロードしたファイルを参照します。

プロジェクトをインポートする画面のスクリーン・キャプチャー

クリックして大きなイメージを見る

デフォルトの選択項目をすべてそのまま使用して構いません。「Finish (完了)」をクリックすると、プロジェクトが Eclipse クライアントに追加されます。

WAR ファイルとしてエクスポートするには、プロジェクト・エクスプローラーでプロジェクトを右クリックし、「Export (エクスポート)」 > 「File (ファイル)」の順に選択します。WAR ファイルは、ディレクトリーの中に単独で保存します。

WAR ファイルとしてエクスポートする画面のスクリーン・キャプチャー

クリックして大きなイメージを見る

ステップ 8. アプリケーションをデプロイする

 

ターミナル・ソフトウェアを開き、WAR ファイルが保存されているディレクトリーに、カレント・ディレクトリーを変更します。WAR ファイルは、そのファイル専用のディレクトリーに保存するのが最善です。

cf push コマンドを実行し、アプリケーション名、必要なメモリー容量、インスタンス、WAR ファイルのパスを指定します。このアプリケーションには、512 MB のメモリーと 1 つのインスタンスを指定してみましょう。従って、cf push bludemo -m 512m -p BLUDemo.war を実行します。

アプリケーションをアップロードすると、何が起きているかを示す詳細が表示されます。約 1 分半後に、アプリケーションが有効になるはずです。

アプリケーションに変更を加える場合は、このプロセスを繰り返します。新しい WAR ファイルを生成した後、同じコマンドを実行して Bluemix にプッシュします。

代替手順: アプリケーションをデプロイする

 

これまで説明したステップの大部分に従わなくても、サービスを作成してアプリケーションをデプロイすることができます。

自分のワークスペースでコードを作成した後 (ステップ 5)、manifest.yml という名前のファイルに変更を加えます。

name と host を、アプリケーションとホストの名前に変更します。この 2 つは、同じ値でなければなりません。ファイルは自動的に保存されます。

「Deploy (デプロイ)」をクリックすると、DevOps Services が manifest.yml ファイルに従ってアプリケーションをデプロイしようと試みます。DevOps Services はアプリケーションのデプロイ時に、資格情報の入力を求めます。ステップ 4 を実行して、トレーニング用データをアップロードします。その後で、デモ・アプリケーションが機能するようになります。

まとめ

 

この記事を読んだことで、Analytics Warehouse が Bluemix プラットフォーム上でデータウェアハウジングとアナリティクスをサービスとして提供する仕組みと、クラウド内で IBM のデータベース・テクノロジーを使用して重要な分析アプリケーションを開発し、デプロイする方法がわかったはずです。クラウドでの迅速かつ容易なデータ・マイニングを祝して乾杯しましょう。

謝辞

この記事をレビューしていただいた Alexandria Burkleaux 氏に心より感謝いたします。


関連トピック:Cloud computingJava technologyBLU Acceleration

コメントの追加

注意: HTML コードは、コメント内ではサポートされません。


残り 1000 文字

developerWorks: サイン・イン

必須フィールドは(*)で示されます。


IBM ID が必要ですか?
IBM IDをお忘れですか?


パスワードをお忘れですか?
パスワードの変更

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


お客様が developerWorks に初めてサインインすると、お客様のプロフィールが作成されます。会社名を非表示とする選択を行わない限り、プロフィール内の情報(名前、国/地域や会社名)は公開され、投稿するコンテンツと一緒に表示されますが、いつでもこれらの情報を更新できます。

送信されたすべての情報は安全です。

ディスプレイ・ネームを選択してください



developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

必須フィールドは(*)で示されます。

3文字から31文字の範囲で指定し

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


送信されたすべての情報は安全です。

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Cloud computing, Java technology, Information Management, Web development
ArticleID=972310
ArticleTitle=Java、Weka、そして Analytics Warehouse サービスを利用してデータ・マイニング・アプリケーションを構築する
publish-date=10022014