首页 > 解决方案 > “KMeans”对象没有属性“cluster_centers_”

问题描述

我正在使用 Jupyter 笔记本,并且编写了以下代码:

from sklearn.datasets import make_blobs
dataset = make_blobs(n_samples=200, centers = 4,n_features = 2, cluster_std = 1.6, random_state = 50)
points = dataset[0];
from sklearn.cluster import KMeans
kmeans = KMeans(n_clusters = 4)
kmeans.fit(points)
plt.scatter(dataset[0][:,0],dataset[0][:,1])
clusters = kmeans.cluster_centers_

// 下面的行给出了错误:'KMeans' object has no attribute 'cluster_centers_'

clusters = kmeans.cluster_centers_

我期待它显示点的平均值或平均值。

标签: pythonk-means

解决方案


在您的示例中不清楚您的语句是在您调用之前还是之后fit。属性在fit方法中定义。你在之前还是之后调用你的函数fit

如果您这样做,则会出现错误:

from sklearn.datasets import make_blobs
import matplotlib.pyplot as plt

dataset = make_blobs(n_samples=200, centers = 4,n_features = 2, cluster_std = 1.6, random_state = 50)
points = dataset[0]

from sklearn.cluster import KMeans
kmeans = KMeans(n_clusters=4)
clusters = kmeans.cluster_centers_
kmeans.fit(points)

plt.scatter(dataset[0][:,0],dataset[0][:,1])

但是这种方式不会产生错误

from sklearn.datasets import make_blobs
import matplotlib.pyplot as plt

dataset = make_blobs(n_samples=200, centers = 4,n_features = 2, cluster_std = 1.6, random_state = 50)
points = dataset[0]

from sklearn.cluster import KMeans
kmeans = KMeans(n_clusters=4)
kmeans.fit(points)
clusters = kmeans.cluster_centers_

plt.scatter(dataset[0][:,0],dataset[0][:,1])

推荐阅读