如何将KFold拆分所得索引转换为包含实际特征与标签值的数据集格式
你可以直接遍历交叉验证返回的索引,按索引提取X和y的对应值,整理成目标格式即可,完整实现代码如下:
import numpy as np import pandas as pd from sklearn.model_selection import KFold # 复现初始数据 y = np.ones(10) y[-5:] = 0 X = pd.DataFrame({'a':np.random.randint(10,20, size=(10)), 'b':np.random.randint(80,90, size=(10))}) # 5折交叉验证拆分+格式整理 kf = KFold(n_splits=5) processed_data = [] for train_idx, test_idx in kf.split(X, y): # 提取训练集、测试集的特征和标签,标签转为二维数组匹配要求格式 train_x = X.iloc[train_idx].values train_y = y[train_idx].reshape(-1, 1) test_x = X.iloc[test_idx].values test_y = y[test_idx].reshape(-1, 1) processed_data.append((train_x, train_y, test_x, test_y))
运行后processed_data就是你需要的目标格式,每个元素对应一折的(训练集特征,训练集标签,测试集特征,测试集标签),数值和你给出的预期输出完全匹配。
内容的提问来源于stack exchange,提问作者user12587364
相关产品推荐
相关产品推荐

