K 折交叉验证(K-flod cross validation)

当样本数据不充足时,为了选择更好的模型,可以采用交叉验证方法。

基本思想:把给定的数据进行划分,将划分得到的数据集组合为训练集与测试集,在此基础上进行反复训练、测试以及模型选择。

最常用的为 K 折交叉验证。
首先随机将给定数据划分为 K 个互不相交、大小相同的自己;每次选择一个子集当作测试集(不能重复),其余 K-1 个子集作为训练集;一共进行 K 次;最后选择这 K 次中平均测试误差最小的模型。

例子

# coding=utf-8from sklearn import datasets
from sklearn.preprocessing import StandardScaler
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import KFold, cross_val_score
import numpy as npif __name__ == '__main__':# 导入数据iris = datasets.load_iris()# 引入 k 折交叉验证k_fold = KFold(n_splits=5)scores = []knn = KNeighborsClassifier(n_neighbors=3, weights="uniform")for train_indices, test_indices in k_fold.split(iris.data):x_train, x_test, y_train, y_test = iris.data[train_indices], iris.data[test_indices],\iris.target[train_indices], iris.target[test_indices]knn.fit(x_train, y_train)y_predict = knn.predict(x_test)print(f"predict accuracy = {knn.score(x_test, y_test)}")scores.append(knn.score(x_test, y_test))print(f"average predict accuracy = {np.array(scores).mean()} ± {np.array(scores).std()}")# predict accuracy = 1.0# predict accuracy = 1.0# predict accuracy = 0.8333333333333334# predict accuracy = 0.9333333333333333# predict accuracy = 0.7666666666666667# average predict accuracy = 0.9066666666666666 ± 0.0928559218478941

机器学习--K折交叉验证(K-fold cross validation)相关推荐

  1. 10折交叉验证(10-fold Cross Validation)与留一法(Leave-One-Out)、分层采样(Stratification)

    10折交叉验证我们构建一个分类器,输入为运动员的身高.体重,输出为其从事的体育项目-体操.田径或篮球. 一旦构建了分类器,我们就可能有兴趣回答类似下述的问题: 1. 该分类器的精确率怎么样? 2. 该 ...

  2. 10折交叉验证(10-fold Cross Validation)与留一法(Leave-One-Out)、分层采样(Stratification)...

    10折交叉验证 我们构建一个分类器,输入为运动员的身高.体重,输出为其从事的体育项目-体操.田径或篮球. 一旦构建了分类器,我们就可能有兴趣回答类似下述的问题: 1. 该分类器的精确率怎么样? 2. ...

  3. Kaggle上分技巧——单模K折交叉验证训练+多模型融合

    一.K折交叉验证训练单个模型 1.1 k 折交叉验证(K-Fold Cross Validation)原理 通过对 k 个不同分组训练的结果进行平均来减少方差,因此模型的性能对数据的划分就不那么敏感, ...

  4. k折交叉验证(k-fold Cross-validation)

    一.基本概述               交叉验证是在机器学习建立模型和验证模型参数时常用的办法,一般被用于评估一个机器学习模型的表现.更多的情况下,我们也用交叉验证来进行模型选择(model sel ...

  5. Python实现K折交叉验证

    训练集 ​  训练集(Training Dataset)是用来训练模型使用的,在机器学习的7个步骤中,训练集主要在训练阶段使用. 验证集   当我们的模型训练好之后,我们并不知道模型表现的怎么样,这个 ...

  6. 交叉验证方法汇总【附代码】(留一法、K折交叉验证、分层交叉验证、对抗验证、时间序列交叉验证)

    目录 交叉验证是什么? 留一验证(LOOCV,Leave one out cross validation ) LOOCC代码 验证集方法 验证集方法代码 K折交叉验证(k-fold cross va ...

  7. k折交叉验证优缺点_k折交叉验证(R语言)

    "机器学习中需要把数据分为训练集和测试集,因此如何划分训练集和测试集就成为影响模型效果的重要因素.本文介绍一种常用的划分最优训练集和测试集的方法--k折交叉验证." k折交叉验证 ...

  8. Pytorch最简单的图像分类——K折交叉验证处理小型鸟类数据集分类2.0版本ing

    https://blog.csdn.net/hb_learing/article/details/110411532 https://blog.csdn.net/Pl_Sun/article/deta ...

  9. k折交叉验证 k-fold cross-validation

    文章目录 k折交叉验证 k值的确定 实例 使用scikit-learn进行交叉验证 交叉验证是用来评估机器学习方法的有效性的统计学方法,可以使用有限的样本数量来评估模型对于验证集或测试集数据的效果. ...

最新文章

  1. vscode如何用浏览器预览运行html文件
  2. flask框架中勾子函数的使用
  3. 价值100大洋的简体中文汉化补丁下载
  4. Bootstrap3 正文文本样式
  5. 文件服务器配件,文件服务器 硬件配置
  6. 计算机网络之物理层基本概念
  7. 高通说要抢占AI生态入口,投资商汤摩拜,明年推NPU芯片
  8. 网站服务器、VPS和虚拟主机的联系与区别
  9. 备考cfa一、二级的方法和资料
  10. 阿里云商标注册价格和费用
  11. 打砖块 java_java实现打砖块小游戏
  12. 关于equal和==
  13. Neo4j CQL - DELETE删除
  14. 在ubuntu系统上安装指定版本的gfortran
  15. C# 每天定时执行任务(每天凌晨1点执行)
  16. python实现微信接龙统计
  17. 名帖220 赵孟頫 行书《光福寺重建塔记》
  18. MySQL中的uuid()和uuid_short()函数
  19. NOI.5.22津津的储蓄计划
  20. 上海车展,没有争奇斗艳的车模,只有往死里卷的智能汽车

热门文章

  1. 面向犯罪编程,9名程序员锒铛入狱
  2. package.json说明
  3. 总结一下优化算法关系【压缩传感】【图像逆问题】
  4. RedHat系列软件管理(第二版) --二进制软件包管理
  5. 十二. python面向对象主动调用其他类
  6. mavenspringboot项目打包引入lib目录下jar包
  7. 【JUC】JDK1.8源码分析之ConcurrentHashMap
  8. iOS使用shell脚本注入混淆内容
  9. Ubuntu Eclipse ns3编译中 遇到的OSError 系列问题
  10. Google AdSense广告被屏蔽