标记数据预测的最佳实践 (numpy)

Best practices for prediction of labeled data (numpy)

我在 [[sample1], [sample2], ... , [sampleN]] 形式的 numpy 数组中有一些数据。我有一些 [l1, l2, ..., lN] 形式的标签,其中 li 最多可以有 4 个不同的值(这意味着我的样本包含在 4 个集合中)。我想从我的数据数组中选择一些 M < N 个样本并用它们训练我的预测模型。然后,剩余的数据将用作测试数据来检查我的预测模型的准确性。

我不太熟悉构建和测试此类预测模型的标准做法。然而,我听说将数据集分为两部分,一部分包含 9/10 的数据作为训练数据,另一部分包含 1/10 的数据作为测试数据。我的问题是,这是正确的吗?有一些 "best practices" 吗?我的另一个问题是,如何 select 从我的数据集数组中随机抽取这 2 组数据?

非常感谢您的帮助。

您确实需要拆分数据。你甚至需要将它分成 3 份 validation purposes.

关于随机拆分,您需要确保标签和数据保持对齐,否则您只会从数据中学到随机性。例如(pythonic 代码,因为你没有提供任何代码...)

from random import sample

indices = sample(xrange(N), M) # generate M non repeating indices between 0 and N
remaining_indices = list(set(xrange(N)) - set(indices)) # Use sets to easily get the indices you left behind
train_set = data_set[indices]
train_labels = labels[indices]
test_set =  data_set[remaining_indices]
test_labels = labels[remaining_indices]

您可以重复将测试数据拆分为测试+验证的过程。另请查看 cross validation

正如@Sascha 所提到的,它也全部内置于 Scikit-learn,一个非常有用的机器学习 Python 包