5
3

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 1 year has passed since last update.

DSXLのSPSS Modelerで故障予知

Last updated at Posted at 2018-02-22

#Data Science Experience Local(DSXL)のSPSS Modeler Flowsの機能を使って、故障予知モデルを作ってみます
SPSS Modeler Flowsの機能はオンプレのデスクトップソフトウェアのSPSS Modelerの機能をDSXL上で利用可能にした機能です。2018年1月のDSXL1.1.3ではBeta版になりますが、わかりやすい分析が可能ですので紹介します。

###環境
DSXL 1.1.3.00 (20180122_0943) x86_64

###参照
SPSS Modeler Flows add-on - IBM Data Science Experience
https://datascience.ibm.com/docs/content/local/canvas.html?audience=local&context=analytics

IBM SPSS Modeler - 概要 - 日本
https://www.ibm.com/jp-ja/marketplace/spss-modeler

##A.事前準備

A1. 以下からプロジェクトのファイルをzipでダウンロードします。
image.png

hkwd/DSXL_MachineErr
https://github.com/hkwd/DSXL_MachineErr

A2. DSXLにログインしプロジェクトにインポートします。
プロジェクトリストを開き、NewProjectでプロジェクトを作ります。
image.png
FromFileで先ほどダウンロードしたZIPファイルを指定し、Createします。
image.png

##B.データの確認
B1. データを確認します
プロジェクトのAssetのDataSetsからCond3n_eというデータをPreviewします
image.png

以下のようなデータが入っています。各列の意味は以下です。
M_CD: マシンコード
UP_TIIME: 起動時間
POWER: 電力
TEMP: 温度
POWER_DIFF: 電力差分
TEMP_DIFF: 温度差分
POWER_5MAVG: 電力差分5期移動平均
TEMP_5MAVG: 温度差分5期移動平均
ERR_CD_5FUTURE: 5期先エラーコード

image.png

image.png

##C.モデル作成
DSXLのSPSS Modelerを使って、電力や温度の変化などから5期先のエラーコードを予測するモデルを作成します。

C1. SPSS Modeler Flows(またはStreams)のタブを開き、Add flow(またはStreams)でFlow(またはStreams)を作成を開始します。FlowまたはSteamとは分析の処理フローを定義した設計図のようなものです。

image.png

C2. Blankを選択し、任意の名前を付けてCreateします。
なお、ここで「From File」を選択するとオンプレ版のSPSS Modelerでつくった.strファイルを読み込むこともできます。
image.png

C3. 学習データを選択します。
Cond3n_e.csvをドラッグアンドドロップで中央のキャンバスという領域に置きます。

image.png

C4. データの中身を確認します。
Cond3n_e.csvのノードを選び右クリックでView Dataを選びます。
image.png

データが表示されました。

image.png

Stream名をクリックして、キャンバスに戻ります。

C5. データの型定義
Nodesの一覧からField OperationsのTypeを選び、キャンバスにドラッグアンドドロップします。
そして、Cond3n_e.csvのノードと接続します。
次に右クリックをしてプロパティを開きます。

image.png

Settingsを開き、Configure Typesをクリックします。

image.png

Add Columnsで列のデータ型を定義します。

image.png

全ての列を選択し、OKをクリックします。

image.png

一番上の二つのM_CDとUP_TIMEのRoleをNoneに設定します。
image.png

一番下の列のERR_CD_5FUTUREのMeasureを「Categorical」、Roleを「Target」に設定します。TEMPやPOWERをつかって、ERR_CD_5FUTUREを予測するという設定になります。Read Valuesをクリックします。

image.png

OKをクリックして閉じます。

image.png

C6. データの検査
Nodesの一覧からOutputsのData Auditを選び、キャンバスにドラッグアンドドロップします。
そして、Typeノードと接続します。
次に右クリックをしてRunします。

image.png

実行がおわったら、view outputsのパレットを開き、Data Audit of [7 fields]をダブルクリックして内容を確認します。

image.png

各列の最大値、平均、外れ値の数などの情報を一覧で確認することができます。
確認をしたらストリーム名をクリックしてキャンバスに戻ります。

image.png

C7. モデルの作成

Nodesの一覧からModelingのC5.0を選び、キャンバスにドラッグアンドドロップします。C5.0は予測分析のできる決定木アルゴリズムの一つです。
そして、Typeノードと接続します。
次に右クリックをしてRunします。

image.png

実行が終わるとモデルが作成されます。
右クリックでView Modelを選びます。

image.png

Predictor ImportanceをみるとTEMP、POWER_5MAVGが説明変数としての重要度が高いことがわかります。
image.png

Tree DiagramをみるとTEMPが259度未満だと202のエラーと判定されることがわかります。また、TEMPが259度以上でもPOWERが857未満なら101のエラーと判定されることがわかります。
このようにどういう条件でどうなるかがすべて示されるのが決定木モデルの特徴です。Display labels on branchesにチェックをいれZoomを調整して参照してください。
image.png

さらに202のノードにカーソルを合わせるとTEMPが259度未満の556件の全てが202のエラーであることがわかります。
image.png

C8. モデルの評価
ストリーム名をクリックし、キャンバスに戻ります。
Nodesの一覧からOutputsのAnalysisを選び、キャンバスにドラッグアンドドロップします。
そして、モデルのナゲットノード(黄色)と接続します。
次に右クリックをしてRunします。

image.png

実行がおわったら、view outputsのパレットを開き、Analysis of [ERR_CD_5FUTURE]をダブルクリックして内容を確認します。
image.png

作成したモデルの精度は99.33%であることがわかります。
image.png

##D. スコアリング

良いモデルができたので新しいセンサーデータをこのモデルにかけて将来のエラーを判定してみます。

D1. 新しいセンサーデータの入っているCond3n_e111.csvをファイルから選び、キャンバスに置きます。
そしてView Dataで中身を確認します。
image.png

ここにはERR_CD_5FUTUREの列はありません。POWERやTEMPから5期先のエラーを予測してみます。
ストリーム名をクリックして、キャンバスに戻ります。
image.png

D2. モデルナゲットを右クリックしてコピーします。
image.png

キャンバスの何もないところで右クリックして、Pasteします。
image.png

D3. Cond3n_e111.csvから貼り付けたモデルナゲットに接続し、さらびNodesの一覧からOutputsのTableを選び、キャンバスにドラッグアンドドロップします。
そして、モデルナゲットノードと接続します。
次に右クリックをしてRunします。

image.png

実行がおわったら、view outputsのパレットを開き、Table(10 fields,5 records)をダブルクリックして内容を確認します。

image.png

D4. 新たに$ERR_CD_5FUTUREと$CC-ERR_CD_5FUTUREの列が追加されています。
$ERR_CD_5FUTUREが予測結果です。$CC-ERR_CD_5FUTUREがその確度を示しています。このデータの場合、4レコード目でPOWERやTEMPに大きな変化があったときに将来エラーコード202が起きる可能性が9割以上あると予測をしています。
image.png

##おわりに
現在のベータ版ではSPSS内でのみしかスコアリングができませんが、近い将来、センサーデータをためたCSVからバッチでスコアリングしたり、REST APIでアプリから予測したりすることができるようになることが期待されます。

5
3
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
5
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?