磁盘上的R h2o模型大小

磁盘上的R h2o模型大小,r,h2o,R,H2o,我正在使用h2o软件包培训GBM,以解决客户流失预测问题 我只想知道是什么影响保存在磁盘上的已安装模型的大小(通过h2o.saveModel()),但不幸的是,我在任何地方都找不到答案 更具体地说,当我调整GBM以在3个相同长度的非重叠滚动窗口上找到最佳超参数(通过h2o.grid())时,我获得了大小不可比的模型(即11mb、19mb和67mb)。hyperparameters网格是相同的,列车组大小也是可比的 自然地,得到的优化超参数在3个时间间隔内是不同的,但我看不出这如何在模型大小上产生

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

我只想知道是什么影响保存在磁盘上的已安装模型的大小(通过
h2o.saveModel()
),但不幸的是,我在任何地方都找不到答案

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

自然地,得到的优化超参数在3个时间间隔内是不同的,但我看不出这如何在模型大小上产生如此大的差异

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

感谢您的帮助! 多谢各位


另外,很抱歉,我无法共享任何数据集以使其可复制(由于隐私限制)

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

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

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


请注意,60 MB的范围通常不会太大。

如果查看模型信息,您将了解有关树的数量、平均深度等信息。比较这三个最好的模型可以让您了解是什么让模型变得更大

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

我认为这是值得调查的。原因可能是其中两个数据窗口相对清晰,只有少数字段可以定义树,而第三个数据窗口更混乱(在数学意义上),当它试图将其拆分为决策树时,会生成一些深树

更深入地观察第三个窗口可能会建议您可以做一些数据工程,这将使学习更容易。或者,这可能是数据中的差异。例如,2016年和2017年的数据中有一列全部为空,但2018年的数据中没有,因为2018年是您开始收集数据的一年,正是这一额外的列允许/导致树木变得更深

最后,网格超参数可能对性能不重要,这是由于噪声造成的差异。例如,您将
max_depth
作为超参数,但对MSE的影响较小,而噪声是一个很大的因素。这些随机差异可能会使您的最佳模型在两个数据集中进入深度5(但第二个最佳模型差0.01%,但进入深度20),但在第三个数据集中进入深度30(但第二个最佳模型差0.01%,但仅进入深度5)。
(如果我正确理解了您的问题,您已经排除了这种可能性,因为您随后在相同的超参数上训练了所有三个数据集?但我想我还是会包括它。)

我将仔细研究这两个参数,也许它们的差异解释了不同的模型尺寸。然而,我试图理解为什么这三种型号的尺寸会有如此大的差异。感谢您在比较了三个模型的参数之后,最重要的区别似乎是
min_rows
pmt。前两款为16,后一款为1。此外,最后一个模型的
mean_leaves
数量要高得多,大约是其他模型的7倍(这应该是
min_row
pmt的结果,对吧?)。
max_depth
pmt在各车型中非常相似,即19、17、17,而
ntrees
为160、270、150。我将查看grid Searchs的排行榜,以评估这种差异是否是由于噪音造成的,因为这三个训练集具有相同的功能structure@davide
min_行
的一个小值肯定可以解释更大的模型。我会非常小心使用
minu rows
1,因为有过度拟合的风险,除非数据中没有噪声。另见