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 相关文章推荐
pydev使用wxpython找不到路径的解决方法
Feb 10 Python
跟老齐学Python之玩转字符串(2)
Sep 14 Python
python实现Windows电脑定时关机
Jun 20 Python
Python定义一个跨越多行的字符串的多种方法小结
Jul 19 Python
Python读取指定日期邮件的实例
Feb 01 Python
numpy基础教程之np.linalg
Feb 12 Python
基于python plotly交互式图表大全
Dec 07 Python
如何打包Python Web项目实现免安装一键启动的方法
May 21 Python
关于Python 解决Python3.9 pandas.read_excel(‘xxx.xlsx‘)报错的问题
Nov 28 Python
python 模拟登陆163邮箱
Dec 15 Python
pytorch损失反向传播后梯度为none的问题
May 12 Python
利用Pycharm连接服务器的全过程记录
Jul 01 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
一个简单实现多条件查询的例子
2006/10/09 PHP
PHP实现手机归属地查询API接口实现代码
2012/08/27 PHP
探讨fckeditor在Php中的配置详解
2013/06/08 PHP
PHP封装CURL扩展类实例
2015/07/28 PHP
Windows上php5.6操作mongodb数据库示例【配置、连接、获取实例】
2019/02/13 PHP
jQuery的链式调用浅析
2010/12/03 Javascript
如何使Chrome控制台支持多行js模式——意外发现
2013/06/13 Javascript
解决Jquery鼠标经过不停滑动的问题
2014/03/03 Javascript
完美兼容各大浏览器获取HTTP_REFERER方法总结
2014/06/24 Javascript
javascript转换日期字符串为Date日期对象的方法
2015/02/13 Javascript
jQuery通过写入cookie实现更换网页背景的方法
2016/04/15 Javascript
jQuery grep()方法详解及实例代码
2016/10/30 Javascript
vue中路由验证和相应拦截的使用详解
2017/12/13 Javascript
使用live-server快速搭建本地服务器+自动刷新的方法
2018/03/09 Javascript
vue2 mint-ui loadmore实现下拉刷新,上拉更多功能
2018/03/21 Javascript
Angular4.x Event (DOM事件和自定义事件详解)
2018/10/09 Javascript
使用nodejs分离html文件里的js和css详解
2019/04/12 NodeJs
javascript History对象原理解析
2020/02/17 Javascript
[01:52]DOTA2完美大师赛Vega战队趣味视频——kpii老师小课堂
2017/11/25 DOTA
[01:06:26]全国守擂赛第二周 Team Coach vs DeMonsTer
2020/04/28 DOTA
python调用新浪微博API项目实践
2014/07/28 Python
Python Web框架Flask信号机制(signals)介绍
2015/01/01 Python
Python字符串切片操作知识详解
2016/03/28 Python
python清除函数占用的内存方法
2018/06/25 Python
Pandas —— resample()重采样和asfreq()频度转换方式
2020/02/26 Python
Python @property及getter setter原理详解
2020/03/31 Python
美国豪华时尚女性精品店:Kirna Zabête
2018/01/11 全球购物
船餐厅和泰晤士河餐饮游轮:Bateaux London
2018/03/19 全球购物
茶叶生产计划书
2014/01/10 职场文书
自我鉴定写作要点
2014/01/17 职场文书
单位未婚证明范本
2014/01/18 职场文书
《跨越百年的美丽》教学反思
2014/02/11 职场文书
党员教师自我剖析材料
2014/09/29 职场文书
老公保证书
2015/01/17 职场文书
2015年学校后勤工作总结
2015/04/08 职场文书
2016春季田径运动会广播稿
2015/12/21 职场文书