ich möchte einen Datensatz derart in Teilmengen zufällig unterteilen, sodass diese vom kompletten Datensatz ausgehend eine absteigende Größe aufweisen. Die jeweils kleineren Teilmengen sollen in den größeren Teilmengen jeweils enthalten sein.
In anderen Worten: vom kompletten Datensatz ausgehend soll zunächst eine Teilmenge gebildet werden, welche 90% des kompletten Datensatzes enthält. Dann soll eine Teilmenge gebildet werden, welche 90% der vorherigen Teilmenge enthält usw...
Dabei soll die Klassenverteilung beibehalten werden.
Mein bisheriger Ansatz wäre folgender:
Code: Alles auswählen
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=0, test_size= 1/10, stratify=y)
X_train_2, X_test_2, y_train_2, y_test_2 = train_test_split(X_train, y_train, random_state=0, test_size= 1/10, stratify=y_train)
X_train_3, X_test_3, y_train_3, y_test_3 = train_test_split(X_train_2, y_train_2, random_state=0, test_size= 1/10, stratify=y_train_2)
Mithilfe von
Code: Alles auswählen
stratify=y
Mir stellt sich die Frage inwieweit dies wirklich random sampling entspricht, da diese Teildatensätze für einen Vergleich verschiedener Klassifikatoren verwendet werden sollen? Ich versuche damit zu testen, ab welche Trainingsdatengröße welcher Klassifikator eine bessere Genauigkeit/Klassifikationsleistung erzielt.
Für Vorschläge, Meinungen, Tipps wäre ich sehr dankbar