将 NumPy 数组随机拆分为训练和测试/验证数据集的好方法是什么?类似于 cvpartition
或 crossvalind
Matlab 中的函数。
原文由 erik 发布,翻译遵循 CC BY-SA 4.0 许可协议
将 NumPy 数组随机拆分为训练和测试/验证数据集的好方法是什么?类似于 cvpartition
或 crossvalind
Matlab 中的函数。
原文由 erik 发布,翻译遵循 CC BY-SA 4.0 许可协议
还有另一种选择,只需要使用 scikit-learn。正如 scikit 的 wiki 所描述的,您可以使用以下说明:
from sklearn.model_selection import train_test_split
data, labels = np.arange(10).reshape((5, 2)), range(5)
data_train, data_test, labels_train, labels_test = train_test_split(data, labels, test_size=0.20, random_state=42)
通过这种方式,您可以使您尝试拆分为训练和测试的数据的标签保持同步。
原文由 Paulo Malvar 发布,翻译遵循 CC BY-SA 3.0 许可协议
2 回答5.2k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
1 回答2.5k 阅读✓ 已解决
2 回答893 阅读✓ 已解决
如果你想将数据集分成两部分,你可以使用
numpy.random.shuffle
,或者numpy.random.permutation
如果你需要跟踪索引(记得修复随机种子使一切都可重现):要么
有许多其他方法 可以重复划分同一数据集以进行交叉验证。其中许多 在
sklearn
库中可用(k-fold,leave-n-out,…)。sklearn
还包括更高级的 “分层抽样” 方法,这些方法创建一个关于某些特征平衡的数据分区,例如确保正例和负例的比例相同训练和测试集。