559. GoDaddy - Microbusiness Density Forecasting | godaddy-microbusiness-density-forecasting
我的交叉验证表明,复杂的梯度提升模型并没有比简单方法显示出显著更好的结果。在某些月份,梯度提升的表现甚至比"上一个值"基线更差,而简单方法表现出更稳定的性能。
以下公式展示了我如何为cfips(县)估计趋势:
active_quantile_group_21_last_6m_trend 表示在之前6个月中,针对活跃数量分组的21个组之一,预测下一个月 microbusiness_density 的最佳乘数常数(限制在1到1.006之间)。state 和具体 cfips 组采用相同的逻辑。
forward_2 表示预测未来2个月的最佳乘数常数(限制在1到1.012之间)。
df_features_data['trend'] = (
df_features_data['active_quantile_group_21_last_6m_trend'] * 0.16
+ df_features_data['active_quantile_group_21_last_3m_trend'] * 0.16
+ df_features_data['state_last_6m_trend'] * 0.14 + df_features_data['state_last_3m_trend'] * 0.14
+ df_features_data['cfips_last_6m_trend'] * 0.20 + df_features_data['cfips_last_3m_trend'] * 0.20
) * 0.5 + ((
df_features_data['active_quantile_group_21_last_6m_trend_forward_2'] * 0.4
+ df_features_data['state_last_6m_trend_forward_2'] * 0.4
+ df_features_data['cfips_last_6m_trend_forward_2'] * 0.2
)**0.5) * 0.5
由于公开排行榜数据未发布,对于时间序列数据,使用最佳公开提交作为起点应该是有利的。
选择2个提交来覆盖不同场景是个好主意。我将它们称为正向提交(我们低估了趋势)和负向提交(我们高估了趋势)。
例如,对于正向提交:* (trend + 0.0005)**(month_number)
由于过去两年五月都出现了数值下降,我直接对四月预测值乘以 * (1 - 0.0025) 来得到正向提交的五月预测。
我的交叉验证表明,对这些县使用"上一个值"基线(许多公开基线都这样做)仅对一个月的前瞻预测有效。对于三月、四月、五月,我使用了一些乘法常数。
下图显示:对于活跃数 < 75 的县,使用"上一个值"基线进行3个月预测效果最好;对于75-150的县,使用趋势更好。
祝大家好运!