始める無料で始める

過学習と未学習

モデルの複雑さを解釈することは、教師あり学習のパフォーマンスを評価する上で重要な手法です。目標は、特徴量と目的変数の関係を正確に捉えつつ、未知のデータにもうまく汎化できるモデルを構築することです。

訓練セットとテストセットは churn_df データセットから作成済みで、X_trainX_testy_trainy_test としてあらかじめ読み込まれています。

また、KNeighborsClassifiernumpynp)もインポート済みです。

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

scikit-learn による教師あり学習

コースを見る

演習の手順

  • neighbors から numpy までの値(両端を含む)がある1配列として12 を作成します。
  • KNeighborsClassifierイテレータの値を近傍数として指定し、neighborをインスタンス化します。
  • モデルを訓練データに適合させます。
  • .score()メソッドを使って訓練セットとテストセットそれぞれの精度を計算し、train_accuraciesイテレータをインデックスとして用いてtest_accuraciesneighborに格納します。

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

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

# 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)
コードを編集して実行