查找特定k-means聚类的大小

我已经在这个问题上挣扎了一段时间,始终无法找到一种方法来获取特定聚类中的数据点数量。以下是我目前的进展:

第一段代码输出我的8个聚类中每个聚类的数据点数量:

 def CountFrequency(my_list):      freq = {}     for item in my_list:         if (item in freq):             freq[item] += 1        else:             freq[item] = 1    for key, value in freq.items():         print ("% d : % d"%(key, value)) ​def clusterCounts(df):    df3 = df.fillna(df.mean())    array3 = df3[['column1', 'column2', 'column3']].values    kmeans = KMeans(n_clusters=8, random_state=42)     kmeans.fit(array3)    return CountFrequency(kmeans.labels_) 

结果如下:

 1 :  26625 6 :  2562 2 :  9892 7 :  2165 3 :  1633 0 :  3072 4 :  1228 5 :  4315 None

(我不确定为什么会有None,但我认为这是一个小问题)

我的下一段代码输出我的8个聚类的每个聚类的中心点:

def clusters(df):    df3 = df.fillna(df.mean())    array3 = df3[['column1', 'column2', 'column3']].values    kmeans = KMeans(n_clusters=8, random_state=42)     kmeans.fit(array3)    kmeans.labels_    clusters = kmeans.cluster_centers_    return clusters

结果如下:

[[49.2  2.4 48.4] [18.9 18.9 62.1] [ 0.2  0.4 99.4] [ 1.1 98.3  0.6] [98.2  1.   0.9] [33.3 32.7 34. ] [27.   1.2 71.7] [ 3.6 51.9 44.5]]

我正在尝试找出如何确定具有[33.3 32.7 34. ]中心点的聚类中的数据点数量。我如何隔离这个中心点的聚类以获取它包含的数据点数量?作为次要问题,我发布的第一个结果代码段中的键(即每个聚类的数据点数量的那个)是否与上面中心点的顺序一致?我希望这清楚明白,提前感谢!


回答:

你为什么不简单地做以下操作呢?

for i in range(len(kmeans.cluster_centers)):  print("Cluster", i)  print("Center:", kmeans.cluster_centers_[i])  print("Size:", sum(kmeans.labels_ == i))

因为TRUE将被视为1,而FALSE被视为0。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注