K-Meansクラスタリングは、類似性に基づいてデータを異なるクラスタに分割するために使用される、一般的な教師なし機械学習アルゴリズムである。これはデータ点をK個のクラスターにグループ化することを目的とし、各データ点は最も近い平均(セントロイド)を持つクラスターに属する。この手法は、大規模なデータセットを扱う際のシンプルさと効率性から広く使用されており、探索的データ分析、パターン認識、および業界を横断する様々なアプリケーションにおいて貴重なツールとなっている。
K-Meansアルゴリズムは、データ点を最も近いクラスタ重心に繰り返し割り当て、新しく形成されたクラスタに基づいて重心を再計算する。このプロセスは、K個の初期セントロイドを選択することから始まり、ランダムに選択することも、ヒューリスティックに基づいて選択することもできる。そして各データ点は、セントロイドが最も近いクラスターに割り当てられる。すべてのデータ点を割り当てた後、セントロイドは各クラスタ内のデータ点の平均として再計算される。この割り当てと再計算のプロセスは、セントロイドが大きく変化しなくなるか、最大反復回数に達するまで続けられる。
セントロイド:セントロイドはクラスタ内のすべての点の平均位置である。これはクラスタの中心を表す。
クラスター:クラスターとは、他のクラスター内のデータ点よりも互いに類似しているデータ点のグループのことである。
距離メトリック:K-Meansは通常、ユークリッド距離を使用してデータ点とセントロイド間の類似性を測定する。データの性質によっては、他の距離メトリックを使用することもできる。
イナーシャ:イナーシャは、最も近いクラスター中心までのサンプルの距離の二乗和を測定する。イナーシャが小さいほど、より密でコンパクトなクラスタを示す。
K-Meansクラスタリングは、データの根本的なパターンを発見する能力により、幅広い分野で応用されている。注目すべき例としては、以下のようなものがある:
市場セグメンテーション:企業はK-Meansを使用して、購買行動、人口統計、またはその他の特性に基づいて顧客を明確なグループにセグメンテーションする。これにより、ターゲットを絞ったマーケティング・キャンペーンやパーソナライズされた顧客体験が可能になります。AIが小売業にどのような変革をもたらすか、さらに詳しくご覧ください。
画像の圧縮:K-Meansは、類似した色同士をクラスタリングし、より少ないビット数で表現することで、画像サイズを縮小するために適用できます。これにより、許容可能な視覚的品質を維持しながら、画像ファイルを小さくすることができます。画像認識とコンピュータ・ビジョンにおける役割について詳しく知る。
利点がある:
制限:
K-Meansクラスタリングは、他のクラスタリング・アルゴリズムや教師なし学習技術と密接に関連している。
DBSCAN (ノイズを含むアプリケーションの密度ベース空間クラスタリング):K-Meansと異なり、DBSCANは密に集まったデータ点をグループ化し、密度の低い領域に単独で存在する点を外れ値としてマークする。事前にクラスタ数を指定する必要はない。
階層クラスタリング:この手法は、小さなクラスターを大きなクラスターに統合する(凝集型)か、大きなクラスターを小さなクラスターに分割する(分割型)ことによって、クラスターの階層を構築する。
K-最近傍探索(KNN):KNNは分類と回帰に使用される教師あり学習アルゴリズムですが、最も近い近傍を見つけるために距離メトリクスを使用するという点で、K-Meansと類似しています。
いくつかのツールやライブラリがK-Meansクラスタリングの実装をサポートしている。
Scikit-learn:K-Means のシンプルで効率的な実装を提供する、機械学習のための人気のあるPython ライブラリ。
TensorFlow:K-Meansを実装するために使用できるオープンソースの機械学習フレームワークで、特に大規模なアプリケーションに適しています。
PyTorch:クラスタリングアルゴリズムの実装に柔軟性と効率性を提供する、広く使われているもう一つの深層学習フレームワーク。
Ultralytics YOLOモデルは、類似したオブジェクトや特徴をグループ化するための前処理としてクラスタリングを伴うオブジェクト検出タスクに使用できます。高度なコンピュータ・ビジョン・アプリケーションでの Ultralytics YOLOを高度なコンピュータ・ビジョン・アプリケーションに使用する方法については、こちらをご覧ください。また、Ultralytics HUB を使用して、コードなしでビジョンAIモデルのトレーニングやデプロイメントを行うこともできます。