LoginSignup
3
0

複数の数値変数を比較して類似スコアを算出する(SPSS Modeler データ加工逆引き3-27)

Last updated at Posted at 2024-03-19

複数の数値変数を比較して類似スコアを算出する(ユークリッド距離)

スクリーンショット 2024-03-13 15.57.58.png

複数フラグ変数の類似スコア算出は逆引き3-26を参照ください。

1.想定される利用目的

先頭レコードと比較して同じフィールド(列)にフラグが立った数をカウントする
・形態素に分解した文章/特許/コンタクトログの類似度を判定する
・アンケートの回答や購買記録から類似する被験者や顧客を特定する

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

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

スクリーンショット 2024-03-13 16.01.10.png

a.入力するデータのひとつ目は以下の通りです。類似度を求める対象レコードです。

スクリーンショット 2024-03-13 16.03.45.png

b.入力するデータのふたつ目は以下の通りです。

スクリーンショット 2024-03-13 16.04.07.png

c.[レコード追加]ノードを配置します。フィールドの構造と型が一致しているのでデフォルト設定にします。

d.[フィールド作成]ノードを編集します。@￰INDEXでレコードに連番を振ります。この時比較対象をゼロにして2行目から1を割り当てるため@￰INDEX−1とします。

スクリーンショット 2024-02-21 9.27.47.png

[プレビュー]します。INDEXの1から10を先頭0と比較していきます。

スクリーンショット 2024-03-13 16.06.37.png

e.[フィールド作成]ノードを編集します。[モード]を[複数]に選択して[フィールドリスト]にAからGを投入します。新しいフィールド(列)がもう1セットできるので拡張子を[_一致]として識別します。
INDEXが0の場合にはヌル(undef)を割り当てそれ以外は各フィールドの先頭行との差の2乗を求めます。
@￰FIELDはワイルドカードです。@￰OFFSET(列,N)は N行上のレコードを参照します。

スクリーンショット 2024-03-13 16.05.54.png

[プレビュー]します。例えば赤枠の箇所を例にとると6行上の対象セル(青枠)を参照し
A - @￰OFFSET(A,5)の2乗が計算され[A_差の2乗 ](緑)に4が記述されます。

スクリーンショット 2024-03-13 16.06.16.png

f.[フィールド作成]ノードを編集します。

スクリーンショット 2024-03-13 16.07.00.png

[プレビュー]します。1001に最も類似している(距離が近い)のは3003だとわかります。
スクリーンショット 2024-03-13 18.37.13.png

アルゴリズムKNNを用いて同じ結果を求める

最近傍法を用いても同じように1001に最も近いケースが3003だと特定できます。

スクリーンショット 2024-03-13 18.34.09.png

注意点

逆引き3-26ではフラグの共起数をカウントしたのでスコアは高いほど類似ですが、今回の数値の場合は距離を求めているためスコアは少ないほど類似します。

またAからGまでの変数の単位が異なる場合は標準化を予め行うなどの工夫が必要です。

4. 参考情報

複数のフラグ変数を比較して類似スコアを算出する

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

SPSS Modeler 逆引きストリーム集(データ加工)

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