【问题标题】:Handling categorical variables in StreamingLogisticRegressionwithSGD [duplicate]在 StreamingLogisticRegressionwithSGD 中处理分类变量 [重复]
【发布时间】:2016-07-12 19:22:23
【问题描述】:

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

The document is here

提到 numFeatures 应该是常数。

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

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

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

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

谢谢, 昆丹

【问题讨论】:

    标签: apache-spark apache-spark-mllib


    【解决方案1】:

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

    让我们考虑在训练集中具有值 [NewYork, Paris, Tokyo] 的列 city。这将产生三列。

    如果在预测过程中发现值 [NewYorkParisChicagoRioDeJaneiro],则应丢弃值 Chicago 和“RioDeJaneiro”,然后为“东京”对应的列填充零值" 这样结果仍然有三列([NewYork, Paris, Tokyo] 各一列)。

    【讨论】:

    • 我主要关心的是如何处理新批次(训练数据)中分类变量的新值。在上一个批次中,我说 [NewYork, Paris, Tokyo],而在当前批次中,值是 [NewYork, Paris, Chicago, RioDeJaneiro]。由于流逻辑回归模型中的 numfeatures 应该是恒定的,我应该如何处理这些新值?谢谢!
    猜你喜欢
    • 2018-01-22
    • 1970-01-01
    • 1970-01-01
    • 2020-06-11
    • 2018-11-09
    • 2016-06-18
    • 2013-06-01
    • 2015-01-18
    • 1970-01-01
    相关资源
    最近更新 更多