K-medoids法とは

K-medoids法は、非階層型クラスター分析(クラスタリング)アルゴリズムの一つで、データセットを $K$ 個のグループに分割する際に、各クラスターを代表するデータ点(メドイド)を利用する手法のことであり、ノイズ(外れ値)の影響を受けにくく、中心点として実際にデータセットに存在する点を用いることで、クラスターの解釈性を高めるための統計的機械学習アルゴリズムのことです。

K-medoids法の概要とK-means法との違い

K-medoids法は、K-means法と同様に、事前に決定されたクラスター数 $K$ に基づいてデータ点をグループ化しますが、中心点の定義が異なります。

特徴K-medoids法K-means法
中心点の定義メドイド(Medoid):クラスター内で最も中心に位置する実際のデータ点。セントロイド(Centroid):クラスター内のデータ点の平均値(仮想的な点)。
影響の受け方ノイズ(外れ値)に対して頑健(ロバスト)である。ノイズ(外れ値)の影響を受けやすい。
距離の定義任意の距離指標(マンハッタン距離など)を使用可能。主にユークリッド距離を使用。
K-medoids法の概要とK-means法との違い

K-medoids法は、中心点としてデータ集合の平均を用いるK-means法とは異なり、実際にデータ集合内に存在するデータ点を代表点として用いるため、外れ値がデータ中心を不自然に引っ張る影響を抑制できます。この特性から、K-medoids法は、ノイズの多いデータセットや、ユークリッド距離が適切でないデータ(例:カテゴリデータ、カスタム距離指標を使用するデータ)に対して特に有効です。

主な目的は、より実データに即したクラスターの中心を定義し、外れ値に強い、信頼性の高いクラスタリング結果を得ることです。

K-medoids法のアルゴリズム(PAM)

K-medoids法を実装するための最も一般的なアルゴリズムは、PAM(Partitioning Around Medoids、メドイド周辺分割)です。PAMは、以下のステップで最適な $K$ 個のメドイドを見つけます。

1. 初期メドイドの選択

最初に、データセットからランダムに $K$ 個のデータ点を選択し、初期のメドイドとして設定します。

2. クラスターの割り当て

残りの全てのデータ点について、最も近いメドイドとの非類似度(距離)を計算し、最も距離が小さいメドイドのクラスターにそのデータ点を割り当てます。

3. メドイドの交換とコストの計算

現在のメドイドが本当に最適な中心点であるかを評価します。これは、以下の交換ステップによって行われます。

  • コスト関数: 現在のメドイドと、クラスター内の全データ点との非類似度(距離)の総和をコストとして定義します。
  • 交換候補の評価: クラスター内の現在のメドイドではないデータ点 $h$ を選び、現在のメドイド $o$ と入れ替えた場合、コストがどのように変化するかを計算します。
  • 最適な交換の実行: もし、交換によって総コストが減少する場合、最もコスト減少が大きい交換を採用し、メドイドを更新します。この交換により、クラスターの割り当てが再度行われます。

4. 収束(アルゴリズムの終了)

ステップ3のメドイドの交換操作を行っても総コストが減少しなくなったとき、アルゴリズムは収束したと判断され、処理を終了します。

K-medoids法の利点と欠点

利点

  • 外れ値への頑健性: 実際に存在するデータ点を中心とするため、極端な外れ値によって中心が歪むことが少なく、K-means法よりも信頼性の高い結果が得られやすいです。
  • 解釈性: クラスターの中心が実データ点であるため、「このクラスターは、このデータ点(メドイド)によって代表される」という形で、分析結果を容易に解釈し、説明することができます。
  • 柔軟な距離指標: ユークリッド距離に限定されず、マンハッタン距離、ハミング距離、カスタムの非類似度など、データ特性に応じた様々な距離関数を利用できます。

欠点

  • 計算量の増大: メドイドの交換とコスト計算のステップで、すべての可能な交換を評価する必要があるため、計算量が非常に多くなります。データ点数 $N$ とクラスター数 $K$ に対して、K-means法よりも複雑な計算が必要となり、特に大規模なデータセットでは処理速度が遅くなる傾向があります。
  • 初期値への依存: K-means法と同様に、初期に選択するメドイドの選択によって、最終的な結果が変わる可能性があります。

関連用語

メドイド | 今更聞けないIT用語集
クラスタリング | 今更聞けないIT用語集
AIソリューション

お問い合わせ

システム開発・アプリ開発に関するご相談がございましたら、APPSWINGBYまでお気軽にご連絡ください。

APPSWINGBYの

ソリューション

APPSWINGBYのセキュリティサービスについて、詳しくは以下のメニューからお進みください。

システム開発

既存事業のDXによる新規開発、既存業務システムの引継ぎ・機能追加、表計算ソフトによる管理からの卒業等々、様々なWebシステムの開発を行っています。

iOS/Androidアプリ開発

既存事業のDXによるアプリの新規開発から既存アプリの改修・機能追加まで様々なアプリ開発における様々な課題・問題を解決しています。


リファクタリング

他のベンダーが開発したウェブサービスやアプリの不具合改修やソースコードの最適化、また、クラウド移行によってランニングコストが大幅にあがってしまったシステムのリアーキテクチャなどの行っています。