对文件上分离的数据集进行交叉验证



我拥有的数据集是在不同的文件上分离的,这些文件分组在相互了解的样本上,也就是说,它们是在相似的时间、相似的条件下创建的。列车测试数据集的平衡很重要,因此样本必须在列车或测试中,但不能分离。所以KFold在我的scikit学习代码上使用它并不简单。

现在,我正在使用类似LOO的东西来制作类似的东西:

train ~> cat ./dataset/!(1.txt)
test ~> cat ./dataset/1.txt

如果我想在几个文件的测试中进行折叠,并制作一份"真正的"简历,这是不舒服的,也不是很有用。如何制作一份好的简历来检查真正的过度拟合?

根据这个答案,我已经意识到panda可以连接数据帧。我检查了这个过程比cat命令行慢15-20%,但能够像我预期的那样进行折叠。

无论如何,我确信应该有比这更好的方法:

import glob
import numpy as np
import pandas as pd
from sklearn.cross_validation import KFold
allFiles = glob.glob("./dataset/*.txt")
kf = KFold(len(allFiles), n_folds=3, shuffle=True)
for train_files, cv_files in kf:
dataTrain = pd.concat((pd.read_csv(allFiles[idTrain], header=None) for idTrain in train_files))
dataTest = pd.concat((pd.read_csv(allFiles[idTest], header=None) for idTest in cv_files))

相关内容

  • 没有找到相关文章

最新更新