AIの基礎

K-平均クラスタリングとは何か?

mm
Unite.AI を Google の優先ソースに追加

K-平均クラスタリングは、教師なし学習アルゴリズムであり、教師なし学習アルゴリズムの中で、K-平均クラスタリングは最も広く使用されている可能性があります。その理由は、その力とシンプルさによるものです。K-平均クラスタリングはどうやって正確に機能するのでしょうか。

簡単な答えは、K-平均クラスタリングは、望ましいクラスの数の参照点(セントロイド)を作成し、次にデータポイントを、どの参照点に最も近いかに基づいてクラスタークラスに割り当てることによって機能するというものです。K-平均クラスタリングの簡単な定義ではありますが、K-平均クラスタリングをより深く理解するために、少し時間を費やしましょう。

クラスタリングの定義

K-平均クラスタリングで使用される正確なアルゴリズムを調べる前に、クラスタリング全般について少し時間を費やしてみましょう。

クラスターは単にアイテムのグループであり、クラスタリングはアイテムをそれらのグループに配置することです。データサイエンスの観点から、クラスタリングアルゴリズムは2つのことを行うことを目指しています:

  • クラスター内のすべてのデータポイントが可能な限り互いに似ていることを保証します。
  • 異なるクラスター内のすべてのデータポイントが可能な限り互いに異なることを保証します。

クラスタリングアルゴリズムは、類似性の尺度に基づいてアイテムをグループにまとめます。これは、データセット内のさまざまなグループの「セントロイド」を見つけることによって行われることが多く、グループ内のすべてのデータポイントの平均値を計算することによって行われます。クラスタリングアルゴリズムは多数存在しますが、すべてのクラスタリングアルゴリズムの目的は同じです。つまり、データセットに内在するグループを決定することです。

K-平均クラスタリング

K-平均クラスタリングは、最も古くからあるクラスタリングアルゴリズムの1つであり、ベクトル量子化に基づいています。空間上に原点として選択された点があり、次に原点からデータセット内のすべてのデータポイントまでベクトルが描かれます。

一般に、K-平均クラスタリングは、次の5つの異なるステップに分解できます:

  • すべてのインスタンスをサブセットに配置します。サブセットの数はKに等しくなります。
  • 新しく作成されたクラスター分割の平均点/セントロイドを見つけます。
  • これらのセントロイドに基づいて、各ポイントを特定のクラスターに割り当てます。
  • すべてのポイントからセントロイドまでの距離を計算し、ポイントをセントロイドからの距離が最小のクラスターに割り当てます。
  • ポイントがクラスターに割り当てられた後、クラスターの新しいセントロイドを見つけます。

上記のステップは、トレーニングプロセスが完了するまで繰り返されます。

初期段階では、セントロイドはデータポイントの間のどこかに配置されます。
Photo: Weston.pace via wikimedia commons, GNU Free Documentation License (https://commons.wikimedia.org/wiki/File:K_Means_Example_Step_1.svg)

代わりに、セントロイドが配置された後、K-平均クラスタリングは、データポイントのラベル付けとセントロイドの更新の2つの異なるフェーズの間で交互に切り替わるものと考えられます。

2番目のステップでは、ユークリッド距離などの距離尺度を使用して、与えられたポイントがどのセントロイドに最も近いかを計算し、次にポイントをそのセントロイドのクラスに割り当てます。Photo: Weston.pace via Wikimedia Commons, GNU Free Doc License (https://commons.wikimedia.org/wiki/File:K_Means_Example_Step_2.svg)

データポイントのラベル付け段階では、各データポイントに、最も近いセントロイドのクラスターに配置するラベルが割り当てられます。最も近いセントロイドは、通常、ユークリッド距離の二乗を使用して決定されますが、他の距離尺度 such as マンハッタン距離、コサイン距離、ジャッカード距離も、データに応じて使用できます。

3番目のステップでは、セントロイドはクラスター内のすべてのデータポイントの平均に移動され、クラスは再割り当てされます。Photo: Weston.pace via Wikiemedia Commons, CC SA 3.0 (https://commons.wikimedia.org/wiki/File:K_Means_Example_Step_3.svg)

セントロイドの更新ステップでは、セントロイドは、クラスター内にあるすべてのデータポイントの平均距離を計算することによって計算されます。

「K」の適切な値を選択する方法

K-平均クラスタリングは教師なしアルゴリズムであり、クラスの数が事前にわかっていない場合に、適切なクラスの数/「K」の値をどうやって決定するのでしょうか。

「K」の適切な値を選択するための1つのテクニックは、「肘法」と呼ばれます。肘法では、さまざまな「K」値に対してK-平均クラスタリングアルゴリズムを実行し、精度尺度(通常は二乗誤差の合計)を使用して、どの「K」値が最良の結果をもたらすかを判断します。二乗誤差の合計は、クラスターのセントロイドとクラスター内のデータポイントの平均距離を計算することによって決定されます。

「肘法」という用語は、SSEを「K」値に対してプロットしたときに、結果の線プロットが「肘」のような形状になることが多いという事実から来ています。SSEは最初のいくつかの「K」値に対して急激に減少しますが、次にレベルオフします。そうした条件では、「K」の値は「肘」に位置し、そこ以降の利点は急激に減少します。

ミニバッチK-平均クラスタリング

データセットが大きくなるにつれて、計算時間も増加します。基本的なK-平均クラスタリングは、大規模なデータセットで実行する場合に、完了するまでに長い時間がかかる可能性があります。したがって、アルゴリズムの空間的および時間的コストを削減できるように、K-平均クラスタリングにいくつかの変更が加えられています。

ミニバッチK-平均クラスタリングは、K-平均クラスタリングのバリエーションであり、考慮されるデータセットのサイズが制限されます。通常のK-平均クラスタリングは、バッチ全体を一度に操作しますが、ミニバッチK-平均クラスタリングは、データセットをサブセットに分割します。ミニバッチはランダムにサンプリングされ、各新しいイテレーションで新しいランダムサンプルが選択され、セントロイドの位置を更新するために使用されます。

ミニバッチK-平均クラスタリングでは、クラスターはミニバッチ値と学習率の組み合わせで更新されます。学習率はイテレーションごとに減少し、クラスター内のデータポイントの数の逆数です。学習率を減少させることの影響は、新しいデータの影響が減り、クラスターに変更がない場合に収束が達成されることです。

ミニバッチK-平均クラスタリングの有効性に関する研究の結果は、計算時間を大幅に削減できることを示していますが、クラスターの品質に多少のトレードオフがある可能性があります。

K-平均クラスタリングの応用

K-平均クラスタリングは、データポイントを明確なグループ/クラスにセグメント化できる状況で安全に使用できます。K-平均クラスタリングの一般的な使用例は次のとおりです。

K-平均クラスタリングは、トピック、タグ、単語の使用、メタデータなどのドキュメントの特徴に基づいてドキュメントを分類するために適用できます。また、投稿やコメントなどの活動パターンに基づいて、ユーザーをボットまたはボット以外のユーザーとして分類するために使用できます。K-平均クラスタリングは、合併症、年齢、患者の歴史などの特徴に基づいて、健康状態を監視する際に、人々を懸念レベルに基づいてグループ化するために使用できます。

K-平均クラスタリングは、レコメンデーションシステムの作成などのよりオープンなタスクにも使用できます。Netflixのようなシステムのユーザーは、視聴パターンに基づいてグループ化され、類似のコンテンツを推奨できます。K-平均クラスタリングは、不正または不良アイテムの潜在的なインスタンスを強調する、異常検出タスクに使用できます。K-平均クラスタリングは、ユーザーをグループ化して類似のコンテンツを推奨するために使用できます。gはまた、よりオープンなタスクのように、レコメンデーションシステムの作成に使用できます。Netflixのようなシステムのユーザーは、視聴パターンに基づいてグループ化され、類似のコンテンツを推奨できます。K-平均クラスタリングは、不正または不良アイテムの潜在的なインスタンスを強調する、異常検出タスクに使用できます。

ブログ作家およびプログラマーで、 Machine Learning Deep Learning のトピックを専門としています。Danielは、AIの力を社会のために利用する手助けを他者に与えることを希望しています。