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
StratifiedKFoldundShuffleSplit, das stratifizierte zufällige Faltungen zurückgibt. Die Faltungen werden erstellt, indem der Prozentsatz der Stichproben für jede Klasse inyin 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_sizeebenfalls 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_splitsbei 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_samplesdie Anzahl der Stichproben undn_featuresdie Anzahl der Merkmale ist.Beachten Sie, dass die Angabe von
yausreicht, um die Splits zu generieren, und dahernp.zeros(n_samples)als Platzhalter fürXanstelle 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_stateauf eine Ganzzahl setzen.
Galeriebeispiele#
Visualisierung des Kreuzvalidierungsverhaltens in scikit-learn