独立成分分析
混ざり合った複数の数値列を、互いに影響し合わない 独立成分1、独立成分2… に分け直します。主成分分析(PCA)と違って寄与率が出ないので、成分に順位は付きません。
入出力
| ポート | 内容 |
|---|---|
| 入力データ | 分けたい数値列を持つデータ |
| 出力データ | 独立成分1、独立成分2… の列。「処理後残す列」で選んだ列は左側にそのまま付きます |
バイプロットはボニートくんで開きます。 ノードのポートには出ません。実行したあとプレビューフィールドの右上に出るボタンを押すと、そのままバイプロットが開きます(この機能のボニートくんはこの 1 ページだけです)。
出力は 1 つだけです。 固有ベクトルや寄与率は出ません。それが要るときは主成分分析(PCA)を使ってください。
元の対象列は出力データに残りません。 残したい列は「処理後残す列を選択する」で選んでください。
Spark エンジンでは動きません。
設定項目
- 処理対象列を選択
- まとめる元の列。数値の列を複数選びます。
- 処理後残す列を選択する
- 結果と一緒に残しておく列。ID や名前など、後から見分けに使う列を選びます。
アルゴリズムオプション
- 因子数を指定
- いくつの成分に分けるか。空にすると対象列と同じ数になります。対象列の数より大きい値を入れると、入れなかったのと同じ扱いになります。
- 乱数シードを固定する
- 整数を入れると毎回同じ結果になります。考え方は乱数シードを参照。
グラフオプション
- 色分けする列を選択
- 散布図の点を色分けする列。グループごとのまとまりを見たいときに使います。
- ラベルとして表示させる列を選択
- 点の脇に出す文字。どの行がどこにあるかを確かめたいときに使います。
バイプロットの読み方
点が 1 行、赤い矢印が元の列 1 つです。 横軸が第 1 成分、縦軸が第 2 成分で、3 つめ以降の成分は描かれません。
| 見るところ | 読み方 |
|---|---|
| 点のかたまり | 近い点どうしは、選んだ列全体の傾向が似ている行です |
| 矢印の並び | 右側にある矢印ほど第 1 成分に強く効き、上側にある矢印ほど第 2 成分に強く効く列です |
エラーと対処
どのエラーも、入力データか設定を直して実行し直せば消えます。
処理対象列に欠損値がある
処理対象列に欠損値が含まれています。欠損値を除外するか補完してください。
直し方 — 欠損値処理で埋めるか、欠損のある行を外します
処理対象列に数値以外がある
処理対象列に数値型以外のデータが含まれてます。型変換をするか、数値型以外の列を除去してください。
直し方 — 列の型変更で数値にするか、その列を外します
よく使う例
1. 混ざった要因を分ける
お題 — 複数の要因が重なって読めない数値列を切り分けたい
入力 — 同じ現象を別々に測った数値列を持つデータ
設定 — 処理対象列にその数値列を選び、因子数は空のまま
出力 — 独立成分1、独立成分2… の列。どの成分が何かは主成分分析(PCA)と違い寄与率で順位が付かないので、バイプロットで読みます
2. どの行がどの成分に寄っているか見る
お題 — 分けた成分と元の行の対応を確かめたい
入力 — 同上
設定 — 「処理後残す列を選択する」に名前の列、グラフオプションの「ラベルとして表示させる列を選択」にも同じ列
出力 — 出力データの左側に名前が残り、バイプロットの点にも名前が出る
3. 成分の数を絞る
お題 — 成分が多すぎて読めない
入力 — 同上
設定 — 因子数に 2 を入れる
出力 — 独立成分1 と 独立成分2 だけになる