スペクトラルクラスタリング
点のつながり方をもとに分けます。丸くないかたまりを見つけたいときに向きます。
入出力
| ポート | 内容 |
|---|---|
| 入力データ | 分けたいデータ |
| 出力データ | 入力データに クラスタ番号 の列を足したもの |
分かれ具合を数字で確かめたいときは、クラスタリング結果比較の平均シルエット値を使ってください。このノード自体は数字を出しません。
Spark エンジンでは動きません。
設定項目
「オプション」はチェックを入れるまで中身が出ません。 見出しの横のチェックボックスを on にすると、最大繰り返し回数を入力 / 重心の探索回数を入力 / affinity(親和性)を選択 / RBFカーネルのγを入力 / k近傍の数を入力 / 乱数シードを固定する が出ます。
- 対象列を選択
- クラスタリングに使う数値列。複数選べます。
- クラスタ数を入力必須
- いくつに分けるか。自分で決める必要があります。
- 最大繰り返し回数を入力
- 既定は
300。いまは入れた値が計算に届かず、変えても結果は変わりません。 - 重心の探索回数を入力
- 既定は
10。 - affinity(親和性)を選択
- つながり方の測り方。RBFカーネル(既定)か k近傍法。
- RBFカーネルのγを入力
- affinity に RBFカーネルを選んだときだけ欄が出ます。近さの効き方の鋭さ。既定は
1。 - k近傍の数を入力
- affinity に k近傍法を選んだときだけ欄が出ます。何点までを隣と見なすか。既定は
10。 - 乱数シードを固定する
- 整数を入れると毎回同じ結果になります。空のままだと実行のたびに変わります。考え方は乱数シードを参照。
欄の出入り
affinity を切り替えると、下の欄が入れ替わります。
| affinity | 出る欄 |
|---|---|
| RBFカーネル(既定) | RBFカーネルのγを入力 |
| k近傍法 | k近傍の数を入力 |
隠れた欄に入れていた値は消えます。 affinity を切り替えると、出なくなったほうの欄の値は設定から外れます。戻しても入れ直した値ではなく既定値(RBFカーネルのγは 1、k近傍の数は 10)に戻るので、入れ直してください。
前処理が要る
空欄があると計算できません。 欠損値処理で埋めるか除いてください。
エラーと対処
どのエラーも、入力データか設定を直して実行し直せば消えます。
処理対象列に欠損値がある
処理対象列に欠損値が含まれています。欠損値を除外するか補完してください。
直し方 — 欠損値処理で埋めるか、欠損のある行を外します
処理対象列に数値以外がある
処理対象列に数値型以外のデータが含まれてます。型変換をするか、数値型以外の列を除去してください。
直し方 — 列の型変更で数値にするか、その列を外します
よく使う例
1. 丸くないかたまりを見つける
お題 — k-means では分かれない形になっている
入力 — 2 つの数値列で散らばりを見たデータ(三日月状に並んでいるなど)
設定 — クラスタ数に 2、affinity は既定の RBFカーネル
出力 — 入力データに クラスタ番号 の列が付き、つながり方をもとに分かれます
2. 結果が毎回変わる
お題 — 実行のたびにクラスタ番号が違う
入力 — 同上
設定 — 乱数シードを固定するに 0 などを入れる
出力 — 同じ値を入れているあいだは、同じ行に同じ クラスタ番号 が付きます