Python

【Python3】AttributeError: ‘KMeans’ object has no attribute ‘labels_’ と出ましたが?



1.起こったこと

機械学習の技術書「Pythonではじめる機械学習 ―scikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎」のP168のページ下部のコードを実行したらエラーが起こりました。

エラーの内容は

エラー発生時のコードは以下の通り。

fig, axes = plt.subplots(1, 2, figsize=(10, 5 ))

kmeans = KMeans(n_clusters=2)
assignments = kmeans.labels_
mglearn.discrete_scatter(X[:, 0], X[:,1], assignments, ax=axes[0])

kmeans = KMeans(n_clusters=5)
kmeans.fit(X)
assignments = kmeans.labels_
mglearn.discrete_scatter(X[:, 0], X[:,1], assignments, ax=axes[1])

 

2.試したこと

kmeansがlabels_を持っていないのはおかしいなと思いつつ、スペルが間違っていないか確認しましたが間違っていなかったので諦めてググりました。

3.解決方法

こちらの記事に解決方法がありました。
どうやらしっかしfitさせないといけないみたいです。

fig, axes = plt.subplots(1, 2, figsize=(10, 5 ))

kmeans = KMeans(n_clusters=2)
kmeans.fit(X)
assignments = kmeans.labels_
mglearn.discrete_scatter(X[:, 0], X[:,1], assignments, ax=axes[0])

kmeans = KMeans(n_clusters=5)
kmeans.fit(X)
assignments = kmeans.labels_
mglearn.discrete_scatter(X[:, 0], X[:,1], assignments, ax=axes[1])

fitさせたしっかり機能しました。

ABOUT ME
pillow545
究極の凡夫「くろうさ」といいます。 当ブログでは、私の失敗談・体験談を始めとした、生活や勉強に関係することを発信しています。 もし私の発信する情報があなたの役に立つことができれば幸いです。
関連記事です
%d人のブロガーが「いいね」をつけました。