過度擬合與不足擬合
解讀模型複雜度是評估監督式學習效能的好方法。你的目標是建立一個模型,既能解讀特徵與目標變數之間的關係,也能在面對新觀測時有良好的泛化能力。
churn_df 資料集已切分成訓練集與測試集,並預先載入為 X_train、X_test、y_train、y_test。
此外,KNeighborsClassifier 與 numpy(縮寫為 np)也已經替你匯入。
本練習屬於課程
使用 scikit-learn 進行監督式學習
練習說明
- 建立
neighbors,其為從1到12(含) 的numpy陣列。 - 以
neighbor迭代器的值作為鄰居數,實例化一個KNeighborsClassifier。 - 將模型擬合到訓練資料。
- 使用
.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)