首页 > 解决方案 > 如何在 H2O python 中应用序数回归?

问题描述

我有一个由 5 个类组成的目标,其中存在序数关系。我想为这个多类分类问题实现序数回归。这是我尝试过的:

train['target'] = train['target'].asfactor()
valid['target'] = valid['target'].asfactor()
test['target'] = test['target'].asfactor()

from h2o.estimators.glm import H2OGeneralizedLinearEstimator

hyper_params_glm = {'alpha': [0.001, 0.003, 0.005, 0.1, 0.3, 0.5, 0.7,0.75,0.8,0.85,0.9,0.95],
                   'missing_values_handling': ["skip", "mean_imputation"]}

ip_grid_glm = H2OGridSearch(model=H2OGeneralizedLinearEstimator(                 
                    standardize = True,
                    family='ordinal', keep_cross_validation_predictions=True, 
                    fold_assignment = "Modulo",lambda_search = True,
                    intercept = True,seed=2345, early_stopping = True, nfolds = 5)
                    ,hyper_params=hyper_params_glm)

ip_grid_glm.train(x=finalFeatures, y='AnsQ1', training_frame=train)

但是我得到了错误:

参数family应该是 ?Enum["multinomial", "quasibinomial", "poisson", "gamma", "gaussian", "tweedie", "binomial"],得到字符串序数

我还使用 将目标类型更改为数字asnumeric(),但是我又遇到了同样的错误。

如何为我的多类分类应用序数回归?

编辑:如果我从文档链接中正确理解,如果我使用超过 2 个分类值的多项式族,那么它会考虑类别的顺序吗?

标签: python-3.xclassificationh2o

解决方案


您使用的是哪个版本的 H2O?“序数”选项family 看起来像是在 3.18.0.3 中添加的。

希望http://docs.h2o.ai/h2o/latest-stable/h2o-docs/data-science/glm.html#logistic-ordinal-regression-ordinal-family回答您的其他问题?它解释了“序数”和“多项式”之间的数学差异。

(但我认为您编辑中问题的简短回答是“是”,因为它说:“[它适用于] 谨慎的变量,如分类,但可以排序,如回归。”)


推荐阅读