【问题标题】:Creating train/test CSV files for 10 fold cross validation experiment为 10 折交叉验证实验创建训练/测试 CSV 文件
【发布时间】:2019-07-06 19:31:10
【问题描述】:

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

我想做 10 次交叉验证并创建一个训练和测试 CSV,这样每次折叠的测试 CSV 将只包含原始 CSV 的 10%。

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

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

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

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

【问题讨论】:

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


【解决方案1】:

也许,您可能正在寻找这个:

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 数据保存为 77% 的 CSV 文件

这样,您可以每次更改代码中的random_state值并保存文件,这样您就可以得到一个很好的混音。这个数字不代表什么。它随机打乱和拆分数据集。 (也许,如果我们知道每个数字背后的逻辑,它就不会再随机分裂了!!:))

在此之后,您可以应用手动 K 折叠。

【讨论】:

  • 嘿,我只想获取用于训练和测试的 csv 文件,因为我正在为 k-fold 执行手动方法并且不想使用 sklearn。你能完成你的答案来展示我如何获得火车测试 csv 吗?请检查我刚刚在我的问题中添加的最后一段。谢谢
  • 还有你为什么选择random_state为42?
  • 我认为应该有一种自动的方法来创建 10 折交叉验证 csv 文件
猜你喜欢
  • 2020-11-18
  • 2018-12-07
  • 1970-01-01
  • 2011-11-29
  • 2020-09-14
  • 2011-12-16
  • 2016-01-29
  • 2018-04-03
  • 1970-01-01
相关资源
最近更新 更多