1

MATLAB で k-means を使用しています。有効なクラスターを処理するには、クラスターの位置が変化しなくなるまでループする必要があります。ループは反復プロセスを示します。

そのクラスタリングプロセスで発生するループ/反復の回数を数えたいと思います。ループ/反復処理部分のスニペットは次のとおりです。

while 1,
    d=DistMatrix3(data,c);  %// calculate the distance
    [z,g]=min(d,[],2);      %// set the matrix g group

    if g==temp,             %// if the iteration does not change anymore
        break;              %// stop the iteration
    else
        temp=g;             %// copy the matrix to the temporary variable
    end
    for i=1:k
        f=find(g==i);
        if f                %// calculate the new centroid
            c(i,:)=mean(data(find(g==i),:),1);
        end
    end
end

私がしなければならないことは、反復変数を定義してから、計算部分を記述することだけです。しかし、どこで変数を定義する必要がありますか? そしてどうやって?

すべての答えは非常に高く評価されます。

ありがとうございました。

4

2 に答える 2