使用K折交叉验证评估最合适的K值
交叉验证是一个调参的过程,需要对提前给定的K值逐个去尝试,所以花费时间较长
交叉验证的第一步:把训练数据进一步分成训练集和验证集。
问:为什么不用测试集对模型进行验证和评估,而要拆分训练集呢?
答:测试数据是用来一次性测试的,一般用于项目上线时测试使用,而不能用于指导模型训练
工作流程:
- 将数据集分成K(折)段,并将每段拆分成训练集和验证集
- 遍历所有指定的K(KNN)值对每段进行KNN模型训练
- 将每段评估的准确率进行相加,并除以K(折),得出KNN模型为某K值时的最终准确率
- 最终比较所有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,