【发布时间】:2021-09-16 23:48:29
【问题描述】:
我使用凝聚聚类算法对 51x56 数据集进行聚类。该算法有效,但我想为聚类添加一个条件。对于要放在同一个集群中的数据点,我需要特定列中的值相同。
z=df.apply(lambda x: pd.factorize(x)[0])
cluster = AgglomerativeClustering(n_clusters=None,distance_threshold=(10), affinity='euclidean', linkage='ward')
cluster.fit_predict(z)
z 是一个分解的数据框。该数据框的一部分如下所示。
0 0 0 0 0 ... 0 -1 -1 -1
1 0 0 0 0 ... -1 -1 -1 -1
2 0 0 0 0 ... 1 -1 -1 -1
3 0 0 0 0 ... -1 -1 -1 -1
4 0 0 0 0 ... 0 -1 -1 -1
5 0 0 0 0 ... 0 -1 -1 -1
6 0 0 0 0 ... 0 -1 -1 -1
7 0 0 0 0 ... 0 -1 -1 -1
8 0 0 0 0 ... 0 -1 -1 -1
9 0 0 0 0 ... -1 -1 -1 -1
10 0 1 1 1 ... 0 -1 -1 -1
11 0 1 1 1 ... -1 -1 -1 -1
12 0 2 1 2 ... 0 -1 -1 -1
13 0 2 1 2 ... -1 -1 -1 -1
14 0 3 1 3 ... 0 -1 -1 -1
15 0 3 1 3 ... -1 -1 -1 -1
16 1 4 1 4 ... 0 -1 -1 -1
17 1 4 1 4 ... 1 -1 -1 -1
假设第 3 列是我要为其指定条件的列。因此,例如,我目前得到的是将第 9 行和第 10 行放入同一个集群中。但是查看它们在第 3 列中的值,您可以看到第 9 行的值为 0,第 10 行的值为 1。我想要一个代码,如果这些值相同,则只允许将它们放入同一个集群中,不管该值是 0 还是 1 或任何其他数字。
【问题讨论】:
标签: python machine-learning scikit-learn hierarchical-clustering unsupervised-learning