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分布式环境下的限流器的示例
Oct 26 Python
使用Python+Splinter自动刷新抢12306火车票
Jan 03 Python
使用Python从零开始撸一个区块链
Mar 14 Python
python实现爬取图书封面
Jul 05 Python
Python socket套接字实现C/S模式远程命令执行功能案例
Jul 06 Python
对pycharm代码整体左移和右移缩进快捷键的介绍
Jul 16 Python
python学习--使用QQ邮箱发送邮件代码实例
Apr 16 Python
python实现点击按钮修改数据的方法
Jul 17 Python
Pytorch反向求导更新网络参数的方法
Aug 17 Python
Python编程快速上手——疯狂填词程序实现方法分析
Feb 29 Python
Pycharm导入anaconda环境的教程图解
Jul 31 Python
Python如何将字符串转换为日期
Jul 31 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
曾在DC漫画界反派角色扮演的演员,谁才是你心目中的小丑之王?
2020/04/09 欧美动漫
php 格式化数字的时候注意数字的范围
2010/04/13 PHP
php eval函数用法 PHP中eval()函数小技巧
2012/10/31 PHP
PHP SPL使用方法和他的威力
2013/11/12 PHP
codeigniter教程之多文件上传使用示例
2014/02/11 PHP
网页自动刷新,不产生嗒嗒声的一个解决方法
2007/03/27 Javascript
javascript简单实现跟随滚动条漂浮的返回顶部按钮效果
2016/08/19 Javascript
Node.js批量给图片加水印的方法
2016/11/15 Javascript
JavaScript中的遍历详解(多种遍历)
2017/04/07 Javascript
Vue + Vue-router 同名路由切换数据不更新的方法
2017/11/20 Javascript
在vue项目中引入highcharts图表的方法(详解)
2018/03/05 Javascript
详解微信小程序实现WebSocket心跳重连
2018/07/31 Javascript
js 使用ajax设置和获取自定义header信息的方法小结
2020/03/12 Javascript
Python连接mssql数据库编码问题解决方法
2015/01/01 Python
Python编程中运用闭包时所需要注意的一些地方
2015/05/02 Python
Python 的描述符 descriptor详解
2016/02/27 Python
Python模拟登陆淘宝并统计淘宝消费情况的代码实例分享
2016/07/04 Python
Python实现变量数值交换及判断数组是否含有某个元素的方法
2017/09/18 Python
利用python3随机生成中文字符的实现方法
2017/11/24 Python
python 实现一次性在文件中写入多行的方法
2019/01/28 Python
Django框架实现分页显示内容的方法详解
2019/05/10 Python
matplotlib命令与格式之tick坐标轴日期格式(设置日期主副刻度)
2019/08/06 Python
Python 限定函数参数的类型及默认值方式
2019/12/24 Python
解决django中form表单设置action后无法回到原页面的问题
2020/03/13 Python
Python venv虚拟环境配置过程解析
2020/07/08 Python
浅析NumPy 切片和索引
2020/09/02 Python
巴黎一票通:The Paris Pass
2018/02/10 全球购物
安全标语大全
2014/06/10 职场文书
暑期政治学习心得体会
2014/09/02 职场文书
2014乡镇班子个人对照检查材料思想汇报
2014/09/26 职场文书
简易版租房协议书范本
2014/10/13 职场文书
晚自修旷课检讨书怎么写
2014/11/17 职场文书
2014年勤工助学工作总结
2014/11/24 职场文书
社区端午节活动总结
2015/02/11 职场文书
奖励申请报告范文
2015/05/15 职场文书
检讨书之工作不认真
2019/08/14 职场文书