在python中,如果没有集群质心,如何使集群不可见?

在python中,如果没有集群质心,如何使集群不可见?,python,matplotlib,scikit-learn,data-science,data-mining,Python,Matplotlib,Scikit Learn,Data Science,Data Mining,我有一个包含15个集群的kmeans集群对象。我重新排列了对象的簇中心,并从列表中删除了5个特定的簇中心。现在我想访问我的对象和集群中心。但是我找不到一种方法使一些簇不可见 我最初的群集数据是: 当我尝试将我的kmeans数据对象与其新的群集质心可视化时,我得到以下输出: 我想使簇不可见,而不带“X”标记。我该怎么做 我使用此代码绘制了上述内容: plt.scatter(X_train[:,0], X_train[:,1],c=TrainData[1],cmap='gist_rainbow'

我有一个包含15个集群的kmeans集群对象。我重新排列了对象的簇中心,并从列表中删除了5个特定的簇中心。现在我想访问我的对象和集群中心。但是我找不到一种方法使一些簇不可见

我最初的群集数据是:

当我尝试将我的kmeans数据对象与其新的群集质心可视化时,我得到以下输出:

我想使簇不可见,而不带“X”标记。我该怎么做

我使用此代码绘制了上述内容:

plt.scatter(X_train[:,0], X_train[:,1],c=TrainData[1],cmap='gist_rainbow')
plt.scatter(new_centroids[:,0], new_centroids[:, 1],s = 150, c = 'black', label = 'Centroid', marker="x")
plt.show()

您可以构建过滤器以排除不需要的值。 您需要使用
np.array(TrainData[1])
TrainData[1]
转换为numpy数组(如果还没有)

下面是一个使用sklearns
KMeans
的示例:


将matplotlib.pyplot作为plt导入
从sklearn.cluster导入KMeans
将numpy作为np导入
X_序列=np.随机.正常(大小=(5000,2))
kmeans\u结果=kmeans(n\u集群=15)。拟合(X\u序列)
新质心=kmeans\u result.cluster\u centers_
cluster\u id=kmeans\u result.labels_
#集群ID=np.数组(TrainData[1])
不期望的1=3
不期望的2=5
不期望的3=7
过滤器=(群集ID!=不需要的1)&(群集ID!=不需要的2)&(群集ID!=不需要的3)
plt.scatter(X_列[filter,0],X_列[filter,1],c=cluster_id[filter],cmap='gist_rainbow',alpha=0.4)
所需的_质心_id=np.数组([i代表范围内的i(len(新的_质心)),如果我不在[undesired1,undesired2,undesired3]])
plt.散射(新的质心[期望的质心,0],新的质心[期望的质心,1],s=150,c='黑色',
label='Centroid',marker=“x”)
plt.show()

谢谢您的回复,我尝试了代码,但它给出了一个错误
元组索引必须是整数或切片,而不是元组
列车数据的类型是什么?你能把它转换成一个小数组吗?
df=make_blobs(n_samples=5000,n_features=15,centers=15,cluster_std=1,random_state=10)
,我试图在我之前创建的质心列表中分散质心,但它们出现在不相关的地方。为什么会这样?