学习器在测试集上的误差我们通常称作“泛化误差”。要想得到“泛化误差”首先得将数据集划分为训练集和测试集。那么怎么划分呢?常用的方法有两种,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)现成的包,可能是因为自助法原理不难,所以自主实现难度不大。

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

k折交叉验证 python_Python实现K折交叉验证法的方法步骤相关推荐

  1. python交叉验证法_Python实现K折交叉验证法的方法步骤

    学习器在测试集上的误差我们通常称作"泛化误差".要想得到"泛化误差"首先得将数据集划分为训练集和测试集.那么怎么划分呢?常用的方法有两种,k折交叉验证法和自助法 ...

  2. python k折交叉验证,python中sklearnk折交叉验证

    python中sklearnk折交叉验证 发布时间:2018-06-10 11:09, 浏览次数:492 , 标签: python sklearnk 1.模型验证回顾 进行模型验证的一个重要目的是要选 ...

  3. matlab-K折交叉验证与分层K折交叉验证

    文章目录 K折交叉验证有什么用? 如何实现K折交叉验证? K折交叉验证的要点:(文字版) 如何实现K折交叉验证(图片版) 如何实现K折交叉验证(matlab版) 为啥我们需要分层K折交叉验证? 如何实 ...

  4. 5折交叉验证_数据集的划分——交叉验证法

    本文作者:王 歌 文字编辑:戴 雯 技术总编:张 邯 前面我们在举例时,通常是将所使用的数据集按照75%和25%的比例划分为训练集和测试集,这主要是为了我们举例方便,同时划分后的数据量也依然符合大样本 ...

  5. 机器学习算法------1.10 交叉验证,网格搜索(交叉验证,网格搜索(模型选择与调优)API、鸢尾花案例增加K值调优)

    文章目录 1.10 交叉验证,网格搜索 学习目标 1 什么是交叉验证(cross validation) 1.1 分析 1.2 为什么需要交叉验证 2 什么是网格搜索(Grid Search) 3 交 ...

  6. 十折交叉验证pythoniris_数据集的划分——交叉验证法

    本文作者:王 歌 文字编辑:戴 雯 技术总编:张 邯Python云端培训课程火热招生中~重大通知!!!爬虫俱乐部于2020年7月11日至14日在线上举行为期四天的Stata编程技术定制培训,招生工作已 ...

  7. Python使用tpot获取最优模型、将最优模型应用于交叉验证数据集(5折)获取数据集下的最优表现,并将每一折(fold)的预测结果、概率、属于哪一折与测试集标签、结果、概率一并整合输出为结果文件

    Python使用tpot获取最优模型.将最优模型应用于交叉验证数据集(5折)获取数据集下的最优表现,并将每一折(fold)的预测结果.概率.属于哪一折与测试集标签.结果.概率一并整合输出为结果文件 目 ...

  8. 交叉验证分析每一折(fold of Kfold)验证数据的评估指标并绘制综合ROC曲线

    交叉验证分析每一折(fold of Kfold)验证数据的评估指标并绘制综合ROC曲线 Receiver Operating Characteristic (ROC) with cross valid ...

  9. 通过交叉验证寻找K近邻算法的最优K值

    问题引出 之前我们使用K近邻算法尝试寻找用户年龄与预估薪资之间的某种相关性,以及他们是否有购买SUV的决定.主要代码如下: from sklearn.neighbors import KNeighbo ...

最新文章

  1. 移动硬盘改台式机硬盘_如何在台式机或移动设备上离线使用Google云端硬盘
  2. 洛谷——P1305 新二叉树(新建二叉树以及遍历)
  3. python 动态加载与静态加载_python中的元类、静态方法、类方法,动态添加方法...
  4. Sharepoint2013:在页面上显示错误信息
  5. mysql装载本地文件及模式匹配
  6. 系统分析与设计学习笔记(一)
  7. 内Sane外Win:敏捷需要一流的项目经理
  8. python使用大数据分析师工资待遇_2020年大数据分析师工资多少
  9. 新浪2010南非足球世界杯漂亮表格的制作
  10. 怎么查看电脑配置详情
  11. Symbian OS v9.x SIS 文件格式说明书
  12. 51单片机系列——定时/计数器
  13. 基于OpenXR,Collabora推开源VI-SLAM AR/VR定位系统
  14. u盘启动Linux什么时候可以拔下来,u盘装系统什么时候拔u盘|pe重装系统什么时候拔掉u盘...
  15. 帝国cms tag生成html,帝国CMS tags标签多种调用方法
  16. 深度学习:loss损失不下降
  17. WIN7任务栏里面无用的图标如何清除
  18. 电信云堤·抗D(电信云堤清洗高防服务器)提供超强T级DDoS处理能力
  19. 高分难题,绝对有难度
  20. Hashtag-Based Sub-Event Discovery Using Mutually Generative LDA in Twitter 阅读笔记

热门文章

  1. java 关于Scanner类中hasNextXxx()方法
  2. 清华山维EPS三维测图无法进行OSGB格式转换问题(实测)
  3. svn访问报错500
  4. 医学主题词表(Medical Subject Headings, MeSH)
  5. 客户端和服务器的关系
  6. MusicLM:Generating Music From Text
  7. 【精华】OCR关键信息提取之SER和RE
  8. 【信号处理】基于蚁群优化随机共振检测附matlab代码
  9. 703n的OpenWrt配置四:把路由器变成下载机
  10. BZOJ 4544: 椭圆上的整点