我正在使用 msg: "{{ item }} is not defined"
when: "{{ item }} is not defined"
软件包来训练GBM来解决客户流失预测问题。
我只想知道是什么因素影响了保存在磁盘上的拟合模型的大小(通过failed: [hostname] (item=street) => {"changed": false, "item": "street", "msg": "street is not defined"}
),但是不幸的是我无法在任何地方找到答案。
更具体地说,当我调整GBM以在3个相同长度的非重叠滚动窗口上找到最优的超参数(通过h2o
)时,我得到的模型的大小不可比(即11mb,19mb和67mb)。超参数网格是相同的,火车集的大小也是可比的。
自然地,优化的超参数在3个时间间隔内是不同的,但是我看不到它如何在模型大小上产生这种差异。
此外,当我基于这些超参数集训练实际模型时,最终也会得到具有不同大小的模型。
感谢您的帮助! 谢谢
ps。抱歉,由于隐私限制,我无法共享任何可重现的数据集
答案 0 :(得分:4)
这是您期望的两件事:树木的数量和深度。
但这也取决于您的数据。对于GBM,可以根据数据将树木砍短。
我要做的是导出MOJO,然后按照以下文档中的描述对其进行可视化,以获取有关实际产生的内容的更多详细信息:
请注意,通常60 MB的范围似乎并不过分。
答案 1 :(得分:2)
如果您查看模型信息,则会发现有关树木数量,树木平均深度等方面的信息。比较这三个最佳模型之间的差异,应该可以使您深入了解使模型变大的原因。
在R中,如果m
是您的模型,只需打印它即可为您提供大部分信息。 str(m)
为您提供了所拥有的所有信息。
我认为 是值得调查的。原因可能是其中的两个数据窗口相对清晰,只有几个字段可以定义树,而第三个数据窗口更加混乱(在数学意义上),并且您正在制作一些深树尝试将其拆分为决策树。
更深入地查看第三个窗口可能会建议您执行一些数据工程,这将使它更易于学习。或者,可能是您的数据有所不同。例如。在2016年和2017年数据中,一列全为NULL,但在2018年数据中全为NULL,因为2018年是您开始收集的一年,正是这一额外的列使/使树变得更深。
最后,也许网格超参数对于性能而言并不重要,而这归因于噪声。例如。您有max_depth
作为超参数,但是对MSE的影响很小,而噪声是很大的因素。这些随机差异可能会使您的最佳模型进入两个数据集的深度5(但第二最佳模型差0.01%,但进入深度20),但对于第三数据集,则进入深度30(但进入第二最佳模型)差了0.01%,但只达到深度5)。
(如果我正确理解了您的问题,那么您就消除了这种可能性,因为您然后在相同的超参数上训练了所有三个数据集?但是我想还是应该包括它。)