【发布时间】:2021-08-02 18:00:55
【问题描述】:
我有一个包含 6 列的数据集,在使用 KMEAN 之后,我需要在聚类后可视化绘图。我有六个集群。我该怎么做? 这是我的 Kmeans 聚类代码:
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
scaled_features = scaler.fit_transform(psnr_bitrate)
kmeans = KMeans(init="random",n_clusters=6,n_init=10,max_iter=300,random_state=42)
kmeans.fit(scaled_features)
y_kmeans = kmeans.predict(scaled_features)
我在这个链接上找到了另一个帖子: How to visualize kmeans clustering on multidimensional data 但我无法理解解决方案,因为我不知道是什么
cluster
在那段代码中?!
我使用了以下代码:
from sklearn.preprocessing import StandardScaler
from sklearn import cluster
scaler = StandardScaler()
scaled_features = scaler.fit_transform(psnr_bitrate)
kmeans = KMeans(init="random",n_clusters=6,n_init=10,max_iter=300,random_state=42)
kmeans.fit(scaled_features)
y_kmeans = kmeans.predict(scaled_features)
scaled_features['cluster'] = y_kmeans
pd.tools.plotting.parallel_coordinates(scaled_features, 'cluster')
它会产生这个错误:
Traceback (most recent call last):
File "<ipython-input-77-2e66d8a57100>", line 7, in <module>
scaled_features['cluster'] = y_kmeans
IndexError: only integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`None`) and integer or boolean arrays are valid indices
我用于聚类的输入数据是一个像这样的 numpy 变量:
31.764833 35.632833 38.088500 39.877250 41.331917 42.923750
29.832750 34.567500 37.527417 39.621000 41.412583 43.023917
36.777167 41.151333 44.122500 46.237167 47.879083 49.832250
46.871500 52.006333 54.784583 57.099417 58.767833 60.674667
它有 6 列和 1301 行。但我的专栏没有名字。
【问题讨论】:
-
cluster在该代码中对应于from sklearn import cluster -
不,我认为这不是真的。因为在答案代码中我们有这个: from sklearn.preprocessing import StandardScaler scaler = StandardScaler() scaled_features = scaler.fit_transform(psnr_bitrate) kmeans = KMeans(init="random",n_clusters=6,n_init=10,max_iter=300, random_state=42) kmeans.fit(scaled_features) y_kmeans = kmeans.predict(scaled_features) scaled_features['cluster'] = y_kmeans pd.tools.plotting.parallel_coordinates(scaled_features, 'cluster')
-
and cluster 被用作我认为的列
-
是的,字符串
"cluster"在解决方案中用作pandas 数据框的列名。我还是不明白你不明白的... -
我使用了上面的代码,使用集群会产生错误。请看上面我添加的新代码。
标签: python python-3.x pandas matplotlib plot