Uploaded image for project: 'Spark'
  1. Spark
  2. SPARK-21306

OneVsRest Conceals Columns That May Be Relevant To Underlying Classifier

    XMLWordPrintableJSON

    Details

    • Target Version/s:

      Description

      Hi folks, thanks for Spark!

      I've been learning to use `ml` and `mllib`, and I've encountered a block while trying to use `ml.classification.OneVsRest` with `ml.classification.LogisticRegression`. Basically, here in the code, only two columns are being extracted and fed to the underlying classifiers.. however with some configurations, more than two columns are required.

      Specifically: I want to do multiclass learning with Logistic Regression, on a very imbalanced dataset. In my dataset, I have lots of imbalances, so I was planning to use weights. I set a column, `"weight"`, as the inverse frequency of each field, and I configured my `LogisticRegression` class to use this column, then put it in a `OneVsRest` wrapper.

      However, `OneVsRest` strips all but two columns out of a dataset before training, so I get an error from within `LogisticRegression` that it can't find the `"weight"` column.

      It would be nice to have this fixed! I can see a few ways, but a very conservative fix would be to include a parameter in `OneVsRest.fit` for additional columns to `select` before passing to the underlying model.

      Thanks!

        Attachments

          Activity

            People

            • Assignee:
              facai Yan Facai (颜发才)
              Reporter:
              cathalgarvey Cathal Garvey
              Shepherd:
              Yanbo Liang
            • Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: