在 Python 中使用 scikit-learn 库可以很方便地进行 KNN 模型的交叉验证和超参数搜索。
首先,需要准备好训练数据和测试数据。接着,实例化一个 KNN 模型,并使用 GridSearchCV 函数进行超参数搜索。在调用 fit 函数时,使用训练数据进行训练,并使用测试数据进行评估。可以使用 cv_results_ 属性查看每一折的精度,或者使用 best_score_ 属性查看最优精度。
具体代码如下:
from sklearn.model_selection import GridSearchCV
from sklearn.neighbors import KNeighborsClassifier
# 准备好训练数据和测试数据
X_train, X_test, y_train, y_test = ...
# 实例化 KNN 模型
knn = KNeighborsClassifier()
# 设置参数网格
param_grid = {'n_neighbors': [1, 3, 5, 7, 9, 11, 13, 15]}
# 实例化 GridSearchCV 对象
grid_search = GridSearchCV(knn, param_grid, cv=5)
# 进行超参数搜索
grid_search.fit(X_train, y_train)
# 查看每一折的精度
print(grid_search.cv_results_['mean_test_score'])
# 查看最优精度
print(grid_search.best_score_)
希望这些信息能帮到你!