我有一个CSV文件(main.csv(,该文件具有唯一的列ID,该列ID也与我的图像名称有关(减去其.jpg扩展名(。
我想进行 10 折交叉验证并创建一个训练并测试 CSV,以便每个折叠的测试 CSV 仅包含原始 CSV 的 10%。
有没有一条简单的途径(已经完成(来做到这一点?
基本上,我希望我的最终训练和测试 CSV 文件具有完全相同的列名,但设计为我可以对它们执行 10 倍交叉验证(即随机采样/随机播放和 10% 选择(。
我不介意在Python或R中使用pandas。
我不打算使用Scikit-learn进行交叉验证,因为我使用的是自己的手动代码,这就是为什么我需要切碎的火车并为每个折叠测试CSV。
也许,您可能正在寻找以下内容:
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数据保存到 CSV 文件中,该文件为 33%
y_train.to_csv(file_name, encoding='utf-8', index=False)
此代码会将y_train数据保存到 CSV 文件,该文件为 77%
这样,您每次都可以更改代码中的random_state
值并保存文件,这样您就可以获得良好的支持。这个数字并不代表什么。它随机洗牌和拆分数据集。(也许,如果我们知道每个数字背后的逻辑,它就不会再是随机拆分了!! :)(
在此之后,您可以应用手动K折叠。