我试图在使用 PCA 和 k 后输出聚类图 - 表示使用以下代码进行聚类:
Mergory=Mergory.astype(np.float32)
scaler = StandardScaler()
scaler.fit(Mergory)
Mergory = scaler.transform(Mergory)
pca.fit(Mergory)
Mergory = pca.transform(Mergory)
from sklearn.cluster import KMeans
kmeans = KMeans(n_clusters=3)
kmeans.fit(Mergory)
labels = kmeans.predict(Mergory)
centroids = kmeans.cluster_centers_
然后我尝试使用以下我在网上找到的编码在图表中获取输出:
fig = plt.figure(figsize=(5, 5))
colors = map(lambda x: colmap[x+1], labels)
plt.scatter(Mergory['hospitalizations_one_year'], Mergory['fried'], color=colors, alpha=0.5, edgecolor='k')
for idx, centroid in enumerate(centroids):
plt.scatter(*centroid, color=colmap[idx+1])
plt.show()
我收到此错误:
IndexError Traceback (most recent call last)
<ipython-input-26-da3a8ac504f4> in <module>
3 colors = map(lambda x: colmap[x+1], labels)
4
----> 5 plt.scatter(Mergory['hospitalizations_one_year'], Mergory['fried'], color=colors, alpha=0.5, edgecolor='k')
6 for idx, centroid in enumerate(centroids):
7 plt.scatter(*centroid, color=colmap[idx+1])
IndexError: only integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`None`) and integer or boolean arrays are valid indices
<Figure size 360x360 with 0 Axes>
有谁知道解决这个问题或是什么原因造成的?
你把你的pd.DataFrame
变成了一个np.array
:
Mergory = scaler.transform(Mergory)
pca.fit(Mergory)
Mergory = pca.transform(Mergory)
因此,您不能像这里那样在其上使用列索引:
Mergory['hospitalizations_one_year'], Mergory['fried']
此示例引发相同的错误:
import numpy as np
arr = np.random.rand(4, 4)
arr['col 1']
索引错误:只有整数、切片 (
:
(、省略号 (...
(、numpy.newaxis (None
( 和整数或布尔数组是有效的索引