0

私はMatlab clusterdata関数を使用して、ノイズ(ノイズと非ノイズ)をノイズと非ノイズの2つのカテゴリに分類します。この機能は、すべてのノイズデータをグループ1とし、すべてのノンノイズデータをグループ2と名付ける場合もあります。clusterdata Matlab関数

どのようにすることができますか私はそれを制御する?すべてのノイズデータをグループ1にラベル付けすることを意味します。

答えて

0

教師なし学習アルゴリズムが使用するラベルの名前を制御することは、一般的に問題になります。私はクラスタリングを行った後で、ラベルがあなたが望むものであるかどうかを確認した後、データの機能のいくつかを評価しようとします。

すべてのデータがX(N×d)マトリックスにあり、ラベルベクトルY(N×1)が-1と1の値をとる場合、各クラスターの分散を評価することができます。私はノイズデータがより高い分散を示すと考えています。これは、ラベルを切り替える必要があるかどうかを確認するために使用できます。

以下のコードでは、1がノイズでない必要があり、-1はノイズである必要があります(このラベル(グループ)を選択すると、周囲のラベルを簡単に反転できます)。

%#Variance summed over all dimensions  
varL1 = sum(var(X(Y==1,:))); 
varL2= sum(var(X(Y==-1,:))); 

%#Flip labels if if L1 is higher than L2 
if varL1 > varL2 
    Y = Y * (-1); 
end 

これが動作する場合、あなたはその後あなたは= 3、簡単な `Yとラベル1と2を切り替えることができ

Y(Y==1) = 2; %#NB: The order of which these statements are evaluated is important. 
Y(Y==-1) = 1; 
+0

することで、グループ2にグループ1と非ノイズとノイズクラスタを変更することができます - Y ' – yuk