Example #1
0
DataSetView sample(DataSet& dataSet, double fraction, bool replacement)
{
  std::vector<int> indices;
  int samples = std::ceil(dataSet.samples() * fraction);
  indices.reserve(samples);

  RandomNumberGenerator rng;
  if(replacement)
    for(int n = 0; n < samples; n++)
      indices[n] = rng.generateIndex(dataSet.samples());
  else
    rng.generateIndices(dataSet.samples(), indices, false);

  return DataSetView(dataSet, indices.begin(), indices.begin() + samples);
}