首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AffinityPropagation聚类的输入格式

AffinityPropagation聚类的输入格式
EN

Stack Overflow用户
提问于 2014-04-04 21:48:18
回答 1查看 2K关注 0票数 2

我使用的是使用预先计算的亲和矩阵的scipy.cluster.hierarchy.linkage方法:

下面是生成上三角矩阵的代码:

代码语言:javascript
复制
distances = np.zeros((len(reprs), len(reprs))) * -1
for i, j in it.combinations(range(len(reprs)), 2):
    distances[i][j] = (reprs[i] - reprs[j])**2

我也可以简明扼要地表示:

代码语言:javascript
复制
distances = distances[np.triu_indices(len(reprs), 1)]

现在我想尝试一下sklearn.cluster.AffinityPropagation,但是我不知道如何发送关联矩阵:

代码语言:javascript
复制
def affinity_cluster(distances):
    ap = sklearn.cluster.AffinityPropagation(preference="precomputed")
    d = ap.fit_predict(???)

来自于文档

fit(X)从负欧氏距离创建亲和矩阵,然后应用亲和传播聚类。参数: X:数组n_samples,n_features或n_samples,n_samples :数据矩阵,如果预先计算出亲和力,则表示相似/相似矩阵。 fit_predict(X,y=None)对X执行聚类并返回集群标签。参数: ndarray,shape (n_samples,n_features)输入数据。返回:y: ndarray,shape (n_samples,)集群标签

所以,他们期待两个元素的元组,但是我有一个M*N矩阵或者M*N/2元素的向量。

那么,我如何使用关联矩阵的sklearn.cluster.AffinityPropogation呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-05 09:40:23

你需要传递一个正方形对称矩阵。array [n_samples, n_samples]应读为array of shape (n_samples, n_samples)。我会马上修好文件的。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22873622

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档