不能按集群对数据点进行分组

问题描述 投票:0回答:1

我有一个数据列表,每个数据点有5个特征,并为每个点分配了一个簇。你可以在这里看到它的开头,最后一列是簇号。

[[4.01682810e-01 2.14628527e-02 2.99529665e-02 2.79935965e-01 9.21441137e-01 9.00000000e+00]
[9.32087200e-03 3.38196129e-01 8.49571569e-01 3.69402590e-01 1.92096835e-01 1.20000000e+01]
[7.51465196e-01 4.45955645e-01 3.37174838e-01 3.65047097e-01 5.81725084e-01 1.00000000e+00]

我想创建一个由同一集群的数据点组成的列表 所以我写了下面的函数并尝试执行它

def returnArrayOfClusters(data, clusterNumbers):
    # create an empty column
    column = []
    # create an empty list we want to output
    listOfClusters = []
    # fill it with a column for each cluster
    for i in clusterNumbers:
        listOfClusters.append(column)
    print(listOfClusters)
    ## fill the columns with points according to their cluster
    for datapoint in data:
        print(datapoint)
        cluster = int(datapoint[5])
        listOfClusters[cluster].append(datapoint)
    return listOfClusters

listOfClusters = returnArrayOfClusters(data_labeled_unfinished, range(0,14))

我得到的是一个无序的数据点列表(列表的末尾),你可以看到列中的所有点都属于不同的集群(它们有不同的最后值)。

array([ 0.81802695,  0.45533606,  0.33799001,  0.26154893,  0.64155249,
13.        ]), array([0.12995366, 0.45586338, 0.85833814, 0.32153188, 0.28736836,
1.        ]), array([0.06230581, 0.47400143, 0.78671841, 0.3162376 , 0.04819034,
9.        ]), array([0.15291747, 0.54247295, 0.54407916, 0.87888682, 0.46639597,
8.        ]), array([ 0.21578994,  0.178303  ,  0.80642112,  0.39853499,  0.27832876,
10.        ]), array([0.27426491, 0.32986967, 0.49411613, 0.50818875, 0.2336591 ,
5.        ])]

也许这是一个非常愚蠢的错误,但我就是不能发现这个错误.我希望看到的是,然而,列表中的所有点都是同一个簇(即在输出中的第6项有相同的值)。

python list cluster-analysis
1个回答
0
投票

希望我说的没错,你可以用列表理解来分割你的数据,比如说。

from sklearn.cluster import KMeans
import numpy as np
X = np.random.normal(0,1,(100,5))
kmeans = KMeans(n_clusters=8, random_state=0).fit(X)
data = np.concatenate((X,kmeans.labels_.reshape(-1,1)),axis=1)

[data[data[:,5]==i,] for i in np.unique(data[:,5])]

在你的情况下,

[data_labeled_unfinished[data_labeled_unfinished[:,5]==i,] for i in np.unique(data_labeled_unfinished[:,5])]
© www.soinside.com 2019 - 2024. All rights reserved.