如果我有一个数据集的子集作为训练,我在 python 中拆分数据集有一个问题,python 中是否有一些函数可以从数据集中排除训练集并直接获取数据集的其余部分?就像:testing set = numpy.exclude(dataset , trainingset)例如,数据集中有 10 行,我将 2,4,7,9 行作为训练集,那么如何轻松获取数据集的其余部分。详细地说,这些我的训练数据集for i in range(0,5):
Test_data = dataset[ratio*i:ratio*(i+1),:]
Train_data = dataset[0:ratio*i&ratio*(i+1):-1,:]我的代码不起作用,因为没有 & 定义
1 回答
函数式编程
TA贡献1807条经验 获得超9个赞
如果您已经知道训练集行的索引,则可以排除它们以获取剩余行的索引:
training_rows_ix = [2,4,7,9]
non_training_rows = [i for i in dataset.index if i not in training_rows_ix]
test_set = dataset.loc[non_training_rows]
或者使用集合操作而不是列表理解:
non_training_rows = sorted(set(dataset.index) - set(training_rows_ix))
此外,对于将数据集拆分为测试训练的更强大的解决方案,请查看 scikit-learn 的测试训练拆分
添加回答
举报
0/150
提交
取消