如何在 H2O 随机森林或其他二元 class 生成器中指定正数 class?
How do I specify the positive class in an H2O random forest or other binary classifier?
我正在用 Python 在 H2O 中构建二元 class化模型。我的 'y' 值为 'ok' 和 'bad'。我需要使用 ok = negative class = 0 和 bad = positive class = 1 来计算指标。但是,我看不到任何在 H2O 中设置它的方法。例如这里是预测和混淆矩阵的输出:
confusion matrix
bad ok Error Rate
bad 3859 631 0.1405 (631.0/4490.0)
ok 477 1069 0.3085 (477.0/1546.0)
Total 4336 1700 0.1836 (1108.0/6036.0)
>>> predictions.head(10)
predict bad ok
0 bad 0.100604 0.899396
1 bad 0.100604 0.899396
2 bad 0.112232 0.887768
3 ok 0.068917 0.931083
4 ok 0.089706 0.910294
5 ok 0.089706 0.910294
6 ok 0.089706 0.910294
7 bad 0.126182 0.873818
8 bad 0.126182 0.873818
9 ok 0.092306 0.907694
H2O 似乎是根据标签中的字母顺序任意决定的。如果我将标签更改为 'ok' 和 'sad',这就是我得到的:
confusion matrix
ok sad Error Rate
ok 798 732 0.4784 (732.0/1530.0)
sad 211 4381 0.0459 (211.0/4592.0)
Total 1009 5113 0.1540 (943.0/6122.0)
>>> predictions.head(10)
predict ok sad
0 sad 0.215206 0.784794
1 sad 0.211073 0.788927
2 sad 0.211073 0.788927
3 ok 0.236190 0.763810
4 ok 0.241641 0.758359
5 ok 0.241641 0.758359
6 ok 0.236099 0.763901
7 sad 0.162072 0.837928
8 sad 0.162072 0.837928
9 sad 0.206146 0.793854
必须有一种方法来以编程方式设置哪个标签是正 class 哪个是负 class?
如果 df
是您的 H2O 框架,那么 df['y'] = df['y'].relevel('ok')
应该将 'ok' 设置为 0 级。参见 http://docs.h2o.ai/h2o/latest-stable/h2o-py/docs/frame.html#h2o.frame.H2OFrame.relevel
我正在用 Python 在 H2O 中构建二元 class化模型。我的 'y' 值为 'ok' 和 'bad'。我需要使用 ok = negative class = 0 和 bad = positive class = 1 来计算指标。但是,我看不到任何在 H2O 中设置它的方法。例如这里是预测和混淆矩阵的输出:
confusion matrix
bad ok Error Rate
bad 3859 631 0.1405 (631.0/4490.0)
ok 477 1069 0.3085 (477.0/1546.0)
Total 4336 1700 0.1836 (1108.0/6036.0)
>>> predictions.head(10)
predict bad ok
0 bad 0.100604 0.899396
1 bad 0.100604 0.899396
2 bad 0.112232 0.887768
3 ok 0.068917 0.931083
4 ok 0.089706 0.910294
5 ok 0.089706 0.910294
6 ok 0.089706 0.910294
7 bad 0.126182 0.873818
8 bad 0.126182 0.873818
9 ok 0.092306 0.907694
H2O 似乎是根据标签中的字母顺序任意决定的。如果我将标签更改为 'ok' 和 'sad',这就是我得到的:
confusion matrix
ok sad Error Rate
ok 798 732 0.4784 (732.0/1530.0)
sad 211 4381 0.0459 (211.0/4592.0)
Total 1009 5113 0.1540 (943.0/6122.0)
>>> predictions.head(10)
predict ok sad
0 sad 0.215206 0.784794
1 sad 0.211073 0.788927
2 sad 0.211073 0.788927
3 ok 0.236190 0.763810
4 ok 0.241641 0.758359
5 ok 0.241641 0.758359
6 ok 0.236099 0.763901
7 sad 0.162072 0.837928
8 sad 0.162072 0.837928
9 sad 0.206146 0.793854
必须有一种方法来以编程方式设置哪个标签是正 class 哪个是负 class?
如果 df
是您的 H2O 框架,那么 df['y'] = df['y'].relevel('ok')
应该将 'ok' 设置为 0 级。参见 http://docs.h2o.ai/h2o/latest-stable/h2o-py/docs/frame.html#h2o.frame.H2OFrame.relevel