Python实现K折交叉验证法的方法步骤


Posted in Python onJuly 11, 2019

学习器在测试集上的误差我们通常称作“泛化误差”。要想得到“泛化误差”首先得将数据集划分为训练集和测试集。那么怎么划分呢?常用的方法有两种,k折交叉验证法和自助法。介绍这两种方法的资料有很多。下面是k折交叉验证法的python实现。

##一个简单的2折交叉验证
from sklearn.model_selection import KFold
import numpy as np
X=np.array([[1,2],[3,4],[1,3],[3,5]])
Y=np.array([1,2,3,4])
KF=KFold(n_splits=2) #建立4折交叉验证方法 查一下KFold函数的参数
for train_index,test_index in KF.split(X):
  print("TRAIN:",train_index,"TEST:",test_index)
  X_train,X_test=X[train_index],X[test_index]
  Y_train,Y_test=Y[train_index],Y[test_index]
  print(X_train,X_test)
  print(Y_train,Y_test)
#小结:KFold这个包 划分k折交叉验证的时候,是以TEST集的顺序为主的,举例来说,如果划分4折交叉验证,那么TEST选取的顺序为[0].[1],[2],[3]。

#提升
import numpy as np
from sklearn.model_selection import KFold
#Sample=np.random.rand(50,15) #建立一个50行12列的随机数组
Sam=np.array(np.random.randn(1000)) #1000个随机数
New_sam=KFold(n_splits=5)
for train_index,test_index in New_sam.split(Sam): #对Sam数据建立5折交叉验证的划分
#for test_index,train_index in New_sam.split(Sam): #默认第一个参数是训练集,第二个参数是测试集
  #print(train_index,test_index)
  Sam_train,Sam_test=Sam[train_index],Sam[test_index]
  print('训练集数量:',Sam_train.shape,'测试集数量:',Sam_test.shape) #结果表明每次划分的数量


#Stratified k-fold 按照百分比划分数据
from sklearn.model_selection import StratifiedKFold
import numpy as np
m=np.array([[1,2],[3,5],[2,4],[5,7],[3,4],[2,7]])
n=np.array([0,0,0,1,1,1])
skf=StratifiedKFold(n_splits=3)
for train_index,test_index in skf.split(m,n):
  print("train",train_index,"test",test_index)
  x_train,x_test=m[train_index],m[test_index]
#Stratified k-fold 按照百分比划分数据
from sklearn.model_selection import StratifiedKFold
import numpy as np
y1=np.array(range(10))
y2=np.array(range(20,30))
y3=np.array(np.random.randn(10))
m=np.append(y1,y2) #生成1000个随机数
m1=np.append(m,y3)
n=[i//10 for i in range(30)] #生成25个重复数据

skf=StratifiedKFold(n_splits=5)
for train_index,test_index in skf.split(m1,n):
  print("train",train_index,"test",test_index)
  x_train,x_test=m1[train_index],m1[test_index]

Python中貌似没有自助法(Bootstrap)现成的包,可能是因为自助法原理不难,所以自主实现难度不大。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python常见文件操作的函数示例代码
Nov 15 Python
在Python中使用HTMLParser解析HTML的教程
Apr 29 Python
Python控制多进程与多线程并发数总结
Oct 26 Python
python清理子进程机制剖析
Nov 23 Python
python hook监听事件详解
Oct 25 Python
python程序封装为win32服务的方法
Mar 07 Python
python利用多种方式来统计词频(单词个数)
May 27 Python
python Elasticsearch索引建立和数据的上传详解
Aug 04 Python
django drf框架自带的路由及最简化的视图
Sep 10 Python
Python3.7 pyodbc完美配置访问access数据库
Oct 03 Python
基于python实现文件加密功能
Jan 06 Python
Python爬虫入门案例之回车桌面壁纸网美女图片采集
Oct 16 Python
Python获取命令实时输出-原样彩色输出并返回输出结果的示例
Jul 11 #Python
将python运行结果保存至本地文件中的示例讲解
Jul 11 #Python
详解python实现交叉验证法与留出法
Jul 11 #Python
python程序运行进程、使用时间、剩余时间显示功能的实现代码
Jul 11 #Python
Python循环中else,break和continue的用法实例详解
Jul 11 #Python
Python 获取 datax 执行结果保存到数据库的方法
Jul 11 #Python
python opencv捕获摄像头并显示内容的实现
Jul 11 #Python
You might like
php完全过滤HTML,JS,CSS等标签
2009/01/16 PHP
[原创]php获取数组中键值最大数组项的索引值
2015/03/17 PHP
PHP+MySQL统计该库中每个表的记录数并按递减顺序排列的方法
2016/02/15 PHP
PHP请求远程地址设置超时时间的解决方法
2016/10/29 PHP
CI框架简单分页类用法示例
2020/06/06 PHP
Javascript 中介者模式实例
2009/12/16 Javascript
jQuery版仿Path菜单效果
2011/12/15 Javascript
IE6背景图片不缓存问题解决方案及图片使用策略多个方法小结
2012/05/14 Javascript
jQuery学习笔记之jQuery.extend(),jQuery.fn.extend()分析
2014/06/09 Javascript
理解Javascript图片预加载
2016/02/23 Javascript
javascript html5 canvas实现可拖动省份的中国地图
2016/03/11 Javascript
详解Angular路由 ng-route和ui-router的区别
2017/05/22 Javascript
Vue-router 类似Vuex实现组件化开发的示例
2017/09/15 Javascript
4个顶级开源JavaScript图表库
2018/09/29 Javascript
vue实现双向绑定和依赖收集遇到的坑
2018/11/29 Javascript
node学习笔记之读写文件与开启第一个web服务器操作示例
2019/05/29 Javascript
Python实现二维有序数组查找的方法
2016/04/27 Python
Python Queue模块详细介绍及实例
2016/12/27 Python
python之DataFrame实现excel合并单元格
2021/02/22 Python
详解python之协程gevent模块
2018/06/14 Python
解决Python pandas df 写入excel 出现的问题
2018/07/04 Python
Python3爬虫学习之爬虫利器Beautiful Soup用法分析
2018/12/12 Python
tensorflow 利用expand_dims和squeeze扩展和压缩tensor维度方式
2020/02/07 Python
python isinstance函数用法详解
2020/02/13 Python
Python实现从N个数中找到最大的K个数
2020/04/02 Python
关于python3.7安装matplotlib始终无法成功的问题的解决
2020/07/28 Python
HTML5 文件域+FileReader 分段读取文件并上传到服务器
2017/10/23 HTML / CSS
巴西一家专门从事家居和装饰的连锁店:Camicado
2019/08/14 全球购物
解释一下ruby中的特殊方法与特殊类
2013/02/26 面试题
酒店led欢迎词
2014/01/09 职场文书
大学生通用个人的自我评价
2014/02/10 职场文书
高三学生评语大全
2014/04/25 职场文书
在职党员进社区活动总结
2014/07/05 职场文书
幼儿园感恩节活动方案2014
2014/10/11 职场文书
老人节主持词
2015/07/04 职场文书
2016大一新生军训感言
2015/12/08 职场文书