StratifiedShuffleSplit#

class sklearn.model_selection.StratifiedShuffleSplit(n_splits=10, *, test_size=None, train_size=None, random_state=None)[Quelle]#

Klassenweiser stratifizierter ShuffleSplit Kreuzvalidierer.

Bietet Indexe für Trainings-/Testdatensätze zur Aufteilung von Daten.

Dieses Kreuzvalidierungsobjekt ist eine Mischung aus StratifiedKFold und ShuffleSplit, das stratifizierte zufällige Faltungen zurückgibt. Die Faltungen werden erstellt, indem der Prozentsatz der Stichproben für jede Klasse in y in einer binären oder multiklassen Klassifizierungseinstellung beibehalten wird.

Hinweis: Wie die ShuffleSplit-Strategie garantieren stratifizierte zufällige Aufteilungen nicht, dass Testdatensätze über alle Faltungen hinweg gegenseitig exklusiv sind, und können überlappende Stichproben enthalten. Dies ist jedoch bei ausreichend großen Datensätzen sehr wahrscheinlich.

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

Hinweis

Stratifizierung nach dem Klassenlabel löst eher ein technisches als ein statistisches Problem. Weitere Details finden Sie unter Cross-Validation-Iteratoren mit Stratifizierung basierend auf Klassenlabels.

Parameter:
n_splitsint, standardmäßig 10

Anzahl der Wiederholungen des Mischens und Aufteilens.

test_sizefloat oder int, Standardwert=None

Wenn float, sollte zwischen 0,0 und 1,0 liegen und den Anteil des Datensatzes darstellen, der in die Testaufteilung einbezogen werden soll. Wenn int, stellt die absolute Anzahl der Teststichproben dar. Wenn None, wird der Wert auf das Komplement der Trainingsgröße gesetzt. Wenn train_size ebenfalls None ist, wird es auf 0,1 gesetzt.

train_sizefloat oder int, Standardwert=None

Wenn float, sollte zwischen 0.0 und 1.0 liegen und den Anteil des Datensatzes darstellen, der in die Trainingsaufteilung aufgenommen werden soll. Wenn int, repräsentiert die absolute Anzahl der Trainingsstichproben. Wenn None, wird der Wert automatisch auf das Komplement der Testgröße gesetzt.

random_stateint, RandomState-Instanz oder None, default=None

Steuert die Zufälligkeit der erzeugten Trainings- und Testindizes. Übergeben Sie eine Ganzzahl für reproduzierbare Ergebnisse über mehrere Funktionsaufrufe hinweg. Siehe Glossar.

Beispiele

>>> import numpy as np
>>> from sklearn.model_selection import StratifiedShuffleSplit
>>> X = np.array([[1, 2], [3, 4], [1, 2], [3, 4], [1, 2], [3, 4]])
>>> y = np.array([0, 0, 0, 1, 1, 1])
>>> sss = StratifiedShuffleSplit(n_splits=5, test_size=0.5, random_state=0)
>>> sss.get_n_splits()
5
>>> print(sss)
StratifiedShuffleSplit(n_splits=5, random_state=0, ...)
>>> for i, (train_index, test_index) in enumerate(sss.split(X, y)):
...     print(f"Fold {i}:")
...     print(f"  Train: index={train_index}")
...     print(f"  Test:  index={test_index}")
Fold 0:
  Train: index=[5 2 3]
  Test:  index=[4 1 0]
Fold 1:
  Train: index=[5 1 4]
  Test:  index=[0 2 3]
Fold 2:
  Train: index=[5 0 2]
  Test:  index=[4 3 1]
Fold 3:
  Train: index=[4 1 0]
  Test:  index=[2 3 5]
Fold 4:
  Train: index=[0 5 1]
  Test:  index=[3 4 2]
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, 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.

Beachten Sie, dass die Angabe von y ausreicht, um die Splits zu generieren, und daher np.zeros(n_samples) als Platzhalter für X anstelle der tatsächlichen Trainingsdaten verwendet werden kann.

yarray-like von Form (n_samples,) oder (n_samples, n_labels)

Die Zielvariable für Probleme des überwachten Lernens. Die Stratifizierung erfolgt basierend auf den y-Labels.

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.

Anmerkungen

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.