Dans h2o flow
, existe-t-il un moyen de garantir que les fractionnements de ma base de données ont un rapport contrôlé de classes de réponse.Échantillonnage stratifié sur les catégories de réponse dans les divisions de données de flux h2o
Par exemple, disons que je prévois de former un classificateur binaire sur une trame de données X où 0_class_ratio% des échantillons sont en classe 0 et 1_class_ratio% sont en classe 1. Je veux diviser X en grand écart de cadre X_train et X_test par les ratios 0,75 et 0,25, respectivement. Comment serais-je en mesure de garantir que X_train et X_test sont compris 0_class_ratio% d'échantillons de la catégorie 0 et 1_class_ratio% d'échantillons de la catégorie 1?
Dans le paquet scikit-learn de python je ferais quelque chose comme:
from sklearn.model_selection import StratifiedShuffleSplit
split = StratifiedShuffleSplit(n_splits=1, test_size=0.2, random_state=rng_seed_)
# go thru all (split and shuffled) indices of my_data dataframe stratified by response_class values
for train_index, test_index in split.split(my_data, my_data["response_class"]):
strat_train_set = my_data.loc[train_index]
strat_test_set = my_data.loc[test_index]
Je suis au courant des hyper-paramètres h2o
sample_rate et sample_rate_per_class, mais je ne suis pas entièrement sûr de savoir comment les utiliser dans cette situation .
Ce lien pour "fold_assignment" est légèrement meilleur (il ne fuit jamais): http://docs.h2o.ai/h2o/latest-stable/h2o-docs/data-science/algo-params/fold_assignment.html –