【发布时间】:2015-11-22 19:56:26
【问题描述】:
我有一个大型数据集,用于在 R 中训练机器学习算法。在所有数据预处理之后,我有一个包含因子和数值的数据框。我将这样的数据集拆分为训练集和测试集,并使用 write.csv() 将它们保存到文件中。
当我回读 test.csv 和 train.csv 文件时,可能会发生某些因素失去水平的情况。这使得某些算法在创建设计矩阵时会失败。
这里有一个详细的例子。假设最初我有一个包含 12 行的数据集,我将其拆分为 8 行的训练集和 4 行的测试集。我将 8 个训练行保存到 train.csv,将 4 行保存到 test.csv。请注意 factor2 在 train.csv 中有级别 (a,b,c,d):
factor1 factor2 value
1 1 a 1
2 2 b 0
3 3 c 1
4 4 d 1
5 2 a 0
6 4 c 1
7 3 b 0
8 1 a 1
但只有 test.csv 中的 (a,b,c):
factor1 factor2
1 4 a
2 2 b
3 4 c
4 1 a
factor1 也一样,测试集中缺少第 3 级。 当我读回文件 test.csv 时,R 假设 factor1 具有级别 (1,2,4) 而 factor2 具有级别 (a,b,c)。我想找到一种方法来告诉 R 实际水平。
我认为的解决方案是在开始时保存级别,从具有 12 个点的原始数据集中,然后在读取 train.csv 和 test.csv 后重新分配它们。
我想避免使用 R 中的 save() 方法,因为我创建的数据集可能会转到其他语言/包。
谢谢!
【问题讨论】:
标签: r csv machine-learning dataframe