分層抽樣(Stratified sampling)
你現在知道 volunteer 資料集中 category_desc 欄位的類別標籤分佈並不平均。若你想訓練一個模型來預測 category_desc,就需要確保模型是用能代表整個資料集的樣本來訓練。分層抽樣就是達成這件事的方法之一!
本練習屬於課程
Python 的 Machine Learning 前處理
練習說明
- 建立特徵的 DataFrame
X,包含除了category_desc以外的所有欄位。 - 從
category_desc欄位建立標籤的 DataFramey。 - 將
X與y分割為訓練集與測試集,並確保兩個資料集中標籤的類別分佈相同。 - 使用
.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(____[____].____)