Change StandardScaler to the SquashScaler for the tabular_pipline#1644
Conversation
|
Thanks a lot @dierickxsimon! In the original issue there was a discussion on the value of |
|
I would say 5 or 10 might be good for |
|
I'd rather go conversative
|
rcap107
left a comment
There was a problem hiding this comment.
Thanks a lot @dierickxsimon! This will be useful.
I left a few comments to improve the docs, we can merge after they are addressed.
Nice job!
| :obj:`~sklearn.linear_model.LogisticRegression` cannot handle missing values. | ||
|
|
||
| - A :obj:`~sklearn.preprocessing.StandardScaler` for centering and standard scaling | ||
| - A :obj:`~skrub.SquashingScaler` for centering and standard scaling |
There was a problem hiding this comment.
| - A :obj:`~skrub.SquashingScaler` for centering and standard scaling | |
| - A :obj:`~skrub.SquashingScaler` for centering and scaling |
|
I could relatively easily run some benchmarks to check different max_absolute_value with LinearModel. I'd prefer to do it in ~ two weeks though. |
I think we can wait until then without problem |
Co-authored-by: Riccardo Cappuzzo <7548232+rcap107@users.noreply.github.com>
Co-authored-by: Riccardo Cappuzzo <7548232+rcap107@users.noreply.github.com>
|
@dholzmueller do you think you could run the benchmark this week? otherwise we can always set the value to 10 and open a new pr later to set a different value once we have the results |
|
Yes, I plan to do it this week, sometime after my deadline (which is tomorrow). |
That's great, thanks a lot |
|
I ran linear regression with tuning and cross-validation ensembling on TALENT-regression (only applying the scalers to numerical features).
I could also run classification experiments with logistic regression easily (but it might take a few hours). |
|
For binary classification on TALENT with cross-entropy loss, I also tested 3, 5, and 10. Smaller values are better in all aggregations (win-rate, normalized scores, ranks, average error, etc.). For all values, the SquashingScaler is better than standardization. Based on this, I would say we should probably take a smaller value like 3 or 5 unless we want to be good on the few datasets where having a linear function is important. |
|
I think we can go with 5, the As I've mentioned IRL, @dholzmueller it would be great if we could put out a short post on how we chose the default value to add to the skrub-materials website. @dierickxsimon I think we can merge after setting the value to 5 |
|
Here is a draft for the post, can you fill in title / docs references or whatever is needed? To compare the SquashingScaler to the StandardScaler for linear/logistic regression, we ran them (with
Details: We used RMSE for regression and cross-entropy for classification, inner 8-fold cross-validation with ensembling, tuning on the TabRepo/TabArena search space (includes L1 or L2 regularization), 60%-40% train-test split, 2 repeats per dataset. |
rcap107
left a comment
There was a problem hiding this comment.
Perfect, thanks a lot @dierickxsimon for the PR, and @dholzmueller for running the benchmarks!
Thanks a lot, this will end on the skrub-materials website, so I'll move the draft there and ping you when it's ready |
…e` (skrub-data#1644) Co-authored-by: Riccardo Cappuzzo <7548232+rcap107@users.noreply.github.com>
Changing the scaler used for linear models from StandardScaler to SquashingScaler.