ゲインチャートから利益が最大化するスコアを求める(SPSS Modeler データ加工逆引き8-9)

# ゲインチャートから利益が最大化するスコアを求める
![スクリーンショット 2022-08-21 8.05.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/49568e5d-9dcf-2317-e359-93aabd0bda93.png)


## 1.想定される利用目的

・顧客ターゲットリストのどこまでを施策対象にするかを確定する
・設備の突発保守をどの範囲に設定するかを確定する


## 2.サンプルストリームのダウンロード

https://github.com/yoichiro0903n/blue/blob/main/profit.str?raw=true

## 3.サンプルストリームの説明

![スクリーンショット 2022-08-20 21.19.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/c638897f-f91a-7f88-9ce1-084b46e9b498.png)

dからmまでのプロセスは逆引き8-8と本質的には同じです。そちらも併せて参照ください。

a.入力するデータは以下の通りです。推奨販売商品の購入の予測するモデルを作成した後の結果と予測、傾向スコアの列です。
![スクリーンショット 2022-08-20 21.24.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/2332670e-76d6-a9f5-85f4-5496b2e4e4b4.png)

b.[評価グラフ]ノードを編集します。
![スクリーンショット 2022-08-20 21.24.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/f1ec72f9-6c9d-403d-723e-e6951f07a949.png)

[実行]します。
![スクリーンショット 2022-08-20 21.25.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/a0aa1a41-9f0f-6fde-0d33-dbe93afaf32a.png)

プロフィットチャートはこちらでも解説しています。

https://qiita.com/416nishimaki/items/5269bb70ca8145abaea9#4tips

#### プロフィットチャートの基礎になるゲインチャートの座標を求める

c.[レコード集計]ノードを実行します。
![スクリーンショット 2022-08-20 21.25.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/d484361f-43cd-b7ef-c987-4699b02cbc88.png)

[プレビュー]します。スコアの同じレコードに要約されました。
![スクリーンショット 2022-08-20 21.26.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/11e87e76-484f-d06d-c1a5-3fafa82b635c.png)

d.スコア降順で並び替えます。

e.[フィールド作成]ノードを編集します。故障と全体の数を関数@&#xFFF0;SUMで累積します。
![スクリーンショット 2022-08-20 21.27.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/c4e58b7a-5dc1-a2cc-647b-69ecfe7cb928.png)

[プレビュー]します。
![スクリーンショット 2022-08-20 21.27.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/da7f8587-41ff-5522-b1dc-1e1decf7b410.png)

f.[レコード集計]ノードを編集します。累積の最大値を取得します。
![スクリーンショット 2022-08-20 21.28.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/7651f45d-be18-bdff-9a49-f8fe0e91638b.png)

[プレビュー]します。
![スクリーンショット 2022-08-20 21.28.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/5f285905-61a9-1a89-87ea-bfed714ff173.png)

g.[レコード結合]ノードを編集します。[レコード結合方法]を[キー]にしますが[キー]をブランクにして1対Nで結合します。
![スクリーンショット 2022-08-20 21.29.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/6d96e5e9-c589-ad88-e706-6d1043e4bead.png)

[プレビュー]します。
![スクリーンショット 2022-08-20 21.29.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/c0dda827-cb95-764b-708b-01f72144a612.png)

h.[フィールド作成]ノードを編集します。累積プロット（カーブ）を描くため購入の累積比率を求めます。
![スクリーンショット 2022-08-20 21.30.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/2e829a37-1a7b-4d27-5e9a-790b45fee51b.png)

i.[フィールド作成]ノードを編集します。チャートのX軸を作成しています。
![スクリーンショット 2022-08-20 21.30.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/b50b833a-357c-8f36-e551-70bc31442be4.png)

j.[線グラフ]ノードを実行します。ほぼできていますが、原点がないため便宜的に作成します。
![スクリーンショット 2022-08-20 21.31.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/28c00978-f9d4-5088-a5b3-aa9ce3515cbe.png)

k.[サンプリング]ノードで最初の1レコードを抽出して原点（x=0,y=0）を作ります。

l.[置換]ノードを編集します。抽出したレコードの値を強制的に0に置き換えます。
![スクリーンショット 2022-08-20 21.31.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/507b4296-c5b6-08bb-a9ac-bb340717f50a.png)

m.[レコード追加]ノードでkとlで編集した１レコードにオリジナルの18レコードを追加します。

n.[線グラフ]ノードを実行します。
![スクリーンショット 2022-08-20 21.32.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/9bc0879b-a22c-2d5e-99b3-b253948b06c9.png)

#### コストと収益をパラメータにしてスーパーノードを作成する

o.[スーパー]ノードを編集します。
![スクリーンショット 2022-08-20 21.35.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/2f625b2d-898b-1c9b-4e81-5b6cb5ff5e49.png)

[パラメータの定義]ボタンを確認します。コストと収益をパラメータとして登録しています。
![スクリーンショット 2022-08-20 21.35.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/ab6975d4-a283-9136-a000-1d49d27d07fc.png)

[スーパー]ノードの[ズームイン]ボタンを押します。各レコードまでの到達時点での累積顧客にコストのパラメータを掛けます。収益は[購入_Sum_累積]に予測が的中した累積を対象にします。
![スクリーンショット 2022-08-20 21.34.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/570b5ce7-db73-764d-22e9-1d1b89d610cd.png)

スーパーノードの設定の仕方は以下の記事を参照ください。

https://www.ibm.com/blogs/solutions/jp-ja/spssmodeler-push-node-20/

[プレビュー]します。

![スクリーンショット 2022-08-20 21.36.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/4622a128-ad6e-2982-af0c-2e23e8670598.png)

p.[フィールド作成]ノードを編集します。
![スクリーンショット 2022-08-20 21.37.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/91b9b471-fcee-ad7c-40b3-42456458380f.png)

q.[置換]ノードを編集します。原点を作るために便宜上作成した1レコード目の値の整合を取ります。
![スクリーンショット 2022-08-20 21.38.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/64527108-1801-5f72-b98a-0528e9a87f63.png)

r.[線グラフ]ノードを実行します。
![スクリーンショット 2022-08-20 21.38.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/30231097-0be5-5481-8644-2414a387573b.png)

s.[レコード集計]ノードを編集します。利益が最大化するレコードを特定します。
![スクリーンショット 2022-08-20 21.38.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/dd41b250-4ca6-bf91-bf74-2752cc05c845.png)

t.[フィルター]ノードを編集します。後続のレコード結合のためにフィールド名を変更します。
![スクリーンショット 2022-08-20 21.39.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/66ab3135-77fd-4db2-dd61-fa3f68f2cdc9.png)

u.[レコード結合]ノードを編集します。[レコード結合方法]を[キー]にして[プロフィット]をキーに結合します。
![スクリーンショット 2022-08-20 21.39.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/6b3ab94b-65c6-88ad-ca4b-cb200778310d.png)

v.[フィルター]ノードを編集します。
![スクリーンショット 2022-08-20 21.40.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/2a0a41a1-d30e-ddfd-036a-6717a999fe86.png)

[プレビュー]します。傾向スコアが0.412を対象にすると利益が最大化します。
![スクリーンショット 2022-08-20 21.40.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/e2f2274d-7d2e-2217-4caa-74c7bfd93afb.png)

#### 注意事項

利益が最大化するポイントが最適なリストとは限りません。少しコストを使っても広めにターゲットした方が後続の施策の役に立つ場合あります。
今回のデータはレコード集計して20ほどに要約されましたが、100を超えるスコアの種類を持つ大規模データの場合にはパーセンタイル（データ分割ノード）を利用します。

https://qiita.com/416nishimaki/items/bc1ab07c38821af60914

## 4.参考情報

#### モデルの性能指標について解説した記事

https://www.ibm.com/blogs/solutions/jp-ja/modeler-tips-04/

#### SPSS Modeler ノードリファレンス目次

https://qiita.com/416nishimaki/private/503037195081d3323eee

#### SPSS Modeler 逆引きストリーム集（データ加工）

https://qiita.com/416nishimaki/private/4bf813e6cba84b2a1008