BIRCH
データを木の形にまとめながらクラスタリングします。大きなデータでも比較的速いのが特徴です。
入出力
| ポート | 内容 |
|---|---|
| 入力データ | 分けたいデータ |
| 出力データ | 入力データに クラスタ番号 の列を足したもの |
分かれ具合を数字で確かめたいときは、クラスタリング結果比較の平均シルエット値を使ってください。このノード自体は数字を出しません。
Spark エンジンでは動きません。
設定項目
「オプション」はチェックを入れるまで中身が出ません。 見出しの横のチェックボックスを on にすると、CF Treeの閾値を入力 / サブクラスタの最大サンプルサイズを入力 / サンプリングデータに対して実行する / 乱数シードを固定する が出ます。
- 対象列を選択
- クラスタリングに使う数値列。複数選べます。
- クラスタ数を入力必須
- いくつに分けるか。自分で決める必要があります。
- CF Treeの閾値を入力
- 同じ枝にまとめる距離。既定は
0.5。 - サブクラスタの最大サンプルサイズを入力
- 1 つの枝に持てる数。既定は
50。 - サンプリングデータに対して実行する
- 0 より大きく 1 以下の小数を入れると、その割合の行だけを使って木を組み立てます。行が多くて遅いときに使います。クラスタ番号はすべての行に付きます。
- 乱数シードを固定する
- 「サンプリングデータに対して実行する」を使うときだけ効きます。どの行を取り出すかを固定するので、整数を入れると毎回同じ結果になります。サンプリングを使わないときは、入れても入れなくても結果は変わりません。考え方は乱数シードを参照。
前処理が要る
空欄があると計算できません。 欠損値処理で埋めるか除いてください。
エラーと対処
どのエラーも、入力データか設定を直して実行し直せば消えます。
処理対象列に欠損値がある
処理対象列に欠損値が含まれています。欠損値を除外するか補完してください。
直し方 — 欠損値処理で埋めるか、欠損のある行を外します
処理対象列に数値以外がある
処理対象列に数値型以外のデータが含まれてます。型変換をするか、数値型以外の列を除去してください。
直し方 — 列の型変更で数値にするか、その列を外します
サンプリングの割合が範囲外
サンプリング比率は0以上1以下の値を指定してください。
直し方 — 「サンプリングデータに対して実行する」に 0.1 のように、0 より大きく 1 以下の小数を入れます。0 は使えません
よく使う例
1. 大きいデータを速く分ける
お題 — 行数が多く k-means だと遅い
入力 — 行数の多い数値データ(購入金額・来店回数)
設定 — クラスタ数に 3、閾値は既定の 0.5
出力 — 入力データに クラスタ番号 の列が付きます。k-means と近い分かれ方が速く出ます
2. 分かれ方が粗い
お題 — クラスタの境目が大まかすぎる
入力 — 同上
設定 — CF Treeの閾値を小さくする(0.5 → 0.2)
出力 — 木が細かく枝分かれし、同じクラスタ数のまま境目が引き直されます。クラスタの数そのものは「クラスタ数を入力」で決めた数から変わりません