如何在 H2O python 中应用序数回归?

Posted

技术标签:

【中文标题】如何在 H2O python 中应用序数回归?【英文标题】:How to apply ordianal regression in H2O python? 【发布时间】:2019-08-03 21:46:19 【问题描述】:

我有一个由 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", “泊松”,“伽玛”,“高斯”,“tweedie”,“二项式”],得到字符串 序数

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

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

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

【问题讨论】:

【参考方案1】:

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

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

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

【讨论】:

以上是关于如何在 H2O python 中应用序数回归?的主要内容,如果未能解决你的问题,请参考以下文章

如何在Likert量表上测量的自变量应该在二元逻辑回归中作为连续变量或序数变量来处理?

R语言使用二元回归将序数数据建模为多元GLM

如何区分回归分析中的分类变量和有序变量?

如何在 automl h2o python 中找到领导模型的最佳参数

如何获得h2o模型的准确度/精度?

R语言基于h2o包构建二分类模型:使用h2o.glm构建正则化的逻辑回归模型使用h2o.auc计算模型的AUC值