2011-06-21 27 views
1

我正在研究一种聚类算法来对实数的相似范围进行分组。将它们分组后,我必须为该群集创建一个范围,即群集质心。例如,如果一个群集包含值< 1,6>,< 0,7>和< 0,6>,则表示该群集适用于所有值为< 0,7>的群集。问题是如何创建这样的结果范围。我正在考虑采用簇中所有值的最小值和最大值,但这意味着该算法对噪声非常敏感。我应该以某种方式加权,但我不知道如何。任何提示?谢谢。创建容易出现噪声的集群质心

回答

0

也许您可以在运行聚类算法之前将所有范围转换为其中点。这样你就可以将你的问题转换成一条线上的聚类点。以前,质心范围可能会“增长”,并且在下一次迭代中会消耗更多可能属于另一个集群的范围。

midpoints = [] 
for range in ranges 
    midpoints[range] = range.min + (range.max - range.min)/2 
end 

后的算法完成,你可以做你先前建议,并采取所有范围的最小值和最大值集群中创建质心的范围内。