YOLO Vision Shenzhen
深セン
今すぐ参加
用語集

K-平均法クラスタリング

教師なし学習のためのK平均クラスタリングを探ります。このアルゴリズムがデータを分割し、AIアプリケーションを強化し、Ultralytics YOLO26のようなモデルに情報を提供する方法を発見しましょう。

K平均クラスタリングは、教師なし学習の分野における基本的かつ広く使用されているアルゴリズムであり、ラベルなしデータ内の隠れた構造を発見するために設計されています。その主な目的は、データセットをクラスターとして知られる明確なサブグループに分割することであり、同じグループ内のデータポイントは可能な限り類似し、異なるグループ内のデータポイントは明確に異なるようにします。データマイニングと探索的分析の基礎として、K平均クラスタリングは、データサイエンティストが事前に定義されたラベルや人間の監視なしに、複雑な情報を管理しやすいカテゴリに自動的に整理することを可能にします。

アルゴリズムの仕組み

K-Meansの操作は反復的であり、training dataの最適なグループ化を決定するために距離指標に依存します。このアルゴリズムは、項目をK個のクラスターに編成することで動作し、各項目は最も近い平均値(セントロイド)を持つクラスターに属します。このプロセスは、各グループ内の分散を最小化します。ワークフローは一般的に以下のステップに従います:

  1. 初期化:アルゴリズムはK個の初期点を中心点として選択する。これらはランダムに選択するか、収束を早めるためにk-means++のような最適化手法を用いて選択することができる。
  2. 課題:データセット内の各データポイントは、特定の距離測定基準(最も一般的なのはユークリッド距離)に基づいて、最も近い重心点に割り当てられる。
  3. 更新:クラスタに割り当てられた全データポイントの平均(算術平均)を算出することで、 中心点が再計算されます。
  4. 反復処理:ステップ2と3は、中心点が著しく移動しなくなるか、最大反復回数に達するまで繰り返される。

クラスタの適切な数(K)を決定することは、このアルゴリズムを使用する上で重要な側面である。実務者は、エルボー法のような手法を用いたり、シルエットスコアを分析したりして、結果として得られるクラスタがどれだけ分離されているかを評価することが多い。

AIの実世界での応用

K-Meansクラスタリングは汎用性が高く、様々な産業分野においてデータの簡素化や前処理に活用されています。

  • 画像圧縮と色量子化: コンピュータービジョン (CV)において、K平均法はピクセルカラーをクラスタリングすることで画像のファイルサイズを削減するのに役立ちます。数千の色をより少ない支配的な色のセットにグループ化することで、アルゴリズムは画像の視覚構造を維持しながら、効果的に次元削減を実行します。この技術は、高度な物体検出モデルをトレーニングする前に入力データを正規化するためによく使用されます。
  • 顧客セグメンテーション: 企業は、購買履歴、人口統計、またはウェブサイトの行動に基づいて顧客をグループ化するためにクラスタリングを活用します。これにより、ターゲットを絞ったマーケティング戦略が可能になり、これは小売業におけるAIソリューションの重要な要素です。高価値の買い物客や離反リスクを特定することで、企業はメッセージを効果的に調整できます。
  • 異常検知: 「正常な」データクラスターの構造を学習することで、システムはどのセントロイドからも遠く離れた外れ値を特定できます。これは、金融における不正検出やネットワークセキュリティにおける異常検知に価値があり、標準的なパターンから逸脱する疑わしい活動を特定するのに役立ちます。
  • アンカーボックス生成: 歴史的に、古いYOLOバージョンなどの物体検出器は、トレーニングデータセットから最適なアンカーボックスを計算するためにK-Meansを利用していました。YOLO26のような最新のモデルは高度なアンカーフリー手法を利用していますが、K-Meansの理解は検出アーキテクチャの進化において依然として重要です。

実施例

ディープラーニングフレームワークであるUltralytics Platformが複雑なトレーニングパイプラインを処理する一方で、K平均法はデータセットの統計分析によく用いられます。以下のPythonスニペットは、一般的なScikit-learnライブラリを使用して、オブジェクトの重心をシミュレートする2D座標をクラスタリングする方法を示しています。

import numpy as np
from sklearn.cluster import KMeans

# Simulated coordinates of detected objects (e.g., from YOLO26 inference)
points = np.array([[10, 10], [12, 11], [100, 100], [102, 101], [10, 12], [101, 102]])

# Initialize K-Means to find 2 distinct groups (clusters)
kmeans = KMeans(n_clusters=2, random_state=0, n_init="auto").fit(points)

# Output the cluster labels (0 or 1) for each point
print(f"Cluster Labels: {kmeans.labels_}")
# Output: [1 1 0 0 1 0] -> Points near (10,10) are Cluster 1, near (100,100) are Cluster 0

関連アルゴリズムとの比較

プロジェクトに適切なツールを選択するためには、K-Meansを類似した名称や機能を持つ他のアルゴリズムと区別することが重要です。

  • K-MeansとK-Nearest Neighbors (KNN):これらは名称に「K」が含まれるため、しばしば混同される。 K-Meansはラベル付けされていないデータのクラスタリングに用いられる教師なしアルゴリズムである。一方、K-Nearest Neighbors(KNN)画像分類や回帰に用いられる教師あり学習アルゴリズムであり、ラベル付きデータに依存し、近傍の多数派クラスに基づいて予測を行う。
  • K-Means vs. DBSCAN: どちらもデータをクラスタリングしますが、K-Meansはクラスタが球形であると仮定し、クラスタの数を事前に定義する必要があります。DBSCANは密度に基づいてデータをグループ化し、任意の形状のクラスタを見つけることができ、ノイズをより適切に処理します。このため、クラスタの数が不明な不規則な構造を持つデータセットに見られる複雑な空間データには、DBSCANが優れています。

共にAIの未来を築きましょう!

未来の機械学習で、新たな一歩を踏み出しましょう。