始める無料で始める

穀粒クラスタリングの評価

前の演習では、慣性(inertia)のプロットから、この穀粒データに対してはクラスタ数を3にするのが良さそうだと分かりました。実際、この穀粒サンプルは「Kama」「Rosa」「Canadian」という3種類の品種が混ざっています。本演習では、穀粒サンプルを3つのクラスタに分け、クロス集計を使ってクラスタと品種を比較します。

穀粒サンプルを格納した配列 samples と、各サンプルの品種を示すリスト varieties が用意されています。Pandas(pd)と KMeans はすでにインポート済みです。

この演習はコースの一部です

Pythonで学ぶ教師なし学習

コースを見る

演習の手順

  • クラスタ数が 3KMeans モデル model を作成します。
  • model.fit_predict() メソッドを使って samples に当てはめ、クラスタラベルを得ます。.fit_predict() は、.fit() の後に .predict() を呼ぶのと同じです。
  • 2列 'labels''varieties' を持つ DataFrame df を作成し、列の値としてそれぞれ labelsvarieties を使います。これはすでに用意されています。
  • pd.crosstab()df['labels']df['varieties'] に対して使い、各クラスタラベルと各穀粒品種の一致回数を数えます。結果を ct に代入します。
  • 提出してクロス集計を確認しましょう!

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Create a KMeans model with 3 clusters: model
model = ____

# Use fit_predict to fit model and obtain cluster labels: labels
labels = ____

# Create a DataFrame with labels and varieties as columns: df
df = pd.DataFrame({'labels': labels, 'varieties': varieties})

# Create crosstab: ct
ct = ____

# Display ct
print(ct)
コードを編集して実行