11#ifndef ROOT_INTERNAL_ML_RSAMPLER
12#define ROOT_INTERNAL_ML_RSAMPLER
109 throw std::invalid_argument(
110 "The sampling_ratio is too low: not enough entries in the majority class to sample from.\n"
111 "Choose sampling_ratio > " +
112 minRatio +
" or set replacement to True.");
153 std::size_t
index = 0;
177 std::size_t
index = 0;
195 std::uniform_int_distribution<> dist(0, max - 1);
198 for (std::size_t i = 0; i <
n_samples; ++i) {
201 std::random_device
rd;
231 for (std::size_t i = 0; i < max; ++i)
235 std::random_device
rd;
246 for (std::size_t i = 0; i <
n_samples; ++i) {
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t index
Implementation of different sampling strategies.
void SampleWithoutReplacement(std::size_t n_samples, std::size_t max)
Add indices without replacement to fSamples.
void SetupRandomUndersampler()
Calculate fNumEntries and major/minor variables for the random undersampler.
void RandomOversampler(RFlat2DMatrix &ShuffledTensor)
Oversample entries randomly from the minority dataset.
void SampleWithReplacement(std::size_t n_samples, std::size_t max)
Add indices with replacement to fSamples.
void SetupRandomOversampler()
Calculate fNumEntries and major/minor variables for the random oversampler.
void SetupSampler()
Calculate fNumEntries and major/minor variables.
std::vector< std::size_t > fSamples
std::size_t GetNumEntries()
std::unique_ptr< RFlat2DMatrixOperators > fTensorOperators
RSampler(std::vector< RFlat2DMatrix > &datasets, const std::string &sampleType, float sampleRatio, bool replacement=false, bool shuffle=true, std::size_t setSeed=0)
void RandomUndersampler(RFlat2DMatrix &ShuffledTensor)
Undersample entries randomly from the majority dataset.
std::size_t fNumResampledMajor
std::vector< RFlat2DMatrix > & fDatasets
void Sampler(RFlat2DMatrix &SampledTensor)
Collection of sampling types.
std::size_t fNumResampledMinor
const_iterator begin() const
const_iterator end() const
Wrapper around ROOT::RVec<float> representing a 2D matrix.