如何解决交叉验证后如何获取数据?
我正在尝试使用 Xception 的迁移学习为 7 个班级制作图像分类器。现在我正在尝试实施交叉验证。我知道 KFold 返回索引,但如何获取数据值。
from sklearn.model_selection import KFold
import numpy as np
sample = np.array(['A','B','C','D','E','F','G','H','I'])
kf = KFold(n_splits=3,shuffle=True)
for train_index,test_index in kf.split(sample):
print("TRAIN:",train_index,"TEST:",test_index)
它回来了
TRAIN: [1 2 3 4 6 7] TEST: [0 5 8]
TRAIN: [0 1 2 4 5 8] TEST: [3 6 7]
TRAIN: [0 3 5 6 7 8] TEST: [1 2 4]
但我想要的是
TRAIN: ['B','H'] TEST: ['A','I']
TRAIN: ['A','I'] TEST: ['D','H']
TRAIN: ['A','I'] TEST: ['B','E']
我该怎么办?
解决方法
kf.split
返回索引,而不是实际样本。您只需更改为:
for train_index,test_index in kf.split(sample):
print("TRAIN:",sample[train_index],"TEST:",sample[test_index])
结果:
TRAIN: ['A' 'B' 'C' 'E' 'F' 'H'] TEST: ['D' 'G' 'I']
TRAIN: ['A' 'D' 'F' 'G' 'H' 'I'] TEST: ['B' 'C' 'E']
TRAIN: ['B' 'C' 'D' 'E' 'G' 'I'] TEST: ['A' 'F' 'H']
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。