我想绘制KMeans ML的质心,但我不明白。添加图形的图片。
from sklearn.cluster import KMeans
from sklearn import metrics
from sklearn.model_selection import train_test_split
y = np.radians(df["LATITUD"]) #series
x = np.radians(df[["LONGITUD"]]) #dataframe
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.30, random_state=0)
KMeans =cluster.KMeans(n_clusters=5)
model2 = KMeans.fit(x_train, y_train)
model2 = KMeans.fit_predict(x_test)
centroids2 = np.array(KMeans.cluster_centers_)
labels = KMeans.labels_
K = 5
figure = plt.figure(figsize=(10,7))
plt.scatter(x_train, y_train, cmap="plasma", linewidths=1);
for k in range(K):
plt.scatter(centroids2[k,0], centroids2[k, 1], s=100, marker='*', color='red')
plt.show()输出: IndexError回溯(最近一次调用) in () 3 plt.scatter(x_train,y_train,cmap=“等离子”,linewidths=1);4 for k in range(K):->5 plt.scatter( centroids2k,0,centroids2k,1,s=100,IndexError=‘*’,s=100=‘red’)6 plt.show() IndexError:索引1超出了轴1的边界,大小为1
发布于 2020-09-10 04:03:41
似乎centroids2是一个向量,而不是您认为的矩阵,所以您不能使用k>0访问centroids2k,1。更准确地说,它可能是一个(1,2)矩阵,所以索引0工作得很好,但索引1超出了界限,因为第二行不存在。你能提供它的形状和/或你用来创建centroids2的代码吗?
https://stackoverflow.com/questions/63818457
复制相似问题