scikit中StratifiedKFold和KFold区别,以及split方法
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方法相关推荐
- 站长在线Python精讲:在Python中使用split()方法分割、使用join()方法合并字符串详解
欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是<在Python中使用split()方法分割.使用join()方法合并字符串详解>.本知识点主要内容有:在Python中使用s ...
- Buffer中的split方法分析
Buffer中的split方法分析 Buffer中存在indexOf,slice,split方法,前两者可以直接使用,而split方法需要进行造轮子才可以使用,分析如下 输出 Buffer中存在ind ...
- JAVA和javascrito_JAVA 和JavaScript的split方法异同
Split的方法很常用,除了str.split("regex"),其实还可以多传一个参数:str.split("regex", limit).但是要注意,Jav ...
- 【Python 必会技巧】使用 split() 方法对字符串进行切片
split() 方法可以将一个字符串按照指定的分隔符分割成多个子字符串,子字符串将会保存到列表中(不包含分隔符) split() 方法的语法:str.split(sep,maxsplit) str:要 ...
- 5. KFold, StratifiedKFold,StratifiedShuffleSplit, GroupKFold区别以及Stratified Group KFold
目录 5. KFold, StratifiedKFold,StratifiedShuffleSplit, GroupKFold区别以及Stratified Group KFold 实现 1. KFol ...
- php中split的使用,php中常用字符串的用法总结 - split
php分割函数preg_split()函数.用法.例子.参数说明 preg_split 定义和用法 preg_split() 函数通过一个正则表达式分割字符串. 相关函数:spliti(),str_s ...
- mybatis与php,浅谈mybatis中的#和$的区别
浅谈mybatis中的#和$的区别 发布于 2016-07-30 11:14:47 | 236 次阅读 | 评论: 0 | 来源: 网友投递 MyBatis 基于Java的持久层框架MyBatis 本 ...
- 关于EF中ApplyCurrentValues和ApplyOriginalValues区别
关于EF中ApplyCurrentValues和ApplyOriginalValues区别:两者都是编辑数据时使用. // // 摘要: // 将 System ...
- java mod %区别_Java中 % 与Math.floorMod() 区别详解
%为取余(rem),Math.floorMod()为取模(mod) 取余取模有什么区别呢? 对于整型数a,b来说,取模运算或者取余运算的方法都是: 1.求 整数商: c = a/b; 2.计算模或者余 ...
最新文章
- 工业相机帧率与曝光时间的关系
- 【UAV】陀螺仪数据分析,以维特智能 JY901B 为例
- 窗口分析函数_2_生成同值重复排名序号
- [导入]C++程序随笔
- Vultr 修改 Root 密码
- 开课吧python怎么样-找工作得有个大杀招,你看AI换脸这个技能怎么样?
- 如何断点调试Tomcat源码
- 小颖java源代码反编译_小颖JAVA源代码反编译工具下载|
- tfidf关键词提取php,TFIDF介绍
- 【MarkDown】基础语法
- Okhttp简单介绍
- 对比工具winMerge
- 计算机跳过硬盘检查,电脑开启时怎样才能跳过磁盘检测?
- 阅读替换净化规则_免费阅读APP-阅读下载 v3.2安卓版(免费小说阅读器纯净无广告)-KK下载站...
- 联想笔记本电脑键盘灯怎么开启_联想键盘灯怎么开
- Mysql源码编译和调试debug
- 多模态特征表示和融合
- 《python密码学编程》笔记
- DBC文件创建环境变量,细节拉满
- 大数据导论--大数据安全与数据开放共享