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类属性的访问、设置和删除方法
Jul 25 Python
Python实战小程序利用matplotlib模块画图代码分享
Dec 09 Python
解析Python中的eval()、exec()及其相关函数
Dec 20 Python
Tornado Web Server框架编写简易Python服务器
Jul 28 Python
详解pyenv下使用python matplotlib模块的问题解决
Nov 29 Python
Python判断一个list中是否包含另一个list全部元素的方法分析
Dec 24 Python
用sqlalchemy构建Django连接池的实例
Aug 29 Python
Python socket模块方法实现详解
Nov 05 Python
python列表生成器迭代器实例解析
Dec 19 Python
Jupyter notebook 启动闪退问题的解决
Apr 13 Python
使用jupyter Nodebook查看函数或方法的参数以及使用情况
Apr 14 Python
Python中Numpy和Matplotlib的基本使用指南
Nov 02 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和ACCESS写聊天室(九)
2006/10/09 PHP
PHP+APACHE实现用户论证的方法
2006/10/09 PHP
采用PHP函数memory_get_usage获取PHP内存清耗量的方法
2011/12/06 PHP
第七章 php自定义函数实现代码
2011/12/30 PHP
php函数传值的引用传递注意事项分析
2016/06/25 PHP
Laravel Eloquent ORM 实现查询表中指定的字段
2019/10/17 PHP
javascript读取xml
2006/11/04 Javascript
javascript复制对象使用说明
2011/06/28 Javascript
ASP.NET jQuery 实例17 通过使用jQuery validation插件校验ListBox
2012/02/03 Javascript
轻松创建nodejs服务器(4):路由
2014/12/18 NodeJs
js+css绘制颜色动态变化的圈中圈效果
2016/01/27 Javascript
js一维数组、多维数组和对象的混合使用方法
2016/04/03 Javascript
基于node实现websocket协议
2016/04/25 Javascript
jQuery学习心得总结(必看篇)
2016/06/10 Javascript
一种基于浏览器的自动小票机打印实现方案(js版)
2016/07/26 Javascript
Node.js编写CLI的实例详解
2017/05/17 Javascript
JS实现字符串中去除指定子字符串方法分析
2018/05/17 Javascript
vue实现引入本地json的方法分析
2018/07/12 Javascript
JQueryDOM之样式操作
2019/03/27 jQuery
关于vue状态过渡transition不起作用的原因解决
2019/04/09 Javascript
Python数据结构与算法之图的最短路径(Dijkstra算法)完整实例
2017/12/12 Python
分析Python读取文件时的路径问题
2018/02/11 Python
python文件处理fileinput使用方法详解
2020/01/02 Python
利用python3筛选excel中特定的行(行值满足某个条件/行值属于某个集合)
2020/09/04 Python
python实现数学模型(插值、拟合和微分方程)
2020/11/13 Python
英国最大的运动营养公司之一:LA Muscle
2018/07/02 全球购物
装潢设计实习自我鉴定
2013/09/19 职场文书
建筑工程质量通病防治方案
2014/06/08 职场文书
房产公证委托书范本
2014/09/20 职场文书
2015公司年度工作总结
2015/05/14 职场文书
初中家长意见
2015/06/03 职场文书
2015年中秋晚会主持稿
2015/07/30 职场文书
推普标语口号大全
2015/12/26 职场文书
python urllib库的使用详解
2021/04/13 Python
拙作再改《我的收音机情缘》
2022/04/05 无线电
pd.DataFrame中的几种索引变换的实现
2022/06/16 Python