JavaScriptでK平均法の実演
概要
集合知プログラミング(ペンギンが表紙の本)を読みながら勉強中に書いたコードです。エラー処理とかはあまり入ってません。Firefox3.5, Chrome3.0, IE8で動作確認。
要素数 クラスタ数 X軸重み Y軸重み
使い方
小さい●が要素、大きい●が重心です。どちらも枠内にランダムに表示しています。
「実行」ボタンを押すと、重心の移動を1度行います。何度か「実行」ボタンを押すと、徐々にそれっぽいクラスタリングがされていくと思います。「実行」を押しても重心の位置が変わらなくなったら、終了です。
あまり思った通りの分け方がされなかった場合は、「重心のみ再配置」を押すと、重心の初期位置が再度ランダムで設定されます。「クラスタ数」を変更して「重心のみ再配置」をすると、重心の数を変更して再度クラスタリングを実行できます。
「再配置」を押すと、要素と重心の双方が再配置されます。「重み」の数値を増やすと、増やした軸の数値が重視されるようになります。
「要素数」は999が最大、「重心数」は9が最大です。
「実行」ボタンを押すと、重心の移動を1度行います。何度か「実行」ボタンを押すと、徐々にそれっぽいクラスタリングがされていくと思います。「実行」を押しても重心の位置が変わらなくなったら、終了です。
あまり思った通りの分け方がされなかった場合は、「重心のみ再配置」を押すと、重心の初期位置が再度ランダムで設定されます。「クラスタ数」を変更して「重心のみ再配置」をすると、重心の数を変更して再度クラスタリングを実行できます。
「再配置」を押すと、要素と重心の双方が再配置されます。「重み」の数値を増やすと、増やした軸の数値が重視されるようになります。
「要素数」は999が最大、「重心数」は9が最大です。