K-meansは、距離ベースのクラスタリングアルゴリズムではありません。
K平均法は、最小二乗和の割り当てを検索します。つまりtotal_SS
、クラスターの中心にポイントを割り当てることで、正規化されていない分散(= )を最小化します。
k-meansが収束するためには、2つの条件が必要です。
- ポイントを再割り当てすると、平方和が減少します
- 平均を再計算すると、平方和が減少します
組み合わせの数は有限であるため、この値を無限に減らすことはできず、アルゴリズムはある時点で局所最適値に収束する必要があります。
割り当て関数を変更しようとするときはいつでも、犬が自分のしっぽを追いかけるように、アルゴリズムが終了しないリスクがあります。基本的に、両方のステップで目的関数について合意する必要があります。二乗和に関しては、算術平均が最適な選択であることはわかっています。そして、最初のステップとして、平均値ごとにを計算し、最小値を選択します。技術的には、ここでは距離計算はありません。数学的には、最小二乗和による割り当ては、ユークリッド距離の2乗を閉じることによる割り当てと同じです。これは、(計算にCPUサイクルを浪費する場合)ユークリッド距離の最小割り当てと同じです。だから直感 jをΣ私(x私- μj i)2jsqrt
各ポイントを最も近い平均に割り当てる方法は正しいですが、最適化の問題は行いません。
between_SS
おそらく、クラスターの中心がどれだけ離れているかを測定するための、2つの平均間の加重二乗和です(注:クラスターの中心、実際のクラスターは比較されません-技術的には、クラスターボロノイセルは隣接するクラスターボロノイセルに接触します)。
k-meansを使用すると、kを増やすことにより、単純なクラスタリングの品質を向上させることができます。ここで測定される品質は数学的な値であり、ユーザーの要件と一致しない場合があります。アイリスは実際には非常に良い例です。正確に3つのクラスターがあるはずの外部情報が与えられたとしても、k平均はしばしば満足のいく結果に収束しません。
k-meansの距離ベースのバリエーションが必要な場合は、k-medoidsをご覧ください。ここでは、平均をmedoidに置き換えることで収束が保証されます。
- 各オブジェクトは最も近いクラスターに割り当てられます(任意の距離メジャーによって)
- クラスタの中心は、クラスタの最も中心にあるオブジェクトに、つまり他のすべてのオブジェクトとの平均距離が最小になるように更新されます。
各ステップで、距離の合計が減少します。組み合わせには有限の数があるため、アルゴリズムはある極小値で終了する必要があります。