在h2o flow
中,是否有方法可以确保我的数据框架分割具有受控的响应类别比例。
例如,假设我计划在数据框架X上训练一个二元分类器,其中0_class_ratio%的样本属于类别0,而1_class_ratio%的样本属于类别1。我想按0.75和0.25的比例将X分割成X_train和X_test两个框架。我如何确保X_train和X_test都包含0_class_ratio%的类别0样本和1_class_ratio%的类别1样本?
在Python的scikit-learn包中,我会这样做:
from sklearn.model_selection import StratifiedShuffleSplitsplit = StratifiedShuffleSplit(n_splits=1, test_size=0.2, random_state=rng_seed_)# 遍历my_data数据框中按response_class值分层的(分割和洗牌后的)所有索引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]
我知道h2o
的超参数sample_rate和sample_rate_per_class,但我不完全确定在这种情况下如何使用它们。
回答:
将fold_assignment
设置为”Stratified”。