SPSS Modeler ノードリファレンス 5-10 SVM

# 5-10 SVMノード[モデル作成タブ]

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/855260/08f0dc4f-6f80-bacb-78ab-1886e98462d3.png)

# 1.ノードの目的
SVM(サポートベクターマシン)は、２クラスや多クラスのカテゴリ型の分類問題や連続型の回帰問題を解く予測モデルを作成します。

# 2.解説動画(60秒)
<iframe width="560" height="315" src="https://www.youtube.com/embed/pCYHlO5UsHE" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

# 3.クイックスタート
製品に同梱されているサンプルストリームsvm_cancer.strを開きます。データはcell_samples.data です。このストリームのシナリオは、患者の細胞の特性に基づき、クラスが良性か悪性かを判定することです。SVMを用いて早期に良性または悪性を特定できるモデルを開発することが目的です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/855260/56d2338f-6fd2-8e15-097f-cd92b9c18c9d.png)

使用するデータには、次のフィールドがあります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/855260/8909b5da-7449-eac1-a79f-ed04f2882daf.png)

データ型ノードで、ロールを確認します。IDは「なし」、Classは「対象」、それ以外は「入力」です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/855260/33f0d985-b10e-cbe4-ac84-21d692524cf0.png)

モデル作成パレットのSVMノードをデータ型ノードに接続します。SVMノードの編集ダイアログで、[モデル]タブを選択します。[モデル名]で[ユーザー設定]を選択し、生成するモデルナゲット名を「class-rfb」と入力します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/855260/fc06f9fe-9de5-adda-cd99-3e1cb66a8009.png)

[エキスパート]タブを選択します。デフォルトの[モード]、[単純]ではカーネルタイプでRadial Basis Function（放射基底関数）が適用されます。RBFの特徴は、非線形なモデルを実現します。また、[分析]タブで[予測変数の重要度を計算]を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/855260/b9420297-015e-0ce5-36ac-4d8d73c5c817.png)

SVMノードを実行すると「class-rfb」と名前が付いたモデルナゲットが生成されます。モデルナゲットを参照します。予測変数の重要度が確認できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/855260/d222248d-3760-604c-a307-a09989e973a6.png)

モデルナゲットにテーブルノードをリンクして実行します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/855260/a490018a-ac83-0e5f-a38c-2dec1b910bad.png)

＄S-Class；予測値
＄SP-Class；確信度

多くのレコードの確信度の値が高いことがわかります。しかし、レコード13は、0.514と確信度の値が低くなっています。また、予測値に注目してみるとレコード2,4は確信度の値は高いのですが、実測値と予測値が異なっていて、間違って予測しているレコードも見受けられます。

# 4.Tips

ここでは、精度の改善ができるか別のカーネル関数でモデルを作成してみます。先程のSVMノードの編集ダイアログの[モデル]タブを選択します。[モデル名]で[ユーザー設定]を選択し、生成するモデルナゲット名を「class-poly」と入力します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/855260/d9a0a265-893f-c20d-c71c-03054673b169.png)

[エキスパート]タブを選択し、[モード]を[エキスパート]にします。[カーネルタイプ]を[多項式]にします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/855260/460fbd7b-43f5-a223-ccee-3f31982d514c.png)

SVMノードを実行すると「class-poly」と名前が付いたモデルナゲットが生成されます。テーブルノードをリンクして実行します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/855260/528ec955-fc3e-2dab-9908-56eec9f68f8c.png)

先程とは異なり、レコード13の確信度の値が高くなっています。また、レコード2,4の予測値は実測値と一致しています。

２つのモデルナゲットを接続して、さらにその後に精度分析ノードを接続します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/855260/03084030-800a-a361-8fe8-bb407bf0b3c2.png)

精度分析ノード実行します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/855260/8e21481b-6858-f8cc-4afc-014cad53bd30.png)

関数を変更したことで、モデルの精度が改善されました。
なお、SPSS ModelerのSVMノードでは４種類のカーネル関数が用意されています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/855260/b02b7e90-caf0-b9eb-97fa-250301012d9e.png)

# 5.参考情報
# チュートリアル
https://www.ibm.com/docs/ja/spss-modeler/18.3.0?topic=tutorial-classifying-cell-samples-svm

# 利用データ

SPSS Modeler 同梱のcell_samples.data

# ノードのヘルプ
https://www.ibm.com/docs/ja/spss-modeler/18.3.0?topic=models-svm-node

# SPSS Modelerノードのリファレンス
https://qiita.com/416nishimaki/items/503037195081d3323eee