“KMeans”对象没有属性“cluster_centers_”

san*_*san 3 python k-means

我正在使用 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_
Run Code Online (Sandbox Code Playgroud)

// 下面的行给出错误: 'KMeans' 对象没有属性 'cluster_centers_'

clusters = kmeans.cluster_centers_
Run Code Online (Sandbox Code Playgroud)

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

Luk*_*e B 5

在您的示例中不清楚您的语句是在 call 之前还是之后出现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])
Run Code Online (Sandbox Code Playgroud)

但这种方式不会产生错误

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])
Run Code Online (Sandbox Code Playgroud)