繁体   English   中英

磁盘上的R h2o型号大小

[英]R h2o model sizes on disk

我正在使用h2o软件包来训练GBM,以解决客户流失预测问题。

我只想知道是什么因素影响了保存在磁盘上的拟合模型的大小(通过h2o.saveModel() ),但是不幸的是我无法在任何地方找到答案。

更具体地说,当我调整GBM以在3个相同长度的非重叠滚动窗口上找到最佳超参数时(通过h2o.grid() ),我得到的模型的大小不可比(即11mb,19mb和67mb)。 超参数网格是相同的,并且火车集合的大小是可比较的。

当然,在三个时间间隔内,生成的优化超参数是不同的,但是我看不到它如何在模型大小上产生这种差异。

此外,当我基于这些超参数集训练实际模型时,最终也会得到具有不同大小的模型。

任何帮助表示赞赏! 谢谢

PS。 抱歉,我无法共享任何数据集以使其可再现(由于隐私限制)

这是您期望的两件事:树木的数量和深度。

但这也取决于您的数据。 对于GBM,可以根据数据将树缩短。

我要做的是导出MOJO,然后按照以下文档中的描述对其进行可视化,以获取有关实际产生的内容的更多详细信息:

请注意,通常60 MB的范围似乎并不过分。

如果查看模型信息,您会发现有关树木数量,树木平均深度等方面的信息。 比较这三个最佳模型之间的差异,应该可以使您深入了解使模型变大的原因。

在R中,如果m是您的模型,则只需打印它即可为您提供大部分信息。 str(m)为您提供所有持有的信息。

我认为这值得研究的。 原因可能是其中的两个数据窗口相对清晰,只有几个字段可以定义树,而第三个数据窗口更加混乱(在数学意义上),并且您正在制作一些深树因为它试图将其拆分成决策树。

更深入地研究第三个窗口可能会建议您可以执行一些数据工程,这将使它更易于学习。 或者,可能是您的数据有所不同。 例如,在您的2016年和2017年数据中,一列全为NULL,但在您的2018年数据中全为NULL,因为2018年是您开始收集该年的一年,正是这一额外的列允许/使树变得更深。

最后,也许网格超参数就性能而言并不重要,而这是由于噪声引起的。 例如,您将max_depth作为超参数,但对MSE的影响较小,而噪声是很大的因素。 这些随机差异可能会使您的最佳模型进入两个数据集的深度5(但第二最佳模型差0.01%,但进入深度20),但对于第三数据集,则进入深度30(但进入第二最佳模型)差了0.01%,但只达到深度5)。 (如果我正确地理解了您的问题,那么您就消除了这种可能性,因为您然后在相同的超参数上训练了所有三个数据集?但是我想无论如何我都会将其包括在内。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM