更改K-means聚类标签名称

我在Python中使用sklearn进行K-means聚类。我想知道如何更改生成的K-means聚类标签名称。例如:

data          Cluster0.2344         11.4537         22.4428         25.7757         3

我希望达到以下效果:

data          Cluster0.2344         black1.4537         red2.4428         red5.7757         blue

我并不是指通过打印直接设置1 -> black; 2 -> red。我想知道是否可以在K-means聚类模型中默认设置不同的聚类名称。


回答:


没有办法更改默认标签。
您必须使用字典单独映射它们。您可以在文档中查看所有可用方法这里
没有一种可用方法或属性允许您更改默认标签。

使用字典的解决方案:

# 代码a = [0,0,1,1,2,2]mapping = {0:'black', 1:'red', 2:'blue'}a = [mapping[i] for i in a]# 输出['black', 'black', 'red', 'red', 'blue', 'blue']

如果您更改数据或聚类数量:首先我们来看一下可视化:
代码:
导入和生成随机数据:

from sklearn.cluster import KMeansimport numpy as npimport matplotlib.pyplot as pltx = np.random.uniform(100, size =(10,2))

应用K-means算法

kmeans = KMeans(n_clusters=3, random_state=0).fit(x)

获取聚类中心

arr = kmeans.cluster_centers_

您的聚类中心看起来像这样:

array([[23.81072765, 77.21281171],       [ 8.6140551 , 23.15597377],       [93.37177176, 32.21581703]])

这里,第一行是聚类0的中心,第二行是聚类1的中心,依此类推。

可视化中心和数据

plt.scatter(x[:,0],x[:,1])plt.scatter(arr[:,0], arr[:,1])

您会得到如下图形:我的图形

如您所见,您可以访问中心点以及训练数据。如果您的训练数据和聚类数量是恒定的,这些中心点不会真正改变。

但是,如果您添加更多训练数据或增加聚类数量,那么您将需要根据生成的中心点创建新的映射。

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中创建了一个多类分类项目。该项目可以对…

发表回复

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