Skrub's Avatar

Skrub

@skrub-data.bsky.social

skrub is a Python library to ease preprocessing and feature engineering for tabular machine learning. Our long-term goal is to directly connect database tables to machine learning estimators. https://skrub-data.org https://discord.gg/ABaPnm7fDC

621 Followers  |  48 Following  |  115 Posts  |  Joined: 19.11.2024  |  1.5061

Latest posts by skrub-data.bsky.social on Bluesky

Preview
Release Skrub release 0.7.0 · skrub-data/skrub Release 0.7.0 ✨ Highlights Data Ops can now be tuned with Optuna. It is now possible to pass extra named arguments to an estimator through DataOps.skb.apply. The TableReport now supports numpy arr...

Skrub 0.7.0 is here! πŸŽ‰

✨ Main highlights:
- Tune hyperparameter choices with Optuna
- Added support for Pandas 3.0
- Estimators in data ops can now take additional kwargs

16 new contributors helped with this release πŸ‘₯

Check out the full changelog: github.com/skrub-data/s...

12.12.2025 09:55 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Clean code in Data Science - Gael Varoquaux - Skrub DataOps, Probabl:
YouTube video by dotconferences Clean code in Data Science - Gael Varoquaux - Skrub DataOps, Probabl:

@skrub-data.bsky.social: better data-science primitives for clean code on dataframes

Watch my dotAI talk, it's fun (live coding)!
www.youtube.com/watch?v=bQS4...
skrub really makes it easy to do machine learning with dataframes

17.11.2025 17:07 β€” πŸ‘ 27    πŸ” 8    πŸ’¬ 0    πŸ“Œ 0
ApplyToFrame Gallery examples: Hands-On with Column Selection and Transformers

skrub-data.org/stable/refer...

08.10.2025 12:43 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
ApplyToCols Gallery examples: Getting Started Hands-On with Column Selection and Transformers

skrub-data.org/stable/refer...

08.10.2025 12:43 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Hands-On with Column Selection and Transformers In previous examples, we saw how skrub provides powerful abstractions like TableVectorizer and tabular_pipeline() to create pipelines. In this new example, we show how to create more flexible pipel...

Example: skrub-data.org/stable/auto_...

08.10.2025 12:43 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

For even more control over column selection, skrub provides a collection of selectors that let you partition dataframes by data type, column name, or user-specified functions.

08.10.2025 12:43 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

All these transformers can be concatenated and inserted in a scikit-learn pipeline to build a feature matrix with complex column selection operation, and can be seen as an alternative for the scikit-learn ColumnTransformer.

08.10.2025 12:43 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Post image

ApplyToFrame selects columns in the same way, but then uses all of them at the same time as input to the transformer: this is useful for dimensionality reduction.
SelectCols and DropCols can be used as "filtering blocks" in a pipeline.

08.10.2025 12:43 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Post image

Skrub includes a powerful set of transformers and selectors that allow to transform columns based on various conditions.

ApplyToCols lets you select a subset of columns in your dataframe, then applies a transformer to each selected column separately.

08.10.2025 12:43 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

On vous a déjà dit que Skrub c'est cool ? Et que l'intervention de @riccardocappuzzo.com était très chouette ? Hein, on vous l'a dit ?
skrub-data.org/skrub-materi...

07.10.2025 14:44 β€” πŸ‘ 3    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0
Skrub learning materials – Skrub

Slides:
skrub-data.org/skrub-materi...

07.10.2025 14:36 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Thanks to @riccardocappuzzo.com , @glemaitre58.bsky.social and Jérôme Dockès for preparing the talk, and mentoring at the sprint!

07.10.2025 14:36 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

The sprint was also a big hit, with both new and old contributors working on issues and getting to know the repository.

And to cap it all off, thanks to P16 we have stickers now πŸš€

07.10.2025 14:36 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
The skrub sticker on the back of a laptop

The skrub sticker on the back of a laptop

@pydataparis.bsky.social 2025 is over, and it was a big success!

Our talk was very well received, and we got a lot of great questions, especially about scalability and how to interface with other libraries in production environments.

07.10.2025 14:36 β€” πŸ‘ 5    πŸ” 0    πŸ’¬ 1    πŸ“Œ 1
Post image

What a banger is skrub @skrub-data.bsky.social !

Big thumbs up for the sklearn team & the maintainer of this package

01.10.2025 08:23 β€” πŸ‘ 14    πŸ” 4    πŸ’¬ 1    πŸ“Œ 0

πŸ“… Less than a week away! The talk will be on Oct 1st at 10.05AM in room Louis Armand 1 - Est.

If you want to contribute to skrub, we will also have a sprint on Thursday.

See you there!

26.09.2025 08:50 β€” πŸ‘ 5    πŸ” 1    πŸ’¬ 0    πŸ“Œ 1

πŸ› οΈ Main bugfixes
- Fixed the display of DataOp objects in Google Colab cell outputs.
- Fixed the range from which choose_float and choose_int sample values when log=False and n_steps is None.
- The SkrubLearner used to do a prediction on the train set during fit(), this has been fixed.

26.09.2025 08:48 β€” πŸ‘ 1    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0

πŸ‘€ Changes and deprecations
- Ken embeddings are now deprecated.
- The accepted values for the parameter how of .skb.apply() have changed. The new values are "auto", "cols", "frame", and "no_wrap".
- The parameter splitter of .skb.train_test_split() has been renamed split_func.

26.09.2025 08:48 β€” πŸ‘ 1    πŸ” 1    πŸ’¬ 1    πŸ“Œ 0

πŸš€ New features
- The DataOp.skb.full_report() now displays the time each node took to evaluate.
- The User guide has been reworked and expanded.

26.09.2025 08:48 β€” πŸ‘ 1    πŸ” 1    πŸ’¬ 1    πŸ“Œ 0
Preview
Release 0.6.2 · skrub-data/skrub New features The DataOp.skb.full_report() now displays the time each node took to evaluate. #1596 by Jérôme Dockès. The User guide has been reworked and expanded. Changes and deprecations Ken em...

⚑ Release 0.6.2 is out ⚑

github.com/skrub-data/s...

26.09.2025 08:48 β€” πŸ‘ 7    πŸ” 4    πŸ’¬ 1    πŸ“Œ 0

Reminder: skrub == cool

12.09.2025 13:34 β€” πŸ‘ 8    πŸ” 4    πŸ’¬ 0    πŸ“Œ 0
Hyperparameter tuning with DataOps A machine-learning pipeline typically contains some values or choices which may influence its prediction performance, such as hyperparameters (e.g. the regularization parameter alpha of a RidgeClas...

Here's another example on how to tune ML models with skrub Data Ops: skrub-data.org/stable/auto_...

12.09.2025 12:56 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Skrub DataOps applied to forecasting timeseries β€” Skrub DataOps applied to forecasting timeseries

The plot in the video was created for our EurosciPy 2025 tutorial on forecasting time series: skrub-data.org/EuroSciPy202...

12.09.2025 12:56 β€” πŸ‘ 1    πŸ” 1    πŸ’¬ 1    πŸ“Œ 0

The plot is interactive: you can select a range of results, and it will highlight only the runs within that range, enabling you to refine your search further. It also tracks fit and score times, so you can identify which parameters most impact runtime.

12.09.2025 12:56 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Video thumbnail

skrub DataOps help you construct complex and extensive hyperparameter search spaces. However, interpreting results from large grids can be challenging.
To address this, skrub generates a parallel coordinate plot that visualizes all runs and the parameters used to achieve specific results.

12.09.2025 12:56 β€” πŸ‘ 6    πŸ” 0    πŸ’¬ 1    πŸ“Œ 1
SquashingScaler Gallery examples: SquashingScaler: Robust numerical preprocessing for neural networks

skrub-data.org/stable/refer...

05.09.2025 08:47 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image

Do you have to deal with numerical features that involve large outliers, and need to train linear models or neural networks?

Then you might want to try the skrub SquashingScaler. The SquashingScaler behaves like scikit-learn RobustScaler, but smoothly clips outliers to predefined boundaries.

05.09.2025 08:47 β€” πŸ‘ 1    πŸ” 1    πŸ’¬ 1    πŸ“Œ 0
Post image Post image

Our first talk tonight is from @gaelvaroquaux.bsky.social on @skrub-data.bsky.social.

Real tables are too messy for sklearn - skrub preprocesses them for you.

02.09.2025 18:28 β€” πŸ‘ 8    πŸ” 3    πŸ’¬ 1    πŸ“Œ 1

Had a great PyData London tonight! Was a real treat to hear from @gaelvaroquaux.bsky.social on @skrub-data.bsky.social and the real world data pains its solving. (Try it if you haven’t already; super easy to get going!)

03.09.2025 00:06 β€” πŸ‘ 3    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0
Preview
Release Skrub release 0.6.1 Β· skrub-data/skrub Bugfixes get_feature_names_out now works correctly when used by GapEncoder, DropCols, SelectCols: from within a scikit-learn Pipeline. In addition, DropCols’s get_feature_names_out method now retu...

⚑Maintenance release ⚑

Release 0.6.1 fixes a bug that may happen when combining certain column-based skrub transformers with the scikit-learn ColumnTransformer.

github.com/skrub-data/s...

29.08.2025 15:59 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

@skrub-data is following 20 prominent accounts