Take another pass over the trainers and the model parameter types, and align them, because now we have:
LogisticRegressionMulticlassClassificationTrainer but MulticlassLogisticRegressionModelParameters.
I think following the same principles on the ModelParams might make them more relatable; so change MulticlassLogisticRegressionModelParameters to LogisticRegressionMulticlassModelParameters
@shauheen would this be a candidate for Project 13?
In general, it seems there isn't a 1:1 mapping between trainer and model parameter types.
SdcaNonCalibratedBinaryClassificationTrainer uses LinearBinaryModelParametersSdcaCalibratedBinaryClassificationTrainer uses CalibratedModelParametersBase as type of the model parameter.However, there are some discrepancies that exists. Whenever possible we should align the trainer and model parameter types.
Listing some of the trainers where we can fix this :
Update:
Here is a summary of the Trainer and ModelParameter class names
| Updated Trainer Class Name |
| ------------------------ |
| FastTreeBinaryTrainer |
| FastTreeRegressionTrainer |
| FastTreeRankingTrainer |
| FastTreeTweedieTrainer |
| FastForestRegressionTrainer |
| FastForestBinaryTrainer |
| MatrixFactorizationTrainer |
| GamBinaryTrainer |
| GamRegressionTrainer |
| LogisticRegressionBinaryTrainer |
| LogisticRegressionMulticlassTrainer (see comment below by @wschin ) |
| AveragedPerceptronTrainer |
| OnlineGradientDescentTrainer |
| PoissonRegressionTrainer |
| KMeansTrainer |
| OlsTrainer |
| PriorTrainer |
| PairwiseCouplingTrainer |
| OneVersusAllTrainer |
| NaiveBayesMulticlassTrainer |
| SgdCalibratedTrainer |
| SgdNonCalibratedTrainer |
| FieldAwareFactorizationMachineTrainer |
| SymbolicSgdTrainer |
| LightGbmRegressionTrainer |
| LightGbmBinaryTrainer |
| LightGbmRankingTrainer |
| LightGbmMulticlassTrainer |
| LinearSvmTrainer |
| RandomizedPcaTrainer |
| SdcaCalibratedBinaryTrainer |
| SdcaNonCalibratedBinaryTrainer |
| SdcaMulticlassTrainer |
| SdcaRegressionTrainer |
| SdcaTrainerBase |
| LbfgsTrainerBase |
| GamTrainerBase |
| Updated ModelParameter Class Name |
| ------------------------------------------ |
| GamBinaryModelParameters |
| GamRegressionModelParameters |
| LightGbmBinaryModelParameters |
| LightGbmRankingModelParameters |
| LightGbmRegressionModelParameters |
| FastTreeBinaryModelParameters |
| FastTreeRegressionModelParameters |
| FastTreeRankingModelParameters |
| FastTreeTweedieModelParameters |
| FastForestBinaryModelParameters |
| FastForestRegressionModelParameters |
| NaiveBayesMulticlassModelParameters |
| OlsModelParameters |
| PcaModelParameters |
| FieldAwareFactorizationMachineModelParameters |
| KMeansModelParameters |
| PoissonRegressionModelParameters |
| MatrixFactorizationModelParameters |
| OneVersusAllModelParameters |
| PairwiseCouplingModelParameters |
| PriorModelParameters |
| LinearRegressionModelParameters |
| RegressionModelParameters |
| LinearBinaryModelParameters |
| CalibratedModelParametersBase |
| GamModelParametersBase |
| TreeEnsembleModelParameters |
| TreeEnsembleModelParametersBasedOnQuantileRegressionTree |
| TreeEnsembleModelParametersBasedOnRegressionTree |
For multi-class LR trainer and its model, we will different names in #2976. Looks like they don't need multiclass.
We can NOT have LogisticRegressionMulticlass because LogisticRegression is binary classification only.
Most helpful comment
Update:
Here is a summary of the Trainer and ModelParameter class names
| Updated Trainer Class Name |
| ------------------------ |
| FastTreeBinaryTrainer |
| FastTreeRegressionTrainer |
| FastTreeRankingTrainer |
| FastTreeTweedieTrainer |
| FastForestRegressionTrainer |
| FastForestBinaryTrainer |
| MatrixFactorizationTrainer |
| GamBinaryTrainer |
| GamRegressionTrainer |
| LogisticRegressionBinaryTrainer |
| LogisticRegressionMulticlassTrainer (see comment below by @wschin ) |
| AveragedPerceptronTrainer |
| OnlineGradientDescentTrainer |
| PoissonRegressionTrainer |
| KMeansTrainer |
| OlsTrainer |
| PriorTrainer |
| PairwiseCouplingTrainer |
| OneVersusAllTrainer |
| NaiveBayesMulticlassTrainer |
| SgdCalibratedTrainer |
| SgdNonCalibratedTrainer |
| FieldAwareFactorizationMachineTrainer |
| SymbolicSgdTrainer |
| LightGbmRegressionTrainer |
| LightGbmBinaryTrainer |
| LightGbmRankingTrainer |
| LightGbmMulticlassTrainer |
| LinearSvmTrainer |
| RandomizedPcaTrainer |
| SdcaCalibratedBinaryTrainer |
| SdcaNonCalibratedBinaryTrainer |
| SdcaMulticlassTrainer |
| SdcaRegressionTrainer |
| SdcaTrainerBase |
| LbfgsTrainerBase |
| GamTrainerBase |
| Updated ModelParameter Class Name |
| ------------------------------------------ |
| GamBinaryModelParameters |
| GamRegressionModelParameters |
| LightGbmBinaryModelParameters |
| LightGbmRankingModelParameters |
| LightGbmRegressionModelParameters |
| FastTreeBinaryModelParameters |
| FastTreeRegressionModelParameters |
| FastTreeRankingModelParameters |
| FastTreeTweedieModelParameters |
| FastForestBinaryModelParameters |
| FastForestRegressionModelParameters |
| NaiveBayesMulticlassModelParameters |
| OlsModelParameters |
| PcaModelParameters |
| FieldAwareFactorizationMachineModelParameters |
| KMeansModelParameters |
| PoissonRegressionModelParameters |
| MatrixFactorizationModelParameters |
| OneVersusAllModelParameters |
| PairwiseCouplingModelParameters |
| PriorModelParameters |
| LinearRegressionModelParameters |
| RegressionModelParameters |
| LinearBinaryModelParameters |
| CalibratedModelParametersBase |
| GamModelParametersBase |
| TreeEnsembleModelParameters |
| TreeEnsembleModelParametersBasedOnQuantileRegressionTree |
| TreeEnsembleModelParametersBasedOnRegressionTree |