Skip to content

add .skb.iter_cv_splits()#1653

Merged
rcap107 merged 7 commits into
skrub-data:mainfrom
jeromedockes:dop-iter-cv-splits
Oct 8, 2025
Merged

add .skb.iter_cv_splits()#1653
rcap107 merged 7 commits into
skrub-data:mainfrom
jeromedockes:dop-iter-cv-splits

Conversation

@jeromedockes

Copy link
Copy Markdown
Member

We have .skb.train_test_split() to do a single train/test split. this adds the equivalent for cross-validation splitters:

import skrub
from sklearn.datasets import make_classification
from sklearn.dummy import DummyClassifier
from sklearn.metrics import accuracy_score
import polars as pl

X_a, y_a = make_classification()
df = pl.DataFrame(X_a).with_columns(y=y_a)

data = skrub.var("data")
X = data.drop("y", strict=False).skb.mark_as_X()
y = data["y"].skb.mark_as_y()
pred = X.skb.apply(DummyClassifier(), y=y)

for split in pred.skb.iter_cv_splits({"data": df}):
    learner = pred.skb.make_learner()
    learner.fit(split["train"])
    prediction = learner.predict(split["test"])
    print("accuracy", accuracy_score(split["y_test"], prediction))

prints

accuracy 0.35
accuracy 0.3
accuracy 0.35
accuracy 0.45
accuracy 0.35

@jeromedockes jeromedockes marked this pull request as draft October 2, 2025 14:35
@jeromedockes jeromedockes added the data_ops Something related to the skrub DataOps label Oct 2, 2025
@jeromedockes jeromedockes marked this pull request as ready for review October 2, 2025 22:36
@rcap107 rcap107 added this to the 0.7.0 milestone Oct 7, 2025
Comment thread CHANGES.rst Outdated
@rcap107

rcap107 commented Oct 8, 2025

Copy link
Copy Markdown
Member

Looks good to me, thanks a lot @jeromedockes

@rcap107 rcap107 merged commit b0a3c29 into skrub-data:main Oct 8, 2025
29 checks passed
dierickxsimon pushed a commit to dierickxsimon/skrub that referenced this pull request Oct 23, 2025
Co-authored-by: Riccardo Cappuzzo <7548232+rcap107@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

data_ops Something related to the skrub DataOps

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants