我正在尝试使用StreamingLogisticRegressionwithSGD来构建CTR预测模型。
提到numFeatures应该是常量。
我面临的问题是: 由于我的大多数变量都是分类的,因此numbeatures变量应该是在标记点格式编码和解析分类变量后的最终变量集。
假设对于分类变量x1,我在当前窗口中有10个不同的值。
但是在下一个窗口中,一些新的值/项被添加到x1并且不同值的数量增加。在这种情况下我应该如何处理numFeatures变量,因为它现在会改变?
基本上,我的问题是如何处理流模型中分类变量的新值。
谢谢, Kundan
答案 0 :(得分:0)
您应该使用零值填充缺失的列,并丢弃每个窗口中任何新遇到的值,以确保剩余的数量与用于培训的数量相同。
让我们考虑在训练集中具有值[city
,NewYork
,Paris
]的列Tokyo
。这将导致三列。
如果在预测期间您发现值[NewYork
,Paris
,Chicago
,RioDeJaneiro
],则应丢弃值Chicago
和" RioDeJaneiro"然后填写对应于"东京"的列的零值。结果仍然有三列([NewYork
,Paris
,Tokyo
]各一列。