如何选择KNN的最合适的K值

使用K折交叉验证评估最合适的K值

交叉验证是一个调参的过程,需要对提前给定的K值逐个去尝试,所以花费时间较长

交叉验证的第一步:把训练数据进一步分成训练集和验证集。

问:为什么不用测试集对模型进行验证和评估,而要拆分训练集呢?
答:测试数据是用来一次性测试的,一般用于项目上线时测试使用,而不能用于指导模型训练

工作流程:

  1. 将数据集分成K(折)段,并将每段拆分成训练集和验证集
  2. 遍历所有指定的K(KNN)值对每段进行KNN模型训练
  3. 将每段评估的准确率进行相加,并除以K(折),得出KNN模型为某K值时的最终准确率
  4. 最终比较所有K(KNN)值的最终准确率,最高说明是这几个K(KNN)值中最合适的

现在开始使用K折交叉验证来挑选最合适的K值

导入相关库或模块

from sklearn import datasets
from sklearn.model_selection import KFold
from sklearn.neighbors import KNeighborsClassifier

导入iris数据集

iris = datasets.load_iris()
# X 为特征集,y 为标签集
X = iris['data']
y = iris['target']

然后开始写重要部分

# 这里定义6个候选值
fs =[1,
  • 9
    点赞
  • 89
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值