MATLAB で k-means を使用しています。有効なクラスターを処理するには、クラスターの位置が変更されなくなるまでループを実行する必要があります。そのため、10 回を超える繰り返しのループが可能です。そして、それは長い時間がかかるかもしれません。
そのため、ユーザーに反復を設定させたいと考えています。例: ユーザーが反復に '3' を入力すると、反復は 3 回まで継続されます。反復プロセスのスニペットを次に示します。
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 doesn't 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
私が知っているのは、ユーザーが反復回数を入力できるように変数を定義する必要があるということだけです。その変数は、ループ/反復プロセスに使用されます。まで削除while 1
してみましたfor i=1:iteration
。しかし、それはまだ私が望むようには機能しません。誰でもこれを行う方法を知っていますか?
すべての答えは高く評価されます。
ありがとうございました。