穀物のクラスタリングを評価する
前の演習では、SSEのプロットから、穀物データには3つのクラスタが適していることが分かりました。実際、この穀物サンプルは「Kama」「Rosa」「Canadian」という3種類の穀物品種から構成されています。この演習では、穀物サンプルを3つのクラスタに分類し、クロス集計を使ってクラスタと実際の穀物品種を比較します。
穀物サンプルの配列samplesと、各サンプルの穀物品種を示すリストvarieties が用意されています。Pandas(pd)とKMeansはすでにインポート済みです。
この演習はコースの一部です
Pythonで学ぶ教師なし学習
演習の手順
- クラスタ数
3を指定してKMeansモデルを作成し、modelという名前を付けてください。 modelの.fit_predict()メソッドを使ってsamplesにフィットさせ、クラスタラベルを求めてください。.fit_predict()を使うのは、.fit()の後に.predict()を使うのと同じことです。labelsとvarietiesの値を使い、それぞれと'labels'と'varieties'いう名前の2つの列を持つDataFramedfを作成します。これはすでに完了しています。df['labels']とdf['varieties']に対してpd.crosstab()関数を使い、各穀物品種が各クラスタラベルと一致する回数をカウントしてください。結果は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)