标记数据预测的最佳实践 (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 包
我在 [[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 包