過学習と未学習
モデルの複雑さを解釈することは、教師あり学習のパフォーマンスを評価する上で重要な手法です。目標は、特徴量と目的変数の関係を正確に捉えつつ、未知のデータにもうまく汎化できるモデルを構築することです。
訓練セットとテストセットは churn_df データセットから作成済みで、X_train、X_test、y_train、y_test としてあらかじめ読み込まれています。
また、KNeighborsClassifier と numpy(np)もインポート済みです。
この演習はコースの一部です
scikit-learn による教師あり学習
演習の手順
neighborsからnumpyまでの値(両端を含む)がある1配列として12を作成します。KNeighborsClassifierイテレータの値を近傍数として指定し、neighborをインスタンス化します。- モデルを訓練データに適合させます。
.score()メソッドを使って訓練セットとテストセットそれぞれの精度を計算し、train_accuraciesイテレータをインデックスとして用いてtest_accuraciesとneighborに格納します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Create neighbors
neighbors = np.arange(____, ____)
train_accuracies = {}
test_accuracies = {}
for neighbor in neighbors:
# Set up a KNN Classifier
knn = ____(____=____)
# Fit the model
knn.____(____, ____)
# Compute accuracy
train_accuracies[____] = knn.____(____, ____)
test_accuracies[____] = knn.____(____, ____)
print(neighbors, '\n', train_accuracies, '\n', test_accuracies)