Ich bin auf der Suche nach einer eleganten Möglichkeit, einen Datensatz auf eine bestimmte Weise zu testen. Ich habe ein paar Lösungen gefunden, aber ich habe mich gefragt, ob einer von euch einen besseren Weg kennt. HierPython Pandas Dataframe Sampling
ist die Aufgabe, die ich bei stehe auf:
Ich möchte meine Daten-Set balancieren, so dass ich die gleiche Menge an Instanzen für die Klasse haben 0 wie für Klasse 1, so im Beispiel unten wir 5 Instanzen 0 von Klasse 1 und 11 Instanzen der Klasse:
id | class ------ | ------ 1 | 1 1 | 0 1 | 0 1 | 0 1 | 0 2 | 1 2 | 1 2 | 0 2 | 0 2 | 0 3 | 1 3 | 1 3 | 0 3 | 0 3 | 0 3 | 0
Sofar ich habe gerade zufällig 6 Instanzen der Klasse 0, gelöscht, aber ich möchte verhindern, dass alle Instanzen einer ID gelöscht werden konnte. Ich habe versucht, eine geschichtete "Split" mit sklearn, aber es funktioniert nicht, weil nicht jede ID mehr als 1 Element enthält. Die gewünschte Ausgabe sollte so ähnlich aussehen:
id | class ------ | ------ 1 | 1 1 | 0 2 | 1 2 | 1 2 | 0 2 | 0 3 | 1 3 | 1 3 | 0 3 | 0
Irgendwelche guten Ideen?
Ja, ich dachte ich auch darüber nach, aber ich hoffte, dass es eine elegante Methode gibt, die Pandas-Probenmethode mit einigen ausgefallenen Gewichten zu verwenden, um die Klassen und dann die IDs auszugleichen. – SirTobi