Scipy linkage()函数返回不一致的结果

时间:2013-11-12 06:21:52

标签: scipy linkage hierarchical-clustering

我有一个C#程序进行一些分析,打印出一个完整的2D距离值矩阵,然后启动一个scipy python进程(anaconda,fwiw)来进行分层聚类。这是问题所在:我需要对它们施加某种排序,以便它们沿每个轴排序。我的代码或多或少看起来像这样:

var set = set.OrderBy(x => x.GetHashCode());

foreach(Point p1 in set)
{
  foreach(Point p2 in set)
  {
    double distance = Distance(p1,p2);
    //save out the distance so that it can be written to a 2d matrix
  }
}

//write out the 2d matrix...

//call python...

这就是诀窍:当我改变排序方案时 - 可能按大小排序,甚至是随机数生成器 - python为同一个截止值计算不同数量的簇。我知道距离值是相同的 - 我将它们按大小排序打印到单个字符串并计算该字符串上的md5哈希值,并且哈希值始终相同。我知道scipy中的linkage()函数不喜欢2d矩阵(我读过的一些错误),但是一旦读入2d矩阵,我将其转换为带方形(distMatrix)的压缩矩阵,如下所示:{ {3}}

无论如何,有什么想法吗?我真的很难相信scipy有这个bug,但我的选择已经用完了......

谢谢! -denny -

0 个答案:

没有答案
相关问题