@@ -6,26 +6,125 @@ Release history
66
77.. currentmodule :: skrub
88
9- Ongoing development
9+ Ongoing Development
1010===================
1111
1212New features
1313------------
14+ - The :meth: `DataOp.skb.full_report ` now displays the time each node took to
15+ evaluate. :pr: `1596 ` by :user: `Jérôme Dockès <jeromedockes> `.
1416
15- - The skrub expressions are new mechanism for building machine-learning
17+ Changes
18+ -------
19+ - Ken embeddings are now deprecated, the functions :func: `datasets.get_ken_embeddings `,
20+ :func: `datasets.get_ken_table_aliases `, and :func: `datasets.get_ken_types ` will be
21+ removed in the next release of skrub.
22+ :pr: `1546 ` by :user: `Vincent Maladiere <Vincent-Maladiere> `.
23+ - Improved error messages when a DataOp is being sent to dispatched functions.
24+ :pr: `1607 ` by :user: `Riccardo Cappuzzo<rcap107> `.
25+ - The accepted values for the parameter ``how `` of :meth: `DataOp.skb.apply ` have
26+ changed. The new values are ``"auto" `` (unchanged), ``"cols" `` to wrap the
27+ transformer in :class: `ApplyToCols `, ``"frame" `` to wrap the transformer in
28+ :class: `ApplyToFrame `, or ``"no_wrap" `` for no wrapping. The old values are
29+ deprecated and will result in an error in a future release.
30+ :pr: `1628 ` by :user: `Jérôme Dockès <jeromedockes> `.
31+ - The parameter ``splitter `` of :meth: `DataOp.skb.train_test_split ` has been
32+ renamed ``split_func ``. :pr: `1630 ` by :user: `Jérôme Dockès <jeromedockes> `.
33+
34+
35+ Bugfixes
36+ --------
37+
38+ - Fixed a compatibility bug with Polars 1.32.3 that may cause `ToFloat32 ` to fail
39+ when applied to categorical columns. :pr: `1570 ` by :user: `Riccardo Cappuzzo<rcap107> `.
40+ - Fixed the display of DataOp objects in google colab cell outputs (no output
41+ was displayed). :pr: `1590 ` by :user: `Jérôme Dockès <jeromedockes> `.
42+ - Fixed an error that occurred when using ``.skb.concat `` with a pandas dataframe
43+ with column names that aren't strings. :pr: `1594 ` by :user: `Riccardo Cappuzzo<rcap107> `.
44+ - Fixed the range from which :func: `choose_float ` and :func: `choose_int ` sample
45+ values when ``log=False `` and ``n_steps `` is ``None ``. It was between ``low ``
46+ and ``low + high ``, now it is between ``low `` and ``high ``. :pr: `1603 ` by
47+ :user: `Jérôme Dockès <jeromedockes> `.
48+ - DataOp hyperparameter search would raise an error when doing classification
49+ and using the ``scoring `` parameter, when the dataop contained no variables.
50+ Fixed in :pr: `1601 ` by :user: `Jérôme Dockès <jeromedockes> `.
51+ - :class: `SkrubLearner ` used to do a prediction on the train set during
52+ ``fit() ``, this has been fixed.
53+ :pr: `1610 ` by :user: `Jérôme Dockès <jeromedockes> `.
54+ - :class: `DataOp ` would raise errors when containing subclasses of list, tuple
55+ or dict that cannot be initialized with an instance of the builtin type (such
56+ as classes created by ``collections.namedtuple ``), this has been fixed.
57+ DataOps now only recurse into the builtin collections to evaluate their items
58+ (not into their subclasses). If you need the items evaluated (ie if they
59+ contain DataOps or Choices), store them in one of the builtin collections.
60+ :pr: `1612 ` by :user: `Jérôme Dockès <jeromedockes> `.
61+ - :meth: `SkrubLearner.report ` with ``mode="fit" `` used to display the dataops
62+ themselves, rather than their outputs, in the report. This has been fixed in
63+ :pr: `1623 ` by :user: `Jérôme Dockès <jeromedockes> `.
64+ - Fixed a bug that happened when ``get_feature_names_out `` was called on instances
65+ of the :class: `DatetimeEncoder `. :pr: `1622 ` by :user: `Riccardo Cappuzzo<rcap107> `.
66+
67+ Release 0.6.1
68+ ===================
69+
70+ Bugfixes
71+ --------
72+
73+ - ``get_feature_names_out `` now works correctly when used by :class: `GapEncoder `,
74+ :class: `DropCols `, :class: `SelectCols: ` from within a scikit-learn ``Pipeline ``. In
75+ addition, :class: `DropCols `'s ``get_feature_names_out `` method now returns the
76+ names of the columns that are not dropped, rather than the names of the columns
77+ that are dropped. :pr: `1543 ` by :user: `Riccardo Cappuzzo<rcap107> `.
78+
79+
80+ Release 0.6.0
81+ =============
82+
83+ Highlights
84+ ----------
85+ - Major feature! Skrub DataOps are a powerful new way of
86+ combining dataframe transformations over multiple tables, and machine learning
87+ pipelines. DataOps can be combined to form compled data plans, that can be used
88+ to train and tune machine learning models. Then, the DataOps plans can be exported
89+ as ``Learners `` (:class: `skrub.SkrubLearner `), standalone objects that can be
90+ used on new data. More detail about the DataOps can be found in the
91+ :ref: `User guide <user_guide_data_ops_index >` and in the
92+ :ref: `examples <data_ops_examples_ref >`.
93+
94+ - The :class: `TableReport ` has been improved with many new features. Series are
95+ now supported directly. It is now
96+ possible to skip computing column associations and generating plots when the
97+ number of columns in the dataframe exceeds a user-defined threshold. Columns with
98+ high cardinality and sorted columns are now highlighted in the report.
99+
100+ - :mod: `selectors `, :class: `ApplyToCols ` and :class: `ApplyToFrame ` are now available,
101+ providing utilities for selecting columns to which a transformer should be applied
102+ in a flexible way. For more details, see the :ref: `User guide <user_guide_selectors >`
103+ and the :ref: `example <sphx_glr_auto_examples_09_apply_to_cols.py >`.
104+
105+ - The :class: `SquashingScaler ` has been added: it robustly rescales and smoothly
106+ clips numeric columns, enabling more robust handling of numeric columns
107+ with neural networks. See the :ref: `example <sphx_glr_auto_examples_10_squashing_scaler.py >`
108+
109+ New features
110+ ------------
111+
112+ - The Skrub DataOps are new mechanism for building machine-learning
16113 pipelines that handle multiple tables and easily describing their
17- hyperparameter spaces. See :ref: ` the examples < expressions_examples_ref >` for
18- an introduction. :pr: ` 1233 ` by :user: ` Jérôme Dockès <jeromedockes> `. A lot of
19- work from other contributors is not directly visible on the pull request page :
114+ hyperparameter spaces. Main PR: :pr: ` 1233 ` by :user: ` Jérôme Dockès <jeromedockes> `.
115+ Additional work from other contributors can be found
116+ ` here < https://github.com/skrub-data/skrub/issues?q=merged%3A%3C2025-07-24%20label%3Adata_ops >`_ :
20117 :user: `Vincent Maladiere <Vincent-Maladiere> ` provided very important help by
21- trying the expressions on many use-cases and datasets, providing feedback and
118+ trying the DataOps on many use-cases and datasets, providing feedback and
22119 suggesting improvements, improving the examples (including creating all the
23120 figures in the examples) and adding jitter to the parallel coordinate plots,
24- :user: `Riccardo Cappuzzo<rcap107> ` experimented with the expressions ,
121+ :user: `Riccardo Cappuzzo<rcap107> ` experimented with the DataOps ,
25122 suggested improvements and improved the examples, :user: `Gaël Varoquaux
26123 <gaelvaroquaux> ` , :user: `Guillaume Lemaitre <glemaitre> `, :user: `Adrin Jalali
27124 <adrinjalali> `, :user: `Olivier Grisel <ogrisel> ` and others participated
28125 through many discussions in defining the requirements and the public API.
126+ See :ref: `the examples <data_ops_examples_ref >` for
127+ an introduction.
29128
30129- The :mod: `selectors ` module provides utilities for selecting columns to which
31130 a transformer should be applied in a flexible way. The module was created in
@@ -43,13 +142,39 @@ New features
43142 to configure settings for dataframes display and expressions. :func: `patch_display `
44143 and :func: `unpatch_display ` are deprecated and will be removed in the next release
45144 of skrub. :pr: `1427 ` by :user: `Vincent Maladiere <Vincent-Maladiere> `.
145+ The global configuration includes the parameter ``cardinality_threshold `` that
146+ controls the threshold value used to warn user if they have high cardinality
147+ columns in their dataset. :pr: `1498 ` by :user: `rouk1 <rouk1> `.
148+ Additionally, the parameter ``float_precision ``
149+ controls the number of significant digits displayed for floating-point values
150+ in reports. :pr: `1470 ` by :user: `George S <georgescutelnicu> `.
151+
152+ - Added the :class: `SquashingScaler `, a transformer that
153+ robustly rescales and smoothly clips numeric columns,
154+ enabling more robust handling of numeric columns
155+ with neural networks. :pr: `1310 ` by :user: `Vincent Maladiere <Vincent-Maladiere> ` and
156+ :user: `David Holzmüller <dholzmueller> `.
157+
158+ - :func: `datasets.toy_order ` is now available to create a toy dataframe and
159+ corresponding targets for examples.
160+ :pr: `1485 ` by :user: `Antoine Canaguier-Durand <canag> `.
161+
162+ - :class: `ApplyToCols ` and :class: `ApplyToFrame ` are now available to apply transformers
163+ on a set of columns independently and jointly respectively.
164+ :pr: `1478 ` by :user: `Vincent Maladiere<Vincent-Maladiere> `.
165+
46166
47167Changes
48168-------
49169.. warning ::
50170 The default high cardinality encoder for both :class: `TableVectorizer ` and
51- :meth: `tabular_learner ` has been changed from :class: `GapEncoder ` to
52- :class: `StringEncoder `. :pr: `1354 ` by :user: `Riccardo Cappuzzo<rcap107> `.
171+ :meth: `tabular_learner ` (now :meth: `tabular_pipeline `) has been changed from
172+ :class: `GapEncoder ` to :class: `StringEncoder `. :pr: `1354 ` by
173+ :user: `Riccardo Cappuzzo<rcap107> `.
174+
175+ - The ``tabular_learner `` function has been deprecated in favor of :func: `tabular_pipeline ` to honor
176+ its scikit-learn pipeline cultural heritage, and remove the ambiguity with the data
177+ ops Learner. :pr: `1493 ` by :user: `Vincent Maladiere <Vincent-Maladiere> `.
53178
54179- :class: `StringEncoder ` now exposes the ``stop_words `` argument, which is passed to the
55180 underlying vectorizer (:class: `~sklearn.feature_extraction.text.TfidfVectorizer `,
@@ -63,20 +188,26 @@ Changes
63188- The `packaging ` dependency was removed.
64189 :pr: `1307 ` by :user: `Jovan Stojanovic <jovan-stojanovic> `
65190
191+ - :class: `TextEncoder `, :class: `StringEncoder ` and :class: `GapEncoder ` now compute the
192+ total standard deviation norm during training, which is a global constant, and
193+ normalize the vector outputs by performing element-wise division on all entries.
194+ :pr: `1274 ` by :user: `Vincent Maladiere <Vincent-Maladiere> `.
195+
66196- The :class: `DropIfTooManyNulls ` transformer has been replaced by the
67197 :class: `DropUninformative ` transformer and will be removed in a future release.
68198 :pr: `1313 ` by :user: `Riccardo Cappuzzo<rcap107> `
69199
70200- The :func: `concat_horizontal ` function was replaced with :func: `concat `. Horizontal or vertical concatenation
71201 is now controlled by the `axis ` parameter. :pr: `1334 ` by :user: `Parasa V Prajwal <pvprajwal> `.
202+
72203- The :class: `TableVectorizer ` and :class: `Cleaner ` now accept a `datetime_format `
73204 parameter for specifying the format to use when parsing datetime columns.
74205 :pr: `1358 ` by :user: `Riccardo Cappuzzo<rcap107> `.
75206
76207- The :class: `SimpleCleaner ` has been removed. use :class: `Cleaner ` instead. :pr: `1370 ` by :user: `Riccardo Cappuzzo<rcap107> `.
77208
78209- The periodic encoding for the ``day_in_year `` has been removed from the :class: `DatetimeEncoder ` as it was
79- redundant. The feature itself is still added if the flag is set to True. :pr: `1396 ` by :user: `Riccardo Cappuzzo<rcap107> `.
210+ redundant. The feature itself is still added if the flag is set to `` True `` . :pr: `1396 ` by :user: `Riccardo Cappuzzo<rcap107> `.
80211
81212- The naming scheme used for the features generated by :class: `TextEncoder `, :class: `StringEncoder `, :class: `MinHashEncoder `,
82213 :class: `DatetimeEncoder ` has been standardized. Now features generated by all encoders have indices in the range
@@ -88,17 +219,30 @@ Changes
88219
89220- The :class: `TableReport ` now supports Series in addition to Dataframes. :pr: `1420 ` by :user: `Vitor Pohlenz<vitorpohlenz> `.
90221
91- - The :class: `Cleaner ` now exposes a parameter to convert numerical values to float32. :pr: `1440 ` by
222+ - The :class: `Cleaner ` now exposes a parameter to convert numeric values to float32. :pr: `1440 ` by
92223 :user: `Riccardo Cappuzzo<rcap107> `.
93224
94- - A new parameter `` float_precision `` has been added to the global config to control the number of significant digits
95- displayed for floating-point values in reports. :pr: ` 1470 ` by :user: ` George S <georgescutelnicu> `.
225+ - The :class: ` TableReport ` now shows if columns are sorted. :pr: ` 1512 ` by :user: ` Dea María Léon<DeaMariaLeon> `.
226+
96227
97228Bugfixes
98229--------
99230- Fixed a bug that caused the :class: `StringEncoder ` and :class: `TextEncoder ` to raise an exception if the
100231 input column was a Categorical datatype. :pr: `1401 ` by :user: `Riccardo Cappuzzo<rcap107> `.
101232
233+ Documentation
234+ -------------
235+ A large number of improvements to the examples, docstrings, and the documentation
236+ website have been made. Contributors include :user: `Vincent Maladiere <Vincent-Maladiere> `,
237+ :user: `Riccardo Cappuzzo<rcap107> `, :user: `Jérôme Dockès <jeromedockes> `,
238+ :user: `Gael Varoquaux <gaelvaroquaux> `, :user: `Gabriela Gómez Jiménez <gabrielapgomezji> `,
239+ :user: `Sylvain Combettes <sylvaincom> `, :user: `Frits Hermans <fritshermans> `,
240+ :user: `Vitor Pohlenz <vitorpohlenz> `, :user: `Arturo Amor Quiroz <ArturoAmorQ> `,
241+ :user: `Marie Sacksick <MarieSacksick> `, :user: `Emilien Battel <emilienbattel09> `,
242+ :user: `George El Haber <gmhaber> `, :user: `Antoine Canaguier-Durand <canag> `, and
243+ :user: `Lionel Kusch <lionelkusch> `.
244+
245+
102246Release 0.5.4
103247=============
104248
@@ -205,8 +349,8 @@ Release 0.4.1
205349
206350Changes
207351-------
208- * :class: ` TableReport ` has ` write_html ` method
209- :pr: `1190 ` by :user: `Mojdeh Rastgoo<mrastgoo> `.
352+
353+ * :class: ` TableReport ` has ` write_html ` method. :pr: `1190 ` by :user: `Mojdeh Rastgoo<mrastgoo> `.
210354
211355* A new parameter ``verbose `` has been added to the :class: `TableReport ` to toggle on or off the
212356 printing of progress information when a report is being generated.
@@ -674,7 +818,7 @@ Minor changes
674818 - `check_is_fitted ` now looks at `"transformers_" ` rather than `"columns_" `
675819 - the default of the `remainder ` parameter in the docstring is now `"passthrough" `
676820 instead of `"drop" ` to match the implementation.
677- - uint8 and int8 dtypes are now considered as numerical columns.
821+ - uint8 and int8 dtypes are now considered as numeric columns.
678822
679823* Removed the leading "<" and trailing ">" symbols from KEN entities
680824 and types.
@@ -724,10 +868,10 @@ Dirty-cat release 0.4.1
724868
725869Major changes
726870-------------
727- * :func: `fuzzy_join ` and :class: `FeatureAugmenter ` can now join on numerical columns based on the euclidean distance.
871+ * :func: `fuzzy_join ` and :class: `FeatureAugmenter ` can now join on numeric columns based on the euclidean distance.
728872 :pr: `530 ` by :user: `Jovan Stojanovic <jovan-stojanovic> `
729873
730- * :func: `fuzzy_join ` and :class: `FeatureAugmenter ` can perform many-to-many joins on lists of numerical or string key columns.
874+ * :func: `fuzzy_join ` and :class: `FeatureAugmenter ` can perform many-to-many joins on lists of numeric or string key columns.
731875 :pr: `530 ` by :user: `Jovan Stojanovic <jovan-stojanovic> `
732876
733877* :func: `GapEncoder.transform ` will not continue fitting of the instance anymore.
@@ -817,7 +961,7 @@ Dirty-cat Release 0.3.0
817961Major changes
818962-------------
819963
820- * New encoder: :class: `DatetimeEncoder ` can transform a datetime column into several numerical columns
964+ * New encoder: :class: `DatetimeEncoder ` can transform a datetime column into several numeric columns
821965 (year, month, day, hour, minute, second, ...). It is now the default transformer used
822966 in the :class: `TableVectorizer ` for datetime columns. :pr: `239 ` by :user: `Leo Grinsztajn <LeoGrin> `
823967
0 commit comments