によるMahout in Action
k-meansと同様に、ファジーk-meansはデータセットをループしますが、ベクトルを最も近い重心に割り当てる代わりに、各クラスターへのポイントの関連付けの程度を計算します。
最も近い重心にベクトルを割り当てずに、次の反復で重心はどのように計算されますか?
ファジーk-meansをグーグルで検索したところ、基本的にはEMクラスタリングのように聞こえました。これは、かなり広く知られている便利な概念です。
ここで重要なのは、難しい割り当てが行われていないということです。
ポイントがどの重心に属するかを選択するとき、各重心に属する確率が表示されます(各重心からの距離を考慮し、これらの数値を累積合計で正規化することにより)
セントロイドがどこに移動するかを決定しているとき、セントロイドに属するポイントの明確に定義されたグループがありません。その平均は、新しい場所に単純に取ることができます。代わりに、ポイントが属する確率に基づいてポイントの加重平均を取ります。したがって、X、Y、Zの3つのポイントのみがあり、XとYがそれぞれ確率1.0でこのクラスターに属し、Zが確率0.5でクラスターに属している場合、重心の新しい位置は次のようになります。
(1.0 / 2.5)* X +(1.0 / 2.5)* Y +(0.5 / 2.5)* Z
したがって、これは各反復で重心が計算される方法です。