处理StreamingLogisticRegressionwithSGD中的分类变量

时间:2016-07-12 10:20:44

标签: apache-spark apache-spark-mllib

我正在尝试使用StreamingLogisticRegressionwithSGD来构建CTR预测模型。

The document is here

提到numFeatures应该是常量。

我面临的问题是: 由于我的大多数变量都是分类的,因此numbeatures变量应该是在标记点格式编码和解析分类变量后的最终变量集。

假设对于分类变量x1,我在当前窗口中有10个不同的值。

但是在下一个窗口中,一些新的值/项被添加到x1并且不同值的数量增加。在这种情况下我应该如何处理numFeatures变量,因为它现在会改变?

基本上,我的问题是如何处理流模型中分类变量的新值。

谢谢, Kundan

1 个答案:

答案 0 :(得分:0)

您应该使用零值填充缺失的列,并丢弃每个窗口中任何新遇到的值,以确保剩余的数量与用于培训的数量相同。

让我们考虑在训练集中具有值[cityNewYorkParis]的列Tokyo。这将导致三列。

如果在预测期间您发现值[NewYorkParisChicagoRioDeJaneiro],则应丢弃值Chicago和" RioDeJaneiro"然后填写对应于"东京"的列的零值。结果仍然有三列([NewYorkParisTokyo]各一列。