如何在单个数据帧中为villagewise应用Kmeans cluster,如何自动确定villagewise的集群数量

2024-07-04 15:48:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我想根据村庄的情况来确定集群的数量,即分别为村庄1数据、村庄2数据……分别为村庄n数据

我知道如何为单个村庄(单个数据)使用k均值确定集群数量。 但现在我有500个村庄,每个村庄总共有50000排

所以我想将数据集作为一个村庄应用——单个数据帧……并应用k-means集群分别标识每个村庄所需的集群数量

是否有任何使用函数等动态方式来完成此操作

>>> import matplotlib.pyplot as plt
>>> clustNos = [2,3,4,5,6,7,8,9,10]
>>> Inertia = []
>>> from sklearn.cluster import KMeans
>>> for i in clustNos :
    model = KMeans(n_clusters=i)
    model.fit(df)
    Inertia.append(model.inertia_)



>>> plt.plot(clustNos, Inertia, '-o')
>>> plt.title("Scree Plot")
>>> plt.xlabel('Number of clusters, k')
>>> plt.ylabel('Inertia')
>>> plt.xticks(clustNos)
>>> plt.show()
>>> model = KMeans(n_clusters=4)
>>> model.fit(df)
KMeans(algorithm='auto', copy_x=True, init='k-means++', max_iter=300,
       n_clusters=4, n_init=10, n_jobs=None, precompute_distances='auto',
       random_state=None, tol=0.0001, verbose=0)
>>> labels = model.predict(df)
>>> clusterID = pd.DataFrame(labels)
>>> clusteredData = pd.concat([df,clusterID],axis=1)
>>> clusteredData.rename(columns={0:'Group'})

enter image description here


Tags: 数据importdfauto数量model集群plt

热门问题