创建训练/测试CSV文件以进行10倍交叉验证实验

时间:2019-02-13 03:43:46

标签: python r csv machine-learning cross-validation

我有一个CSV文件(main.csv),该文件具有唯一的列ID,该列ID也与我的图像名称有关(减去其.jpg扩展名)。

我想进行10折交叉验证,并创建一个训练并测试CSV,以使每折的CSV仅包含原始CSV的10%。

是否有一条简单的途径(已经完成)来做到这一点?

基本上,我希望最终的训练和测试CSV文件具有相同的确切列名,但设计时可以对它们执行10倍交叉验证(也就是随机采样/混洗并选择10%)。

我不介意在Python或R中使用熊猫。

我不打算使用Scikit-learn进行交叉验证,因为我正在使用自己的手动代码,这就是为什么我需要切碎的火车并测试每个折叠的CSV。

1 个答案:

答案 0 :(得分:0)

也许,您可能正在寻找它:

from sklearn.model_selection import train_test_split
#X contains the dependent columns from the CSV file, and Y is the predicted variable
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33, random_state=42)

test_size=0.33此参数表示要拆分多少百分比的测试数据。其他都是火车数据。

X_train.to_csv(file_name, encoding='utf-8', index=False)

此代码会将X_train数据保存到33%的CSV文件中

y_train.to_csv(file_name, encoding='utf-8', index=False)

此代码会将y_train数据保存到CSV文件中,占77%

这样,您可以每次在代码中更改random_state的值并保存文件,这样您就可以轻松完成。该数字不代表任何东西。它随机洗牌并拆分数据集。 (也许,如果我们知道每个数字背后的逻辑,它将不再是一个随机的分裂!:))

此后,您可以手动进行K折。