検索
[python] k-meansクラスタリングをするときはデータの規格化、標準化をする
- M.R

- 2020年10月15日
- 読了時間: 1分
概要
とある機械学習の問題に取り組んでいるときに、データをk-meansクラスタリングしてみた。ところが、どうもある一つのカラムの値に依存しすぎているように見えた。こうならないためには、事前にデータの大きさを揃えておかないといけない。
k-meansクラスタリングとは
k-meansクラスタリングは、データを複数のクラスタに分割するアルゴリズム。事前に指定した個数のクラスタ重心を作り、各データを最寄りのクラスタに分類する。

なぜ規格化が必要なのか
k-meansでのクラスタ分類において座標空間上のデータ点同士の距離を用いる。そのため、ある一つのデータだけ絶対値が大きいと、同じ分散でも点同士の距離は大きくなり、クラスタ分類の計算に影響を与える。

実際に僕が使用していたデータはカラムA、C、Dが0~2の範囲を取り、カラムBは1000~3000の範囲を取るようなデータでした。規格化を忘れてクラスタリングをしてみたら、カラムBにだけ影響を受けているようなクラスタリングとなっていました。今回はすぐおかしいことに気づいたので良かったですが、、、
結論
kmeansクラスタリングを行う前は必ず規格化、標準化をしましょう。そして、クラスタリングの結果を必ず確認しましょう。






コメント