gpt4 book ai didi

python - h2o python 平衡类

转载 作者:太空宇宙 更新时间:2023-11-04 02:30:41 24 4
gpt4 key购买 nike

我在为 H2ORandomForestEstimator 实现简单平衡时遇到问题,我正在尝试重现 Darren Cook 用 R 编写的书中的一个简单示例('Practical Machine Learning with H2O - pag. 107)。

在 Iris 数据集上工作,首先我人为地不平衡目标变量,切掉大部分 virginica 以保持前 120 行。

然后我构建了 3 个模型,一个普通模型,一个我将 balance_classes 设置为 True,最后一个我将 balance_classes 设置为 True 并输入一个 class_sampling_factors 列表以对 virginica 模型进行过采样。列表是 [1.0,1.0,2.5],指的是按字母顺序排序的列。

我训练它们,然后为每个训练输出混淆矩阵。

我期望第一个输出不平衡,后两个输出平衡,而我总是得到相同的结果。我检查了 the documentation example in Python ,而且我看不出有什么不妥(我可能也累了)。

这是我的代码:

data_unb = data[1:120,:]  # messing up with target variable
train, valid = data_unb.split_frame([0.8], seed=12345)

m1 = h2o.estimators.random_forest.H2ORandomForestEstimator(seed=12345)
m2 = h2o.estimators.random_forest.H2ORandomForestEstimator(balance_classes=True, seed=12345)
m3 = h2o.estimators.random_forest.H2ORandomForestEstimator(balance_classes=True, class_sampling_factors=[1.0,1.0,2.5], seed=12345)

m1.train(x=list(range(4)),y=4,training_frame=train,validation_frame=valid,model_id='RF_defaults')
m2.train(x=list(range(4)),y=4,training_frame=train,validation_frame=valid,model_id='RF_balanced')
m3.train(x=list(range(4)),y=4,training_frame=train,validation_frame=valid,model_id='RF_class_sampling',)

m1.confusion_matrix(train)
m2.confusion_matrix(train)
m3.confusion_matrix(train)

这是我的输出:

my confusion matrices (wrong)

这是我的预期输出。

expected confusion matrices

我显然错过了什么?提前致谢。

最佳答案

您没有遗漏任何东西。 offset_column 在 H2O 随机森林中可用,但它实际上没有功能。该错误已记录 here并且应该在 H2O 的下一个稳定版本中修复。抱歉造成混淆!

它应该适用于其余的 H2O 算法(XGBoost 除外)。例如,如果你想尝试使用 GBM,你会发现它有效。

关于python - h2o python 平衡类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49262383/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com