当前位置:   article > 正文

00、(2)K折交叉验证(StratifiedKFold与KFold比较)_stratifiedkfold使用,数据形式

stratifiedkfold使用,数据形式

一、交叉验证

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

二、K折交叉验证

1、KFold()方法

KFold(): KFold 将所有的样例划分为 k 个组,称为折叠 (fold) ,每组数据都具有相同的大小。每一次分割会将其中的 K-1 组作为训练数据,剩下的一组用作测试数据,一共会分割K次。
在这里插入图片描述
代码示例如下:

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]

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

在这里插入图片描述

二、StratifiedKFold()方法

StratifiedKFold: 是KFold()的变种,采用分层分组的形式(有点类似分层抽样), 使每个分组中各类别的比例同整体数据中各类别的比例尽可能的相同。(它相对于KFold()方法更完善)
StratifiedKFold 分层采样交叉切分,确保训练集,测试集中各类别样本的比例与原始数据集中相同。
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/爱喝兽奶帝天荒/article/detail/954029
推荐阅读
  

闽ICP备14008679号