KFold#

class sklearn.model_selection.KFold(n_splits=5, *, shuffle=False, random_state=None)[Quelle]#

K-Fold Kreuzvalidierer.

Stellt Trainings-/Testindizes zum Aufteilen von Daten in Trainings-/Testsets bereit. Teilt den Datensatz in k aufeinanderfolgende Folds auf (standardmäßig ohne Mischen).

Jeder Fold wird einmal als Validierungsdatensatz verwendet, während die verbleibenden k - 1 Folds den Trainingsdatensatz bilden.

Lesen Sie mehr im Benutzerhandbuch.

Zur Visualisierung des Kreuzvalidierungsverhaltens und zum Vergleich zwischen gängigen scikit-learn-Split-Methoden siehe Visualisierung des Kreuzvalidierungsverhaltens in scikit-learn

Parameter:
n_splitsint, default=5

Anzahl der Folds. Muss mindestens 2 sein.

Geändert in Version 0.22: n_splits Standardwert von 3 auf 5 geändert.

shufflebool, default=False

Ob die Daten vor dem Aufteilen in Batches gemischt werden sollen. Beachten Sie, dass die Stichproben innerhalb jedes Splits nicht gemischt werden.

random_stateint, RandomState-Instanz oder None, default=None

Wenn shuffle True ist, beeinflusst random_state die Reihenfolge der Indizes, die die Zufälligkeit jedes Folds steuert. Andernfalls hat dieser Parameter keine Auswirkung. Übergeben Sie eine Ganzzahl für reproduzierbare Ergebnisse über mehrere Funktionsaufrufe hinweg. Siehe Glossar.

Siehe auch

StratifiedKFold

Berücksichtigt Klasseninformationen, um Folds mit unausgewogenen Klassenverteilungen zu vermeiden (für binäre oder multiklassige Klassifizierungsaufgaben).

GroupKFold

K-Fold Iterator-Variante mit nicht überlappenden Gruppen.

RepeatedKFold

Wiederholt K-Fold n Mal.

Anmerkungen

Die ersten n_samples % n_splits Folds haben die Größe n_samples // n_splits + 1, andere Folds haben die Größe n_samples // n_splits, wobei n_samples die Anzahl der Stichproben ist.

Randomisierte CV-Splitter können bei jedem Aufruf von split unterschiedliche Ergebnisse liefern. Sie können die Ergebnisse identisch machen, indem Sie random_state auf eine Ganzzahl setzen.

Beispiele

>>> import numpy as np
>>> from sklearn.model_selection import KFold
>>> X = np.array([[1, 2], [3, 4], [1, 2], [3, 4]])
>>> y = np.array([1, 2, 3, 4])
>>> kf = KFold(n_splits=2)
>>> kf.get_n_splits()
2
>>> print(kf)
KFold(n_splits=2, random_state=None, shuffle=False)
>>> for i, (train_index, test_index) in enumerate(kf.split(X)):
...     print(f"Fold {i}:")
...     print(f"  Train: index={train_index}")
...     print(f"  Test:  index={test_index}")
Fold 0:
  Train: index=[2 3]
  Test:  index=[0 1]
Fold 1:
  Train: index=[0 1]
  Test:  index=[2 3]
get_metadata_routing()[Quelle]#

Holt das Metadaten-Routing dieses Objekts.

Bitte prüfen Sie im Benutzerhandbuch, wie der Routing-Mechanismus funktioniert.

Gibt zurück:
routingMetadataRequest

Ein MetadataRequest, der Routing-Informationen kapselt.

get_n_splits(X=None, y=None, groups=None)[Quelle]#

Gibt die Anzahl der Splitting-Iterationen zurück, die mit dem Parameter n_splits bei der Instanziierung des Kreuzvalidierers festgelegt wurden.

Parameter:
Xarray-like von Shape (n_samples, n_features), default=None

Immer ignoriert, existiert aus API-Kompatibilitätsgründen.

yarray-like mit Form (n_samples,), default=None

Immer ignoriert, existiert aus API-Kompatibilitätsgründen.

groupsarray-like of shape (n_samples,), default=None

Immer ignoriert, existiert aus API-Kompatibilitätsgründen.

Gibt zurück:
n_splitsint

Gibt die Anzahl der Teilungsschritte im Kreuzvalidierer zurück.

split(X, y=None, groups=None)[Quelle]#

Generiert Indizes zum Aufteilen von Daten in Trainings- und Testsets.

Parameter:
Xarray-like der Form (n_samples, n_features)

Trainingsdaten, wobei n_samples die Anzahl der Stichproben und n_features die Anzahl der Merkmale ist.

yarray-like mit Form (n_samples,), default=None

Die Zielvariable für überwachte Lernprobleme.

groupsarray-like of shape (n_samples,), default=None

Immer ignoriert, existiert aus API-Kompatibilitätsgründen.

Gibt:
trainndarray

Die Trainingsset-Indizes für diese Teilung.

testndarray

Die Testset-Indizes für diese Teilung.