始める無料で始める

クラスタラベルの抽出

前の演習では、高さ 6 の時点で穀物サンプルの中間的なクラスタリングが 3 クラスタであることを確認しました。ここでは、fcluster() 関数を使ってこの中間クラスタリングのラベルを抽出し、クロス集計でそのラベルと穀物の品種を比較します。

階層クラスタリングはすでに実行済みで、mergingslinkage() 関数の結果です。リスト varieties には各穀物サンプルの品種が入っています。

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

Pythonで学ぶ教師なし学習

コースを見る

演習の手順

  • 次をインポートします:
    • pandaspd として。
    • scipy.cluster.hierarchy から fcluster
  • mergings に対して fcluster() 関数を用いてフラットな階層クラスタリングを実行します。最大高さとして 6 を指定し、キーワード引数 criterion='distance' を設定します。
  • 列名が 'labels''varieties' の 2 列を持つ DataFrame df を作成し、列の値にはそれぞれ labelsvarieties を使います。これはすでに用意されています。
  • 各クラスタラベルと各穀物品種が一致する回数を数えるため、df['labels']df['varieties'] の間でクロス集計 ct を作成します。

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

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

# Perform the necessary imports
import ____ as ____
from ____ import ____

# Use fcluster to extract 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)
コードを編集して実行