当前位置: 首页 > 面试题库 >

如何将数据集分割/划分为训练和测试数据集,例如进行交叉验证?

施超
2023-03-14
问题内容

将NumPy数组随机分为训练和测试/验证数据集的好方法是什么?与Matlab中的cvpartitioncrossvalind函数类似。


问题答案:

如果要将数据集分成两半,可以使用numpy.random.shuffle,或者numpy.random.permutation需要跟踪索引:

import numpy
# x is your dataset
x = numpy.random.rand(100, 5)
numpy.random.shuffle(x)
training, test = x[:80,:], x[80:,:]

要么

import numpy
# x is your dataset
x = numpy.random.rand(100, 5)
indices = numpy.random.permutation(x.shape[0])
training_idx, test_idx = indices[:80], indices[80:]
training, test = x[training_idx,:], x[test_idx,:]

有多种方法可以重复分区同一数据集以进行交叉验证。一种策略是从数据集中重复采样:

import numpy
# x is your dataset
x = numpy.random.rand(100, 5)
training_idx = numpy.random.randint(x.shape[0], size=80)
test_idx = numpy.random.randint(x.shape[0], size=20)
training, test = x[training_idx,:], x[test_idx,:]

最后,sklearn包含几种交叉验证方法(k折,nave
-n-out等)。它还包括更高级的“分层抽样”方法,这些方法创建了针对某些功能平衡的数据分区,例如,确保训练和测试集中的正例和负例比例相同。



 类似资料:
  • 问题内容: 我有一个很大的数据集,想将其分为训练(50%)和测试集(50%)。 假设我有100个示例存储了输入文件,每一行包含一个示例。我需要选择50条线作为训练集和50条线测试集。 我的想法是首先生成一个长度为100(值范围从1到100)的随机列表,然后将前50个元素用作50个训练示例的行号。与测试集相同。 这可以在Matlab中轻松实现 但是如何在Python中完成此功能?我是Python的新

  • 本文向大家介绍python 划分数据集为训练集和测试集的方法,包括了python 划分数据集为训练集和测试集的方法的使用技巧和注意事项,需要的朋友参考一下 sklearn的cross_validation包中含有将数据集按照一定的比例,随机划分为训练集和测试集的函数train_test_split 得到的x_train,y_train(x_test,y_test)的index对应的是x,y中被抽取

  • 问题内容: 我有一个多类分类问题,并且我的数据集存在偏差,我有100个特定类的实例,并说10个不同类的实例,所以如果我有100个特定类的实例,我想在各个类之间分配数据集保留率我想让30%的记录进入训练集中,我想让100个记录代表的类有30个实例,而10个记录代表的类有3个实例,依此类推。 问题答案: 您可以从在线文档中使用sklearn的: 分层K折交叉验证迭代器 提供训练/测试索引以将数据拆分为

  • 我刚刚开始使用R,我不确定如何将我的数据集与以下示例代码结合起来: 我有一个数据集,我需要将其放入训练(75%)和测试(25%)集中。我不确定应该将哪些信息放入x和大小?x是数据集文件吗?我有多少样本?

  • 本文向大家介绍Python分割训练集和测试集的方法示例,包括了Python分割训练集和测试集的方法示例的使用技巧和注意事项,需要的朋友参考一下 数据集介绍 使用数据集Wine,来自UCI  。包括178条样本,13个特征。 分割训练集和测试集 随机分割 分为训练集和测试集 方法:使用scikit-learn中model_selection子模块的train_test_split函数 以上就是本文的

  • 问题内容: 我正在尝试运行以下Colab项目,但是当我想将训练数据分为验证和训练部分时,出现此错误: 我使用以下代码: 如何解决此错误? 问题答案: 根据Tensorflow Dataset docs ,百分比拆分是可能的,例如 如示例所示,更改列表时,您的代码将起作用: 使用上面的代码,有2590个条目,而有1080个。