SPSS Modelerでパラメーター最適化①ー複数のパラメーターから目標仕様を予測する

複数のパラメーターを調整して何らかの目標仕様を満たしたいということがあります。
例えば、シリコン量と鉄分の量（パラメーター）を調整して、ある強度（目標仕様）のパーツを作りたいというようなことです。

このようなパラメーター調整をSPSS Modelerを使って行う方法を、3回シリーズで解説しています。
この記事はそのシリーズの①番目の記事です。

1. **[複数のパラメーターから目標仕様を予測する](https://qiita.com/kawada2017/items/0269c3aefe2bbc3fefaf
)**
1. [複数の目標仕様を予測する](https://qiita.com/kawada2017/items/d5b1331a8ea392fb160e)
1. [パラメーターをシミュレーションで生成](https://qiita.com/kawada2017/items/b5263da5d06806e8b2ca)


以下のような試作品開発、サロゲート・モデル、配合、マテリアルズ・インフォマティクス、プロセス・インフォマティクスなどの分野で活用できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/2338d1f3-6dec-370d-a342-ddb70c652928.png)

ここではCAEのシミュレーターのテスト結果の複数のパラメーターから目標仕様を予測するというシナリオで説明します。

## 実行動画（動画は、シリーズ①②③をすべてを解説しています。）

<iframe width="560" height="315" src="https://www.youtube.com/embed/jvRTOs4GogE" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

* テスト環境
    * Modeler 18.5
    * Windows 11 64bit

* サンプルストリーム

https://github.com/hkwd/spsssample/blob/master/230519surrogatemodel/surrogateModel.str

* サンプルデータ

https://raw.githubusercontent.com/hkwd/spsssample/master/230519surrogatemodel/CAEdata.csv

https://raw.githubusercontent.com/hkwd/spsssample/master/230519surrogatemodel/CAE%E5%80%99%E8%A3%9Cdata.csv

# 1.データの読み込み

まず、「CAEdata.csv」からCAEのシミュレーターでの結果を読み込みます。
「P1」から「P27」のパラメーターでシミュレーションを行った結果として「摩擦係数」や「強度」、「コスト」などの目標仕様がどうなったかという結果が記録されています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/b08635bf-ddfd-f90c-3b43-0ab5d780b3f3.png)


# 2.目標仕様予測モデルの作成

ここではまず「P1」から「P27」を説明変数にして「摩擦係数」を予測するモデルを作ってみます。
「データ型」ノードを接続し、「値を読み込み」をクリックして、「摩擦係数」のロールを「対象」、「P1」から「P27」のロールを「入力」にします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/64d646e3-7f92-588f-8653-35184d9a8156.png)

「1次」のモデル作成ノードを接続し、右クリックで「実行」します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/528f9223-1ebe-5db5-9907-b4997dc0fd02.png)

以下のようにモデルが出来上がりますので、「編集」で内容を見てみます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/3ab4100e-b2bf-f65d-a513-f19d5d983586.png)

「係数」のグラフを開いて「スタイル」を「表」にすると係数に影響をしているパラメータとその係数がわかります。
ここから「摩擦係数」を下げるには「P13」や「P7」を大きくするという手が考えられることがわかります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/712091ff-d81d-9c19-3bf6-cbcc2a4c4029.png)

# 3.目標仕様のスコアリング

出来上がったモデルをつかってスコアリングをしてみます。「CAE候補data.csv」をモデルナゲットに接続します。

以下のように「P1」から「P27」のパラメーターのみが入ったデータです。このパラメーターでCAEのシミュレーションを行ったときに、目標仕様である「摩擦係数」がどのくらいになるかを予測できます。、

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/51fa129f-a872-d01c-5437-d28059b3e735.png)

モデルナゲットに「テーブル」ノードを接続して実行します。
以下のようにこのパラメーターのセットだと1.731の「摩擦係数」になることが予測できました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/71b5d32d-b542-225c-33f3-737eacc143a8.png)

このように時間のかかるCAEシミュレーションを行わずに目標仕様を予測することで、時間とコストを削減することができます。

# 参考
#### 2023春IBMソリューションタイム　SPSS Modelerでシミュレーションができるの？！―Modelerで行う最適パラメーター推定―
https://speakerdeck.com/jpspss/2023chun-ibmsoriyusiyontaimu-ri-ben-aibiemuzhu-shi-hui-she-he-tian-spss-modelerdesimiyuresiyongadekiruno-modelerdexing-uzui-shi-parametatui-ding?slide=6