Wie kann ich einen Pandas-Datenrahmen oder Graphlab-Sframe basierend auf einer gegebenen Klasse \ Label-Verteilungswerte abfragen, zB: Ich möchte einen Datenrahmen mit einer label \ class-Spalte abtasten, um solche Zeilen auszuwählen jedes Klassenetikett wird gleichermaßen abgerufen, wodurch es für jedes Klassenetikett, das einer gleichmäßigen Verteilung von Klassenetiketten entspricht, eine ähnliche Häufigkeit aufweist. Oder am besten wäre es, Samples entsprechend der gewünschten Klassenverteilung zu erhalten.Abtastung eines Datenrahmens basierend auf einer gegebenen Verteilung
+------+-------+-------+ | col1 | clol2 | class | +------+-------+-------+ | 4 | 45 | A | +------+-------+-------+ | 5 | 66 | B | +------+-------+-------+ | 5 | 6 | C | +------+-------+-------+ | 4 | 6 | C | +------+-------+-------+ | 321 | 1 | A | +------+-------+-------+ | 32 | 432 | B | +------+-------+-------+ | 5 | 3 | B | +------+-------+-------+ given a huge dataframe like above and the required frequency distribution like below: +-------+--------------+ | class | nostoextract | +-------+--------------+ | A | 2 | +-------+--------------+ | B | 2 | +-------+--------------+ | C | 2 | +-------+--------------+
Die oben sollten Zeilen aus dem ersten Datenrahmen auf der gegebene Häufigkeitsverteilung in dem zweiten Rahmen, wo die Frequenz Zählwerte sind in nostoextract Spalt basierend extrahieren einen abgetastetes Rahmen zu geben, wo jede Klasse bei max 2 mal erscheint. sollte ignoriert und fortgesetzt werden, wenn nicht genügend Klassen gefunden werden können, um die erforderliche Anzahl zu erreichen. Der resultierende Datenrahmen soll für einen Entscheidungsbaum-basierten Klassifikator verwendet werden.
Wie ein Kommentator setzt es das Sampling-Datenframe muss nostextract verschiedene Instanzen der entsprechenden Klasse enthalten? Es sei denn, es gibt nicht genug Beispiele für eine bestimmte Klasse, in diesem Fall nehmen Sie einfach alle verfügbaren.
Können Sie einige Beispiele hinzufügen, was Sie erreichen möchten? Und hast du 'pandas.DataFrame.sample' angeschaut? (http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.sample.html) –
@ chris-sc Ja, es erlaubt nicht zu Probe basierend auf Klasse Spalte – stackit
im Grunde möchte ich einen verzerrten Datenrahmen, so dass alle Klassenschilder ausreichend vertreten sind so viel wie möglich zu probieren. Die Klassenbezeichnungen befinden sich in der Spalte "Label". Dies wird einem Klassifikator zugeführt. @ chris-sc – stackit