scikit中StratifiedKFold和KFold区别,以及split方法

测试代码:
# -*- coding: utf-8 -*-
import numpy as np
from sklearn.model_selection import StratifiedKFold, KFoldtest_array = np.zeros((8, 5))
for idx in range(test_array.shape[0]):test_array[idx] = np.arange((idx + 1)*10 + 1, (idx + 1)*10 + 6)
print(test_array)print(f'{"-" * 30}')test_array_lab = np.ones((8,))skf = StratifiedKFold(n_splits=4, shuffle=True)
kf = KFold(n_splits=4, shuffle=True)print('StratifiedKFold result')
for train, val in enumerate(skf.split(test_array, test_array_lab)):print(f'train idx: {train}, val idx: {val}')print(f'{"-" * 30}')print('KFold result')
for train, val in enumerate(kf.split(test_array, test_array_lab)):print(f'train idx: {train}, val idx: {val}')

对8组数据进行4折,输出训练集和测试集对应索引。

运行结果:
>>> test_array
[[11. 12. 13. 14. 15.][21. 22. 23. 24. 25.][31. 32. 33. 34. 35.][41. 42. 43. 44. 45.][51. 52. 53. 54. 55.][61. 62. 63. 64. 65.][71. 72. 73. 74. 75.][81. 82. 83. 84. 85.]]
------------------------------
StratifiedKFold result:
train idx: 0, val idx: (array([2, 3, 4, 5, 6, 7]), array([0, 1]))
train idx: 1, val idx: (array([0, 1, 2, 3, 4, 7]), array([5, 6]))
train idx: 2, val idx: (array([0, 1, 2, 5, 6, 7]), array([3, 4]))
train idx: 3, val idx: (array([0, 1, 3, 4, 5, 6]), array([2, 7]))
------------------------------
KFold result:
train idx: 0, val idx: (array([0, 1, 2, 4, 5, 7]), array([3, 6]))
train idx: 1, val idx: (array([0, 1, 3, 5, 6, 7]), array([2, 4]))
train idx: 2, val idx: (array([0, 1, 2, 3, 4, 6]), array([5, 7]))
train idx: 3, val idx: (array([2, 3, 4, 5, 6, 7]), array([0, 1]))
StratifiedKFold方法:官方文档描述,与KFold不同的是,StratifiedKFold对划分的训练集和测试集中保留每个类别的样本百分比;对比KFold来说样本分布中类别更平均,模型测试中反映性能会更加直观。
KFold方法:官方文档描述
split方法:

split方法返回训练集和测试集的数据索引值。

scikit中StratifiedKFold和KFold区别,以及split方法相关推荐

  1. 站长在线Python精讲:在Python中使用split()方法分割、使用join()方法合并字符串详解

    欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是<在Python中使用split()方法分割.使用join()方法合并字符串详解>.本知识点主要内容有:在Python中使用s ...

  2. Buffer中的split方法分析

    Buffer中的split方法分析 Buffer中存在indexOf,slice,split方法,前两者可以直接使用,而split方法需要进行造轮子才可以使用,分析如下 输出 Buffer中存在ind ...

  3. JAVA和javascrito_JAVA 和JavaScript的split方法异同

    Split的方法很常用,除了str.split("regex"),其实还可以多传一个参数:str.split("regex", limit).但是要注意,Jav ...

  4. 【Python 必会技巧】使用 split() 方法对字符串进行切片

    split() 方法可以将一个字符串按照指定的分隔符分割成多个子字符串,子字符串将会保存到列表中(不包含分隔符) split() 方法的语法:str.split(sep,maxsplit) str:要 ...

  5. 5. KFold, StratifiedKFold,StratifiedShuffleSplit, GroupKFold区别以及Stratified Group KFold

    目录 5. KFold, StratifiedKFold,StratifiedShuffleSplit, GroupKFold区别以及Stratified Group KFold 实现 1. KFol ...

  6. php中split的使用,php中常用字符串的用法总结 - split

    php分割函数preg_split()函数.用法.例子.参数说明 preg_split 定义和用法 preg_split() 函数通过一个正则表达式分割字符串. 相关函数:spliti(),str_s ...

  7. mybatis与php,浅谈mybatis中的#和$的区别

    浅谈mybatis中的#和$的区别 发布于 2016-07-30 11:14:47 | 236 次阅读 | 评论: 0 | 来源: 网友投递 MyBatis 基于Java的持久层框架MyBatis 本 ...

  8. 关于EF中ApplyCurrentValues和ApplyOriginalValues区别

    关于EF中ApplyCurrentValues和ApplyOriginalValues区别:两者都是编辑数据时使用. //         // 摘要:         //     将 System ...

  9. java mod %区别_Java中 % 与Math.floorMod() 区别详解

    %为取余(rem),Math.floorMod()为取模(mod) 取余取模有什么区别呢? 对于整型数a,b来说,取模运算或者取余运算的方法都是: 1.求 整数商: c = a/b; 2.计算模或者余 ...

最新文章

  1. 工业相机帧率与曝光时间的关系
  2. 【UAV】陀螺仪数据分析,以维特智能 JY901B 为例
  3. 窗口分析函数_2_生成同值重复排名序号
  4. [导入]C++程序随笔
  5. Vultr 修改 Root 密码
  6. 开课吧python怎么样-找工作得有个大杀招,你看AI换脸这个技能怎么样?
  7. 如何断点调试Tomcat源码
  8. 小颖java源代码反编译_小颖JAVA源代码反编译工具下载|
  9. tfidf关键词提取php,TFIDF介绍
  10. 【MarkDown】基础语法
  11. Okhttp简单介绍
  12. 对比工具winMerge
  13. 计算机跳过硬盘检查,电脑开启时怎样才能跳过磁盘检测?
  14. 阅读替换净化规则_免费阅读APP-阅读下载 v3.2安卓版(免费小说阅读器纯净无广告)-KK下载站...
  15. 联想笔记本电脑键盘灯怎么开启_联想键盘灯怎么开
  16. Mysql源码编译和调试debug
  17. 多模态特征表示和融合
  18. 《python密码学编程》笔记
  19. DBC文件创建环境变量,细节拉满
  20. 大数据导论--大数据安全与数据开放共享

热门文章

  1. 计算机一级ie浏览器和电子邮件,计算机一级考试IE题和收发邮件模拟题
  2. 最新软件测试面试题+笔试题(十个面试官里有九个会问)
  3. c语言 统计字符串当中的大写字母个数和小写字母个数
  4. java 父类访问子类_java中父类访问子类变量
  5. 生成扩散模型漫谈:从万有引力到扩散模型
  6. 磁盘空间不足?何不清理下Xcode存储空间
  7. 【转载】自律的人有多可怕?
  8. lisp点坐标x轴可以乘除吗_机试编程题
  9. 三无码农苦X的第一年,希望有仙人指路
  10. 3D multi-touch FSR application