複数の数値変数を比較して類似スコアを算出する(ユークリッド距離)
複数フラグ変数の類似スコア算出は逆引き3-26を参照ください。
1.想定される利用目的
先頭レコードと比較して同じフィールド(列)にフラグが立った数をカウントする
・形態素に分解した文章/特許/コンタクトログの類似度を判定する
・アンケートの回答や購買記録から類似する被験者や顧客を特定する
2.サンプルストリームのダウンロード
3.サンプルストリームの説明
a.入力するデータのひとつ目は以下の通りです。類似度を求める対象レコードです。
b.入力するデータのふたつ目は以下の通りです。
c.[レコード追加]ノードを配置します。フィールドの構造と型が一致しているのでデフォルト設定にします。
d.[フィールド作成]ノードを編集します。@INDEXでレコードに連番を振ります。この時比較対象をゼロにして2行目から1を割り当てるため@INDEX−1とします。
[プレビュー]します。INDEXの1から10を先頭0と比較していきます。
e.[フィールド作成]ノードを編集します。[モード]を[複数]に選択して[フィールドリスト]にAからGを投入します。新しいフィールド(列)がもう1セットできるので拡張子を[_一致]として識別します。
INDEXが0の場合にはヌル(undef)を割り当てそれ以外は各フィールドの先頭行との差の2乗を求めます。
@FIELDはワイルドカードです。@OFFSET(列,N)は N行上のレコードを参照します。
[プレビュー]します。例えば赤枠の箇所を例にとると6行上の対象セル(青枠)を参照し
A - @OFFSET(A,5)の2乗が計算され[A_差の2乗 ](緑)に4が記述されます。
f.[フィールド作成]ノードを編集します。
[プレビュー]します。1001に最も類似している(距離が近い)のは3003だとわかります。
アルゴリズムKNNを用いて同じ結果を求める
最近傍法を用いても同じように1001に最も近いケースが3003だと特定できます。
注意点
逆引き3-26ではフラグの共起数をカウントしたのでスコアは高いほど類似ですが、今回の数値の場合は距離を求めているためスコアは少ないほど類似します。
またAからGまでの変数の単位が異なる場合は標準化を予め行うなどの工夫が必要です。
4. 参考情報
複数のフラグ変数を比較して類似スコアを算出する
SPSS Modeler ノードリファレンス目次
SPSS Modeler 逆引きストリーム集(データ加工)