You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改KNN代码以打印对应最高准确率的k值而非全部得分

KNN最优k值输出修改方案

你可以通过匹配准确率最大值的索引对应到k值即可,修改后的代码如下:

k_range = range(1, 26)
scores = []

for k in k_range:
    knn = KNeighborsClassifier(n_neighbors=k)
    knn.fit(X_train, y_train)
    y_pred = knn.predict(X_test)
    scores.append(metrics.accuracy_score(y_test, y_pred))

# 新增部分:定位最优k值
max_accuracy = max(scores)
# 取第一个出现最高准确率的k值
best_k = k_range[scores.index(max_accuracy)]
print(f"最高准确率:{max_accuracy:.4f},对应最优k值:{best_k}")

以上代码会返回首次达到最高准确率的k值,如果存在多个k对应相同最高准确率的场景,可使用以下代码输出所有符合条件的k:

max_accuracy = max(scores)
all_best_k = [k for k, acc in zip(k_range, scores) if acc == max_accuracy]
print(f"最高准确率:{max_accuracy:.4f},所有对应最优k值:{all_best_k}")

内容的提问来源于stack exchange,提问作者wellsinsideout

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 18:15:03