1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SPSS Modelerでインタラクティブ・ツリーをつくる

Last updated at Posted at 2025-06-05

SPSS Modelerの決定木モデルのC&RT、CHAID、QUESTにはインタラクティブ・ツリー・ビルダーの機能があります(C5.0にはありません)。

決定木モデルはC&RTならジニ係数、CHAIDならカイ二乗値などの統計的な指標に基づいて、自動的にツリーを作成してくれます。しかしながら、以下のようなケースでは、ツリーを分割する変数や閾値を分析者がマニュアルに指定したいことがあります。

  • カテゴリ毎に異なるロジックで分けたいので、最初の分岐は人が選んだカテゴリで分類したい。 例:装置毎に違うツリーを作りたい。カードのブランド毎に違うツリーを作りたい
  • 装置運転の観点から調整がしやすい変数と調整が難しい変数がある。多少、精度がおちても調整のしやすい変数で分岐したい。例:振動は調整が難しいが、温度は調整可能
  • 閾値が細かすぎると機械に設定ができない。例:最高温度:32.1のような細かい値は設定できないので30度で設定したい

この記事はSPSS春のユーザーイベント2025の三井化学 松下様のご講演の「三井化学の製造現場におけるSPSSを活用した課題解決事例」でご紹介いただいたインタラクティブ・ツリーの解説です

インタラクティブ・ツリーをつくる

以下のようなデータを用意しました。
振動、温度、電力、油塗布、スイッチ、故障の列があります。

{95D47883-B36F-43B4-BD8E-F5BAE0A7C956}.png

「データ型」ノードで「値を読み込み」、「故障」列のロールを「対象」にします。
image.png

「作成オプション」タブで「インタラクティブセッションの起動」を選択し、『ツリーディレクティブを使用」にチェックを入れて「実行」します。
image.png

ツリーを分割する変数を選ぶ

ルート・ノードのみが表示されますので、右クリックで「ユーザー設定の分割で枝葉を成長」を選びます。

image.png

枝葉を分割する変数を選びます。デフォルトでそのアルゴリズムで一番統計的に有意な変数が、最も有効な閾値で選ばれています。
以下の例では「振動」が72.5で分岐することが選択されています。

{21730C3C-0775-48D4-A9C0-229A564EB969}.png

故障を予測するのであれば、「振動」を選んでもいいかもしれませんが、故障が発生しないようにコントロールするのであれば、「振動」は意図的に起こしたり、抑え込んだりすることが難しい変数かもしれません。

そこでここでは、装置側でコントロール可能という想定で「温度」を選んでみます。

image.png

そうすると以下のように、「温度」が259.5を閾値に枝葉が作られます。

image.png

ツリーを分割する変数の閾値を編集する

しかし、259.5度は細かくて装置の「温度」として設定できないと想定します。
ルート・ノードで右クリックをして「枝を削除」します。

image.png

ルート・ノードのみの状態に戻りますので、再度、右クリックで「ユーザー設定の分割で枝葉を成長」を選びます。

image.png

予測値に「温度」を選び、分割を「ユーザー設定」を選び、「次の値以下」に「260」を設定してみます。259.5ではなく260を閾値に変更しています。そして、「成長」をクリックします。

image.png

すると以下のように「温度」が260度の閾値でツリーを作る事ができました。
{804CFA2A-E84D-4900-B54F-D9FFB682D401}.png

さらに260度以下のノードを右クリックして、さらに枝葉を成長させてみます。

image.png

予測値に「電力」を選び、分割を「ユーザー設定」を選び、「次の値以下」に「860」を設定してみます。863.5ではなく860を閾値に変更しています。そして、「成長」をクリックします。
image.png

「度数情報を表とグラフで表示」クリックしてみると、以下のようなツリーが出来上がりました。
image.png

インタラクティブ・ツリーでつくったモデルのナゲット出力と定義の保存

これでモデルとして利用可能だと判断した場合は、ここでモデルを出力することができます。

「生成」メニューから「モデルの生成」を選びます。
image.png

ノードの生成先が「キャンパス」であることを確認して、「OK」をクリックします。
image.png

また、「ファイル」の「ディレクティブ(式)の更新」を選び、このツリーの定義を保存し、「×」で閉じます。
image.png

モデルナゲットがキャンパスにできていますので、「データ型」ノードに接続し、後続に「精度分析」ノードをつけて実行します。

image.png

自動作成したモデルと同様に精度も確認ができます。
image.png

モデルリンクを作っておきます。モデルナゲットをクリックして、「モデルリンクを定義」を選んで、「C&RT」のモデル作成ノードをクリックします。
{36A842A8-F6DB-4C8A-AB09-B7B5369EFCEE}.png

以下のようにモデルリンクも作成されて、関係がわかりやすくなります。
image.png

TIPS

カテゴリ型の場合の編集

カテゴリ型を選ぶと以下のように、カテゴリをどちらに振り分けるかを選べます。

image.png

CHAIDの連続値の条件の編集

閾値をマニュアルで編集することはできません。
ただ複数の閾値を選択して、「グループ化」することはできます。
以下の「温度>248 and 温度 <=250」と「温度>250 and 温度 <=252」をグループ化してみます。
image.png

「温度>248 and 温度 <=252」というように条件が組み合わせられました。
image.png

「値のグループ化を解除します」をクリックすると、元に戻ります。
image.png

image.png

ただ、好きな閾値にはできないので、閾値を自由に設定したい場合はCAHIDではなくC&RTを使ってください。C&RTでは多分岐ができないのですが、以下のように複数回同じ変数を選んでツリーを深くしていくことで多分岐を表現することができます。

image.png

インタラクティブ・ツリーの保存

インタラクティブ・ツリーの情報は、「ファイル」の「ディレクティブ(式)の更新」の操作で、ツリーディレクティブに保存されます。

image.png

image.png

途中から自動で作成

例えば、ツリーの一部分をマニュアルで定義し、その後は元々のアルゴリズムを使ってツリーを成長させることも可能です。
以下の例では「スイッチ」のA、B、C、Dは「ユーザー設定の分割で枝葉を成長」で分割しています。

そして、枝を右クリックして、「ツリーを成長」、「ツリーの成長と剪定」、「ツリーを1レベル成長」などを選ぶことで、もともとのC&RTのアルゴリズムでA、B、C、Dで分割した後のツリーを作ってくれます。

image.png

image.png

サンプル

サンプルは以下に置きました。

サンプルストリーム

利用データ

■テスト環境
Modeler 18.6
Windows 11

参考

インタラクティブ・ツリー・ビルダー - IBM Documentation

【リレー連載】わたしの推しノード – 絶対エース「CHAIDノード」流行りの機械学習を圧倒する伝えやすさと使いやすさ

1
0
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?