我正在寻找一种在H2O GeneralizedLinearEstimator模型运行之前设置beta的方法吗? Beta可以作为模型的起点吗?根据以下文档,它被称为beta约束。有人可以帮我这个。
http://docs.h2o.ai/h2o/latest-stable/h2o-docs/data-science/algo-params/beta_constraints.html
1)模型1:我运行了20次迭代的模型并使用了此模型运行的测试版并将其保存为数据框
2)模型2:我运行了一个模型,其中包含与第一个模型相同的所有内容(包括20个迭代),另外我将beta约束指定为来自先前模型的系数。尝试热启动此模型,以便从之前模型结束的地方开始。
3)模型3:我运行了一个模型,其中所有内容与第一个模型相同,但是迭代次数为40次
正如文档中所解释的那样,我想比较并看到模型2与模型3中的测试版相同
model2 = H2OGeneralizedLinearEstimator(family = "poisson",
alpha=0,
solver = "L-BFGS",
max_iterations=20,
gradient_epsilon=1e-8,
objective_epsilon=1e-8,
beta_epsilon=1e-8,
beta_constraints=bc)
答案 0 :(得分:0)
根据H2O Glossary,beta_constraints
的格式为:
带有[[names]列的data.frame或H2OParsedData对象, “lower_bounds”,“upper_bounds”,“beta_given”],每一行 对应于GLM中的预测变量。 “名称”包含预测变量 名称,“lower_bounds”和“upper_bounds”是低位和高位 beta的范围,“beta_given”是一些提供的起始值 测试
首先,您需要从模型2中获取beta的向量。将它们称为m2_betas
。
接下来,因为您需要严格的等式约束,所以需要将它们设置为上限,下限,和起始值。
我在R中完成了这项工作(请参阅related answer),其中beta_constraints
作为data.frame
传递,但我认为Python API类似并使用pandas.DataFrame
。尝试:
constraints = pd.DataFrame({'names':x.columns,
'lower_bounds':m2_betas,
'upper_bounds':m2_betas,
'beta_given':m2_betas})