python亲和性分析_Python中基于亲和矩阵的聚类

我正试图找到一堆相似的物体。我为每个对象到对象的比较计算了一个值,并创建了一个如下形式的矩阵:header = [1, 2, 3, 4, 5]

matrix = [[0, 100, 0, 0, 0]

[100, 0, 0, 0, 0]

[0, 0, 0, 0, 0]

[0, 0, 0, 0, 0]

[0, 0, 0, 0, 0]]

我将矩阵传递给sklearn亲和力传播模块:

^{pr2}$

在给定的示例中,我希望1和2聚集在一起,因为1-2/2-1是100,其他所有值都是零。但cls阵列没有反映这一点:cls = [0 0 0 0 1]

这表示1、2、3和4是一个簇,5是一个单独的簇。在

我试图传递右上角的三角矩阵,改变数值大小(即0-1副0-100),等等,但它并没有像预期的那样聚集。在

对我错过了什么有什么想法?在

其他信息2014年10月24日:

我正在对我的对象进行两两比较,从中我生成一个数字,表明每个对象之间的关系如何。这些对象中的许多根本不相关,因此它们的结果是“0”值。在

这将创建一个稀疏的n-by-n矩阵,其中n是10到100个对象的顺序。在

从视觉上看,对我来说“集群”这些对象以进行进一步的分析是很简单的。在以下情况下,1与2相关,2与3相关,但1与3不直接相关。我将继续处理1、2和3,忽略4和5。(在我的实际数据中,我可能在一个矩阵中有多个有效的集群)。在header = [1, 2, 3, 4, 5]

matrix = [[0, 100, 0, 0, 0]

[100, 0, 96, 0, 0]

[0, 96, 0, 0, 0]

[0, 0, 0, 0, 0]

[0, 0, 0, 0, 0]]

我的研究表明亲和力传播在稀疏矩阵中很好地寻找簇,并且我的成对比较可以有效地生成一个“预计算”的亲和力矩阵。在

虽然很容易从视觉上找到这些集群,但我想将其自动化,以便能够将其与之前和之后的代码集成。然而,正如最初的帖子所指出的,我并没有生成有意义的集群。在

问题是:

从我所描述的矩阵开始生成有意义的簇是否需要某种处理?在

我是忽略了一个步骤,还是在算法中插入了一个错误,导致它无法找到我的簇?在

我是否应该对这类数据使用不同的聚类方法(DBSCAN、k-means等)?在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值