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 文件操作技巧(File operation) 实例代码分析
Aug 11 Python
Python中使用wxPython开发的一个简易笔记本程序实例
Feb 08 Python
Python编程实现的简单神经网络算法示例
Jan 26 Python
Python使用numpy实现BP神经网络
Mar 10 Python
python实现事件驱动
Nov 21 Python
Python自定义一个类实现字典dict功能的方法
Jan 19 Python
Python lambda表达式filter、map、reduce函数用法解析
Sep 11 Python
ubuntu 18.04 安装opencv3.4.5的教程(图解)
Nov 04 Python
pyinstaller将含有多个py文件的python程序做成exe
Apr 29 Python
Keras 数据增强ImageDataGenerator多输入多输出实例
Jul 03 Python
浅谈django框架集成swagger以及自定义参数问题
Jul 07 Python
Pytho爬虫中Requests设置请求头Headers的方法
Sep 22 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制作百度词典查词采集器
2015/01/29 PHP
PHP curl伪造IP地址和header信息代码实例
2015/04/27 PHP
php实现的简单检验登陆类
2015/06/18 PHP
ThinkPHP中图片按比例切割的代码实例
2019/03/08 PHP
为你的网站增加亮点的9款jQuery插件推荐
2011/05/03 Javascript
最新28个很棒的jQuery 教程
2011/05/28 Javascript
解析使用JS 清空File控件的路径值
2013/07/08 Javascript
利用js(jquery)操作Cookie的方法说明
2013/12/19 Javascript
jquery基础教程之数组使用详解
2014/03/10 Javascript
推荐一个自己用的封装好的javascript插件
2015/01/29 Javascript
浅谈JavaScript超时调用和间歇调用
2015/08/30 Javascript
javascript实现base64 md5 sha1 密码加密
2015/09/09 Javascript
js验证框架之RealyEasy验证详解
2016/06/08 Javascript
JS中闭包的经典用法小结(2则示例)
2016/12/28 Javascript
Node.js搭建WEB服务器的示例代码
2018/08/15 Javascript
微信小程序引入Vant组件库过程解析
2019/08/06 Javascript
vue实现简单瀑布流布局
2020/05/28 Javascript
JS实现鼠标按下拖拽效果
2020/07/23 Javascript
用Python的SimPy库简化复杂的编程模型的介绍
2015/04/13 Python
用python代码将tiff图片存储到jpg的方法
2018/12/04 Python
对python 通过ssh访问数据库的实例详解
2019/02/19 Python
Django使用list对单个或者多个字段求values值实例
2020/03/31 Python
keras 读取多标签图像数据方式
2020/06/12 Python
在Mac中配置Python虚拟环境过程解析
2020/06/22 Python
CSS3圆角和渐变2种常用功能详解
2016/01/06 HTML / CSS
澳大利亚制造的蜡烛和扩散器:Glasshouse Fragrances
2018/05/20 全球购物
俄罗斯美容和健康网上商店:Созвездие Красоты
2019/07/23 全球购物
潘多拉珠宝俄罗斯官方网上商店:PANDORA俄罗斯
2020/09/22 全球购物
电信专业毕业生推荐信
2013/11/18 职场文书
上班离岗检讨书
2014/01/27 职场文书
最新优秀教师个人先进事迹材料
2014/05/06 职场文书
涪陵白鹤梁导游词
2015/02/09 职场文书
岗位聘任报告
2015/03/02 职场文书
社团招新宣传语
2015/07/13 职场文书
2019年销售部季度工作计划3篇
2019/10/09 职场文书
对讲机的最大通讯距离是多少
2022/02/18 无线电