k折交叉验证 python_Python实现K折交叉验证法的方法步骤
学习器在测试集上的误差我们通常称作“泛化误差”。要想得到“泛化误差”首先得将数据集划分为训练集和测试集。那么怎么划分呢?常用的方法有两种,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折交叉验证法的方法步骤相关推荐
- python交叉验证法_Python实现K折交叉验证法的方法步骤
学习器在测试集上的误差我们通常称作"泛化误差".要想得到"泛化误差"首先得将数据集划分为训练集和测试集.那么怎么划分呢?常用的方法有两种,k折交叉验证法和自助法 ...
- python k折交叉验证,python中sklearnk折交叉验证
python中sklearnk折交叉验证 发布时间:2018-06-10 11:09, 浏览次数:492 , 标签: python sklearnk 1.模型验证回顾 进行模型验证的一个重要目的是要选 ...
- matlab-K折交叉验证与分层K折交叉验证
文章目录 K折交叉验证有什么用? 如何实现K折交叉验证? K折交叉验证的要点:(文字版) 如何实现K折交叉验证(图片版) 如何实现K折交叉验证(matlab版) 为啥我们需要分层K折交叉验证? 如何实 ...
- 5折交叉验证_数据集的划分——交叉验证法
本文作者:王 歌 文字编辑:戴 雯 技术总编:张 邯 前面我们在举例时,通常是将所使用的数据集按照75%和25%的比例划分为训练集和测试集,这主要是为了我们举例方便,同时划分后的数据量也依然符合大样本 ...
- 机器学习算法------1.10 交叉验证,网格搜索(交叉验证,网格搜索(模型选择与调优)API、鸢尾花案例增加K值调优)
文章目录 1.10 交叉验证,网格搜索 学习目标 1 什么是交叉验证(cross validation) 1.1 分析 1.2 为什么需要交叉验证 2 什么是网格搜索(Grid Search) 3 交 ...
- 十折交叉验证pythoniris_数据集的划分——交叉验证法
本文作者:王 歌 文字编辑:戴 雯 技术总编:张 邯Python云端培训课程火热招生中~重大通知!!!爬虫俱乐部于2020年7月11日至14日在线上举行为期四天的Stata编程技术定制培训,招生工作已 ...
- Python使用tpot获取最优模型、将最优模型应用于交叉验证数据集(5折)获取数据集下的最优表现,并将每一折(fold)的预测结果、概率、属于哪一折与测试集标签、结果、概率一并整合输出为结果文件
Python使用tpot获取最优模型.将最优模型应用于交叉验证数据集(5折)获取数据集下的最优表现,并将每一折(fold)的预测结果.概率.属于哪一折与测试集标签.结果.概率一并整合输出为结果文件 目 ...
- 交叉验证分析每一折(fold of Kfold)验证数据的评估指标并绘制综合ROC曲线
交叉验证分析每一折(fold of Kfold)验证数据的评估指标并绘制综合ROC曲线 Receiver Operating Characteristic (ROC) with cross valid ...
- 通过交叉验证寻找K近邻算法的最优K值
问题引出 之前我们使用K近邻算法尝试寻找用户年龄与预估薪资之间的某种相关性,以及他们是否有购买SUV的决定.主要代码如下: from sklearn.neighbors import KNeighbo ...
最新文章
- 移动硬盘改台式机硬盘_如何在台式机或移动设备上离线使用Google云端硬盘
- 洛谷——P1305 新二叉树(新建二叉树以及遍历)
- python 动态加载与静态加载_python中的元类、静态方法、类方法,动态添加方法...
- Sharepoint2013:在页面上显示错误信息
- mysql装载本地文件及模式匹配
- 系统分析与设计学习笔记(一)
- 内Sane外Win:敏捷需要一流的项目经理
- python使用大数据分析师工资待遇_2020年大数据分析师工资多少
- 新浪2010南非足球世界杯漂亮表格的制作
- 怎么查看电脑配置详情
- Symbian OS v9.x SIS 文件格式说明书
- 51单片机系列——定时/计数器
- 基于OpenXR,Collabora推开源VI-SLAM AR/VR定位系统
- u盘启动Linux什么时候可以拔下来,u盘装系统什么时候拔u盘|pe重装系统什么时候拔掉u盘...
- 帝国cms tag生成html,帝国CMS tags标签多种调用方法
- 深度学习:loss损失不下降
- WIN7任务栏里面无用的图标如何清除
- 电信云堤·抗D(电信云堤清洗高防服务器)提供超强T级DDoS处理能力
- 高分难题,绝对有难度
- Hashtag-Based Sub-Event Discovery Using Mutually Generative LDA in Twitter 阅读笔记