Python K-means无法正确绘制

Python K-means无法正确绘制,python,matplotlib,plot,k-means,Python,Matplotlib,Plot,K Means,我有一个数据来进行k-means聚类: 然后我做了一个阴谋: import matplotlib.pyplot as plt %matplotlib inline import seaborn as sns; sns.set() plt.scatter(X[:,0],X[:,1], c=km.labels_, cmap='rainbow') 但是得到了这个结果: 我得到这个结果的原因可能是什么?您正在绘制X的两个第一维度(种族和性别),颜色是通过K均值找到的簇。因此,得到这些结果并不奇怪

我有一个数据来进行k-means聚类:

然后我做了一个阴谋:

import matplotlib.pyplot as plt
%matplotlib inline
import seaborn as sns; sns.set() 
plt.scatter(X[:,0],X[:,1], c=km.labels_, cmap='rainbow')
但是得到了这个结果:


我得到这个结果的原因可能是什么?

您正在绘制X的两个第一维度(种族和性别),颜色是通过K均值找到的簇。因此,得到这些结果并不奇怪

我相信你正在寻找的是一种成功的方法。为此,您必须可视化K-means用于生成群集的所有功能:但这是41,我们的眼睛只能看到4个

这里有一个有趣的解决方案:41个特性中的大部分信息可以合成为更少的(例如2个)。例如,使用(PCA),可以将X压缩为两个特征。请尝试以下操作:

from sklearn.decomposition import PCA
X_pca = PCA.fit_transform(X, n_dim=2)
plt.scatter(X_pca[:,0], X_pca[:,1], c=km.labels_, cmap='rainbow')

原因是您绘制了种族
X[:,0]
与性别
X[:,1]
,每个簇的颜色不同。我不确定你所说的“正确”是什么意思,但你的标题有误导性,你问的问题也不清楚。
import matplotlib.pyplot as plt
%matplotlib inline
import seaborn as sns; sns.set() 
plt.scatter(X[:,0],X[:,1], c=km.labels_, cmap='rainbow')
from sklearn.decomposition import PCA
X_pca = PCA.fit_transform(X, n_dim=2)
plt.scatter(X_pca[:,0], X_pca[:,1], c=km.labels_, cmap='rainbow')