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

OneVsRest Conceals Columns That May Be Relevant To Underlying Classifier

    XMLWordPrintableJSON

Details

    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

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

            Dates

              Created:
              Updated:
              Resolved: