【问题标题】:clusterdata Matlab function集群数据 Matlab 函数
【发布时间】:2012-01-15 15:20:33
【问题描述】:

我正在使用 Matlab clusterdata 函数将我的数据(噪声和非噪声)分为 2 类:噪声组和非噪声组。该函数运行良好,只是有时它将所有噪声数据命名为第 1 组,将所有非噪声数据命名为第 2 组。有时它将所有噪声数据命名为第 2 组,将所有非噪声数据命名为第 1 组。

我该如何控制它?我的意思是将所有噪声数据标记为第 1 组。

【问题讨论】:

    标签: matlab statistics cluster-analysis hierarchical-clustering


    【解决方案1】:

    控制无监督学习算法使用的标签名称通常是个问题。我建议在进行聚类后尝试评估数据的一些特征,看看标签是否符合您的要求。

    如果您的所有数据都在 X (N x d) 矩阵中,并且标签向量 Y(N x 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
    

    如果这可行,您可以随后将噪声簇更改为第 1 组,将非噪声更改为第 2 组

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

    【讨论】:

    • 可以用简单的Y = 3 - Y切换标签1和2
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-13
    • 1970-01-01
    • 2012-05-29
    • 2017-04-03
    • 1970-01-01
    • 1970-01-01
    • 2017-06-01
    相关资源
    最近更新 更多