过拟合与欠拟合
理解模型复杂度是评估监督学习效果的一个重要方法。您的目标是训练出既能刻画特征与目标变量之间关系、又能在新样本上具有良好泛化能力的模型。
训练集和测试集已从 churn_df 数据集创建,并预加载为 X_train、X_test、y_train 和 y_test。
此外,KNeighborsClassifier 已为您导入,同时还将 numpy 以 np 的名称导入。
本练习是课程的一部分
使用 scikit-learn 的监督学习
练习说明
- 创建
neighbors,其为一个从1到12(含12)的numpy数组。 - 实例化一个
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)