K-means は分類アルゴリズムではありません。実行すると、K 個の要素の重心を見つけるだけなので、データを K 個の部分に分割しますが、ほとんどの場合、目的のクラスとは関係ありません。このアルゴリズム (すべてのクラスタリング手法と同様) は、データを探索して識別可能なオブジェクトを見つけたい場合に使用する必要があります。あらゆる意味で見分けがつきます。あなたのタスクが、特定のクラスを認識するシステムを構築することである場合、それは分類の問題であり、クラスタリングではありません。実装と理解の両方が簡単な最も単純な方法の 1 つは、KNNです。(K-nearest neighbours)は、達成しようとしていることを大まかに行います-どのクラスのオブジェクトが事前定義されたオブジェクトに最も近いかをチェックします。
違いをよりよく理解するために、あなたのケースを考えてみましょう。あなたは顔の特徴に基づいて感情状態を検出しようとしています。このようなデータに対して k-means を実行すると、顔写真を多くのグループに分割できます。
- さまざまな人物の写真を使用すると、特定の人物の写真をまとめてクラスター化できます (距離が他の人物と異なるため)。
- このような機能には性別固有の違いがあるため、たとえば男性と女性にデータを分割できます
- 視点によって特徴が変化し、「クラスター」が作成されるため、カメラからの距離に基づいてデータを分割することもできます。
- 等
ご覧のとおり、「合理的な」(そしてさらに完全に解釈不可能な) 分割が数十あり、K-means (および任意の) 他のクラスタリング アルゴリズムは単純にそのうちの 1 つ (ほとんどの場合、解釈できないもの) を見つけます。分類方法は、この問題を克服し、何を期待しているかをアルゴリズムに「説明」するために使用されます。