文章目录

  • 一、交叉验证
  • 二、K折交叉验证
    • KFold()方法
    • StratifiedKFold()方法

一、交叉验证

交叉验证的基本思想是把在某种意义下将原始数据(dataset)进行分组,一部分做为训练集(train set),另一部分做为验证集(validation set or test set),首先用训练集对分类器进行训练,再利用验证集来测试训练得到的模型(model),以此来做为评价分类器的性能指标。–来自百科

二、K折交叉验证

KFold()方法

KFold(): KFold 将所有的样例划分为 k 个组,称为折叠 (fold) ,每组数据都具有相同的大小。每一次分割会将其中的 K-1 组作为训练数据,剩下的一组用作测试数据,一共会分割K次。

可以通过这张图直观的体现出来。(这是四折交叉验证,即K取4)

代码示例如下:

import numpy as np
from sklearn.model_selection import KFold
X=np.array([[1,2],[3,4],[5,6],[7,8],[9,10],[11,12]])
y=np.array([1,2,3,4,5,6])kf=KFold(n_splits=4)    # 定义分成几个组#for循环中的train_index与test_index是索引而并非我们的训练数据
for train_index,test_index in kf.split(X):print("Train Index:",train_index,",Test Index:",test_index)X_train,X_test=X[train_index],X[test_index]y_train,y_test=y[train_index],y[test_index]

StratifiedKFold()方法

StratifiedKFold: 是KFold()的变种,采用分层分组的形式(有点类似分层抽样), 使每个分组中各类别的比例 同整体数据中各类别的比例尽可能的相同。(它相对于KFold()方法更完善)

代码示例如下:

import numpy as np
from sklearn.model_selection import StratifiedKFold
X=np.array([[1,2],[3,4],[5,6],[7,8],[9,10],[11,12]])
y=np.array([1,1,1,2,2,2])
skf=StratifiedKFold(n_splits=4)#for循环中的train_index与test_index是索引而并非我们的训练数据
for train_index,test_index in skf.split(X,y):print("Train Index:",train_index,",Test Index:",test_index)X_train,X_test=X[train_index],X[test_index]y_train,y_test=y[train_index],y[test_index]

【机器学习100天目录】
【机器学习第3天:预测汽车的燃油效率】
【机器学习第4天:预测1立方米混凝土抗压强度】
【机器学习第5天:逻辑回归】
【机器学习第6天:乳腺癌肿瘤预测】

如有错误欢迎指教,有问题的可以加入QQ群(1149530473)向我提问,关注微信公众号(明天依旧可好)和我同步学习。

K折交叉验证(StratifiedKFold与KFold比较)相关推荐

  1. ML:模型训练/模型评估中常用的两种方法代码实现(留一法一次性切分训练和K折交叉验证训练)

    ML:模型训练/模型评估中常用的两种方法代码实现(留一法一次性切分训练和K折交叉验证训练) 目录 模型训练评估中常用的两种方法代码实现 T1.留一法一次性切分训练 T2.K折交叉验证训 模型训练评估中 ...

  2. K折交叉验证K-CV与StratifiedKFold

    1. K折交叉验证 K-fold Cross Validation,记为K-CV KFold 将所有的样例划分为 k 个组,称为折叠 (fold) ,每组数据都具有相同的大小.每一次分割会将其中的 K ...

  3. 交叉验证(cross validation)是什么?K折交叉验证(k-fold crossValidation)是什么?

    交叉验证(cross validation)是什么?K折交叉验证(k-fold crossValidation)是什么? 交叉验证(cross validation)是什么?  交叉验证是一种模型的验 ...

  4. 机器学习--K折交叉验证(K-fold cross validation)

    K 折交叉验证(K-flod cross validation) 当样本数据不充足时,为了选择更好的模型,可以采用交叉验证方法. 基本思想:把给定的数据进行划分,将划分得到的数据集组合为训练集与测试集 ...

  5. k折交叉验证 k-fold cross-validation

    文章目录 k折交叉验证 k值的确定 实例 使用scikit-learn进行交叉验证 交叉验证是用来评估机器学习方法的有效性的统计学方法,可以使用有限的样本数量来评估模型对于验证集或测试集数据的效果. ...

  6. K折交叉验证(KFold)

    K折交叉验证:sklearn.model_selection.KFold(n_splits=n, shuffle=False, random_state=None) 思路:将训练/测试数据集划分为n个 ...

  7. k折交叉验证(k-fold Cross-validation)

    一.基本概述               交叉验证是在机器学习建立模型和验证模型参数时常用的办法,一般被用于评估一个机器学习模型的表现.更多的情况下,我们也用交叉验证来进行模型选择(model sel ...

  8. 【Python-ML】SKlearn库Pipeline工作流和K折交叉验证

    # -*- coding: utf-8 -*- ''' Created on 2018年1月18日 @author: Jason.F @summary: Pipeline,流水线工作流,串联模型拟合. ...

  9. k折交叉验证法python实现_Jason Brownlee专栏| 如何解决不平衡分类的k折交叉验证-不平衡分类系列教程(十)...

    作者:Jason Brownlee 编译:Florence Wong – AICUG 本文系AICUG翻译原创,如需转载请联系(微信号:834436689)以获得授权 在对不可见示例进行预测时,模型评 ...

最新文章

  1. 国贫县山西永和:“一揽子”保险“保”脱贫
  2. linux shell 提取txt文件到数组
  3. 计算机的定点运算器原理,计算机组成原理第二章第10讲定点运算器的组成.ppt
  4. redis优化查询的两种方式
  5. Windows as a Service(4)——使用Intune管理Windows10更新
  6. django系列 - 安装和新建项目
  7. mixin风格的bases class
  8. 六爻预测,前沿科学?伪科学?
  9. IEEE Fellow、AAAS Fellow 同日公布,清华唐杰、京东郑宇等数十位华人入选
  10. 泛微oa 明细数据合计
  11. 微信小程序:关注公众号组件自定义样式
  12. iOS 此应用需要开发者更新以在此ios版本上运行
  13. Nginx源码阅读:ngx_palloc 内存池
  14. Android中GPUImage的简单使用
  15. Sigmod 和 Logit
  16. pytorch distiller Weights Pruning Algorithms
  17. 计算机文字录入培训大纲,计算机文字录入处理员教学大纲.doc
  18. 2020年自考计算机应用基础和实践是什么,2020年自考计算机应用基础复习重点8
  19. maven 设置本地仓库
  20. floyed 4.9

热门文章

  1. Matlab最短路学习
  2. 单调队列板子:求滑动窗口中最大值和最小值
  3. linux 快照备份导出,KVM之虚拟机几种备份方法(快照/克隆/导出)
  4. 初学者用涩性胶皮好还是粘性_乒乓球胶皮的保养方法
  5. jszip压缩服务器文件,使用JSZip压缩驻留在服务器上的PDF
  6. ajax img标签,如何将属性添加到img标签以用于ajax调用
  7. centos mysql 5.6.36_CentOS 6.9 升级MySQL 5.6.36到5.7.18
  8. 原理图、PCB和实物是如何对应起来的
  9. MySQL中数据库的操作
  10. ept技术_EPT技术在压载水处理中的运用