始める無料で始める

次元削減後の精度

次元削減を使って過学習を抑えます。ここでは、かなり思い切った方法として、性別の判別に有効な情報を含む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")
コードを編集して実行