2
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

SPSS ModelerのフローをWatson Studioで動かす

Last updated at Posted at 2018-03-04

SPSS Modelerのフローを Watson Studio/Data Science Experience(DSX)で動かしてみます

SPSS Modelerのフローを稼働させる環境として、DSX上も可能となりました。

SPSSのフローに大量データをインプットした場合の分析エンジンとして利用することはもちろんのこと、データサイエンス関連の機能が満載のDSXを活用してSPSSのフローのアセット管理やデータ管理も実現できます。

ここでは SPSS Modeler で作成したフローをDSX上で動かす手順を記載いたします。SPSS Modelerをご利用されている方は、「DSX上でもフロー実行できるのね」 くらいの気持ちでさらっと読むだけで大丈夫です。

この記事は2018年3月4日に記載したものであり、現時点DSX上でのフロー機能はベータ版となっております。また今後画面が変更されることがあるかもしれませんのでご理解ください。

参考記事など

DSXのフロー機能についてはこちらの記事も参照してください。
「Watson Machine Learning」でSPSS Modelerみたいな「Flows」を使ってみた
「DSXL」のSPSS Modelerで故障予知

DSXやSPSS Modelerについてはこちらを参照ください。
Data Science Experience
SPSS Modeler

ちなみに両方とも無料で試すことができます。

手順

SPSS ModelerのフローをDSXで動かす手順は以下の通りになります

  1. SPSS Modeler でフローを作成
  2. サンプルデータでモデルを作成し、動作を確認
  3. SPSS Modeler のフローをエクスポート
  4. DSX 上にフローをインポート
  5. DSX 上にモデル作成用のインプットデータをインポート
  6. DSX 上でモデル作成&検証

今回利用した Modeler の環境は v18 on MacOS Sierra になります。
DSXは IBM Cloud 上のものを利用しております。

シナリオ

ある人が慢性腎臓病(chronic kidney disease)かどうかを判定する機械学習モデルを作ります。結果はYES/NOなので「分類」(Classification)の問題です。

データは以下のようなCSVを分析し、一番右側の「class」フィールドの値が「ckd(chronic kidney disease)」か「notckd」かを予測することになります。
※以下の表の抜粋は全て「ckd」ですが・・・。

スクリーンショット 2018-03-04 15.20.26.png

ネタはDSX上のサイトのこちらになります。
Tutorial: Build a predictive analytic model to determine whether a person has chronic kidney disease by using IBM Watson Machine Learning and the Flow Editor

0.データ準備

WML-KidneyDiseaseTutorialからClone/Downloadしてzipを解凍します。filesディレクトリーにchronic_kidney_disease_full.csvができます。

1. SPSS Modeler でフローを作成

以下のような感じでSPSS Modelerでワークフローを作成します。

スクリーンショット 2018-03-04 15.09.22.png

「入力」の箇所はcsvファイルをそのまま画面にドラッグ&ドロップすれば良いです。
「テーブル」は参考のために付けました。

「データ区分」のノードでモデル作成データとテストデータに分類しますが、
以下のように「データ区分フィールド」や「ラベル」は英語表記にしてください。
(DSX上での文字化けを避けるためです。動作は日本語でも問題ありません)

スクリーンショット 2018-03-04 15.10.29.png

「データ型」は左がデフォルトの設定でしたが、右側のように変更しました。
スクリーンショット 2018-03-04 15.17.20.png

モデル作成は「C5.0」としました。

2. サンプルデータでモデルを作成し、動作を確認

「class」を実行すると、モデルが作成されます。
その後、「精度分析」も以下のオプションで追加します。

スクリーンショット 2018-03-04 15.24.45.png

以下のようなフローと精度分析結果になります。

スクリーンショット 2018-03-04 15.26.27.png スクリーンショット 2018-03-04 15.29.08.png

3. SPSS Modeler のフローをエクスポート

「ファイル」-「ストリームを保存」からストリームを適当な名前でPCに保存します。
ここでは「Kidney.str」として保存します。

4. DSX 上にフローをインポート

DSX上でインポートいたします。

DSXの画面上の「Tools」-「Streams Designer」を選択します。
※ 既に作成済の「Project」内の「+ New flow」からでも可能です。

スクリーンショット 2018-03-04 15.32.27.png

「From files」のタブを選択し、ファイルを選択します。
スクリーンショット 2018-03-04 15.35.42.png

Nameなどは適当に入力して、「Create」ボタンを押してください。
すると、以下のような画面になり、綺麗にインポートされたことがわかります。

スクリーンショット 2018-03-04 15.38.00.png

5. DSX 上にモデル作成用のインプットデータをインポート

インプットファイルがこのままではフローを流せないため、
モデル作成のためのファイルをDSX上にインポートいたします。
# 今回はSPSS Modeler上と同じインプットファイルとしております。
# 実際は検証用とは異なる大量データのインプットファイルとか、データベースを指定することになります。

右上の「1010(データ)」のボタンをクリックをして、入力用のデータをドラッグ&ドロップします。
すると、以下の画面のように右側のリストにデータが登録されます。

スクリーンショット 2018-03-04 15.41.19.png

登録されたデータをブラウザ上でフロー上にドラッグ&ドロップします。
既存のファイルを削除して、ドラック&ドロップしてできたノードと「データ区分」と「テーブル」を接続し、フローを以下のように作成します。

スクリーンショット 2018-03-04 15.46.03.png

これでDSX上のフローは完成です。

6. DSX 上でモデル作成&検証

C5.0のノードを選択し、「Run」をクリックします。
※ 最初はC5.0のノードが「No target」となっておりますが、気にしなくて大丈夫です。

スクリーンショット 2018-03-04 15.50.02.png

新しいモデルが作成されますので、「精度分析」ノードを再実行(Run)します。

スクリーンショット 2018-03-04 15.52.49.png

すると、「精度分析」ノードが実行され、右側のアウトプットに分析結果が出力されます。
※アウトプットは右上の「円型の下矢印」ボタンになります。
※下の画面は2回実行したので二つあります。

スクリーンショット 2018-03-04 16.02.27.png

分析結果を開くと、以下のような感じになっているはずです。

スクリーンショット 2018-03-04 15.59.07.png

無事にSPSSのフローをDSX上にインポートし、実行することができました!

さいごに

このようにまだベータ版ではありますが、SPSSのフローをDSX上で実行することが可能となりました。
SPSS Modelerの実行環境としてDSXを利用することができますので、SPSSユーザの方もぜひ他のDSXのデータ分析に関する機能も加味した上でDSXをご検討ください。

2
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?