我正在使用deeplearning4j和datavec,我有一个datasetiterator对象,它代表我的所有数据,这是一个时间序列。我如何将其划分为训练和测试迭代器?我检查了一下,datasetiterator类的方法被弃用了。谢谢您。
kkih6yb81#
遍历您的 DataSetIterator 对每一个 DataSet 输入,创建两个新的 DataSets ,分别用于列车和试验。关键是使用splittestandtrain方法,它接受 double fractionTrain 这将指定要训练的数据量(其余的要测试)。方法有不同的重载,所以您可以选择最适合您需要的重载。如果您希望将所有的train和test数据集添加到一个公共迭代器中,可以将它们存储在两个不同的列表中,稍后再获取它们相应的迭代器。比如:
DataSetIterator
DataSet
DataSets
double fractionTrain
List<DataSet> trainList = new ArrayList<>(); List<DataSet> testList= new ArrayList<>(); while (yourDataSetIterator.hasNext()) { DataSet ds = yourDataSetIterator.next(); SplitTestAndTrain splData = ds.splitTestAndTrain(0.5); //half for each DataSet trainDs = splData.getTrain(); trainList.add(trainDs); DataSet testDs = splData.getTest(); testList.add(testDs); (...) } Iterator<DataSet> trainIterator = trainList.iterator(); Iterator<DataSet> testIterator = testList.iterator();
因为我不太了解这个库的具体细节,所以这个示例只创建了“basic” iterators . 这可能是定制的,因此您可以创建 DataSetIterators 相反。请注意,您可能还需要在拆分数据集之前对其进行洗牌( ds.shuffle() ). 你可以在这里找到一些例子如果您希望以特定的方式拆分它,您可以标记不同的条目并找到测试数据集的最大索引;然后,打电话 splitTestAndTrain(int max) 方法,该方法具体拆分有关max参数的数据集。这个 sortByLabel 方法在这里也很有用。 Adam Gibson 对其他机制的意见提出了很好的建议,以期分裂市场 DataSetIterator ,这似乎也是一种“更自然”的方式 DataSetIteratorSplitter .它提供了 getTrainIterator() 以及 getTestIterator() 方法返回库的特定迭代器, DataSetIterator .
iterators
DataSetIterators
ds.shuffle()
splitTestAndTrain(int max)
sortByLabel
Adam Gibson
DataSetIteratorSplitter
getTrainIterator()
getTestIterator()
1条答案
按热度按时间kkih6yb81#
遍历您的
DataSetIterator
对每一个DataSet
输入,创建两个新的DataSets
,分别用于列车和试验。关键是使用splittestandtrain方法,它接受
double fractionTrain
这将指定要训练的数据量(其余的要测试)。方法有不同的重载,所以您可以选择最适合您需要的重载。如果您希望将所有的train和test数据集添加到一个公共迭代器中,可以将它们存储在两个不同的列表中,稍后再获取它们相应的迭代器。比如:因为我不太了解这个库的具体细节,所以这个示例只创建了“basic”
iterators
. 这可能是定制的,因此您可以创建DataSetIterators
相反。请注意,您可能还需要在拆分数据集之前对其进行洗牌(
ds.shuffle()
). 你可以在这里找到一些例子如果您希望以特定的方式拆分它,您可以标记不同的条目并找到测试数据集的最大索引;然后,打电话
splitTestAndTrain(int max)
方法,该方法具体拆分有关max参数的数据集。这个sortByLabel
方法在这里也很有用。Adam Gibson
对其他机制的意见提出了很好的建议,以期分裂市场DataSetIterator
,这似乎也是一种“更自然”的方式DataSetIteratorSplitter
.它提供了
getTrainIterator()
以及getTestIterator()
方法返回库的特定迭代器,DataSetIterator
.