次の疑問があります。Matlabのk-means関数を使用しており、必要な初期化ポイントのセットを使用して、バニラロイドのアルゴリズムを使用したいだけです。次のコードを使用します。ここで、「start」は初期化ベクトルです。
kmeans(data,[],'Start',start, 'OnlinePhase', 'off');
データが(-2、-1)X(2,1)の範囲の2次元であり、開始点を(-10,0)と(0,0)で初期化するとします。理想的には、1つのクラスターですべてのポイントを取得し、他のクラスターでは取得しない必要がありますが、回答では2つのクラスターを取得しています((-10,0)は実際には遠いため、1回の反復で収束する必要があります)。そんなことがあるものか?Matlabサイトでk-meansアルゴリズムの説明を読みましたが、これは答えではないようです。
選択の悪い中心に最も近い点はありません。したがって、再計算することはできず、新しいセンターに置き換えられます(ドキュメントを参照)。すべてのポイントは、最初に0,0クラスターに割り当てられます。一部のアルゴリズムは、0で除算するとひどく失敗するか、この中心を破棄してk = 1に減少します。Matlabでは、処理を選択できます。デフォルトでは、すべてのセンターから最も遠いポイントが置換として選択されます。
空のクラスターセンターを適切な場所に保持することは、最初のセンターを選択するときに考えていたクラスターの列挙を変更せず、(最初のセンターが適切に選択されている場合)空でなくなる可能性があるため、IMHOです。再び最終的に、他のセンターが動き続けるとき(ここではありませんが)。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加