次元削減後の精度
次元削減を使って過学習を抑えます。ここでは、かなり思い切った方法として、性別の判別に有効な情報を含む1つの列だけを選択します。学習用とテスト用の分割、モデルの学習、予測の手順を繰り返し、テストデータと訓練データでの精度を比較します。
必要なパッケージと y はすでに読み込まれています。
この演習はコースの一部です
Pythonで学ぶ次元削減
演習の手順
ansur_dfから首回り('neckcircumferencebase')の列だけを選択します。- データの分割、分類器のインスタンス化、学習は用意済みです。
- もう一度、訓練セットとテストセットの双方で精度スコアを計算します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Assign just the 'neckcircumferencebase' column from ansur_df to X
X = ansur_df[[____]]
# Split the data, instantiate a classifier and fit the data
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)
svc = SVC()
svc.fit(X_train, y_train)
# Calculate accuracy scores on both train and test data
accuracy_train = accuracy_score(____, svc.predict(____))
accuracy_test = accuracy_score(____, svc.predict(____))
print(f"{accuracy_test:.1%} accuracy on test set vs. {accuracy_train:.1%} on training set")