始める無料で始める

層化サンプリング

volunteer データセットの category_desc 列にあるクラスラベルの分布が偏っていることがわかりました。category_desc を予測するモデルを学習させたい場合、データ全体を代表するサンプルでモデルを学習する必要があります。層化サンプリングは、そのための有効な方法です!

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

Pythonで学ぶMachine Learningの前処理

コースを見る

演習の手順

  • 目的変数 category_desc 以外のすべての列を使って、特徴量の DataFrame X を作成します。
  • category_desc 列からラベルの DataFrame y を作成します。
  • Xy を学習用とテスト用に分割し、両方の集合でラベルのクラス分布が同じになるようにします。
  • .value_counts() を使って、y_train のラベルと件数を表示します。

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

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

# Create a DataFrame with all columns except category_desc
X = volunteer.____(____, axis=____)

# Create a category_desc labels dataset
y = ____[[____]]

# Use stratified sampling to split up the dataset according to the y dataset
X_train, X_test, y_train, y_test = ____(____, ____, ____, random_state=42)

# Print the category_desc counts from y_train
print(____[____].____)
コードを編集して実行