クラスタリング
"クラスタリング" とは、観測値がデータ値または特徴量の類似性に基づいてクラスターにグループ化される教師なし機械学習の形態の一つです。 この種の機械学習は、既知の "ラベル" 値を使ってモデルをトレーニングしないため、教師なしと見なされます。 クラスタリング モデルでは、ラベルは、その特徴のみに基づいて観察が割り当てられるクラスターです。
例 - クラスタリング
たとえば、植物学者が花のサンプルを観察し、それぞれの花の葉と花びらの数を記録するとします。
データセットには既知の "ラベル" はなく、2 つの "特徴量" があるだけです。 目的は花のさまざまな種類 (種) を特定することではなく、葉と花びらの数に基づいて似ている花をまとめてグループ化することだけです。
葉 (x1) | 花びら (x2) |
---|---|
0 | 5 |
0 | 6 |
1 | 3 |
1 | 3 |
1 | 6 |
1 | 8 |
2 | 3 |
2 | 7 |
2 | 8 |
クラスタリング モデルのトレーニング
クラスタリングには複数のアルゴリズムを使用できます。 最もよく使用されるアルゴリズムの 1 つは K-Means クラスタリングで、次の手順で構成されます。
- 特徴量 (x) の値はベクトル化されて、n 次元の座標が定義されます (ここで、n は特徴量の数です)。 花の例では、特徴量が 2 つあります。すなわち、葉の数 (x1) と花びらの数 (x2) です。 そのため、特徴量ベクトルには 2 つの座標があり、それを使用して 2 次元空間 ([x1,x2]) にデータ ポイントを概念的にプロットすることができます
- 花をグループ化するために使用するクラスターの数を決定します (この値を k とします)。 たとえば、3 つのクラスターを作成するには、k 値に 3 を使用します。 その後、k 個のポイントがランダムな座標にプロットされます。 これらのポイントは各クラスターの中心点になるため、"重心" と呼ばれます。
- 各データ ポイント (この例では花) は、最も近い重心に割り当てられます。
- 各重心は、ポイントとの間の平均距離に基づいて、割り当てられたデータ ポイントの中心に移動されます。
- 重心が移動されると、データ ポイントが異なる重心に近くなる場合があるため、新しい最も近い重心に基づいて、データ ポイントがクラスターに再割り当てされます。
- クラスターが安定するまで、または事前に決定されている繰り返しの最大数に達するまで、重心の移動とクラスターの再割り当ての手順が繰り返されます。
次のアニメーションは、このプロセスを示したものです。
クラスタリング モデルの評価
予測されたクラスターの割り当てを比較するために使用する既知のラベルがないため、クラスタリング モデルの評価は、結果のクラスターがお互いからどの程度分離されているかに基づきます。
クラスターの分離を評価するために使用できるメトリックには、以下を含む複数のものが存在します。
- クラスター中心への平均距離: クラスター内の各ポイントがそのクラスターの重心に平均でどれだけ近いか。
- 他の中心への平均距離: クラスター内の各ポイントが他のすべてのクラスターの重心に平均でどれだけ近いか。
- クラスター中心までの最大距離: クラスター内のポイントとその重心との間の最大距離。
- シルエット: 同じクラスター内のポイントと異なるクラスター内のポイント間の距離の比率を集約した -1 から 1 の間の値 (1 に近いほど、クラスターの分離の度合が高くなります)。