2016-08-29 3 views
1

Ich habe einen Datensatz bestehen aus rund 10^6 Einträge. Aber das Problem ist, Daten sind Imbalance.Unwucht Daten für die Klassifizierung

Ich erstelle einen linearen Klassifikator mit Adboost. Aber aufgrund von Unwuchtdaten ist meine Genauigkeit sehr schlecht. Wie man mit Unwuchtdaten zurechtkommt. Ich benutze Graphlab.

ist hier einfacher Code für den Ausgleich von Daten:

safe_loans_raw = loans[loans[target] == 1] 
risky_loans_raw = loans[loans[target] == -1] 

# Undersample the safe loans. 
percentage = len(risky_loans_raw)/float(len(safe_loans_raw)) 
safe_loans = safe_loans_raw.sample(percentage, seed = 1) 
risky_loans = risky_loans_raw 
loans_data = risky_loans.append(safe_loans) 

aber die Genauigkeit ist die Genehmigung noch nicht, kann dies jemand für einen effizienten Ansatz zur Verfügung stellen?

Antwort

1

Die Handhabung der unausgeglichenen Daten ist eines der schwierigsten Felder in den Bereichen Data Mining und Machine Learning. Daher finden Sie keine einfache, direkte Antwort auf Ihre Frage.

Meiner Erfahrung nach ist die Verwendung von bestraften (oder gewichteten) Bewertungsmetriken eine der besten Möglichkeiten (KURZANTRÄGE), jedoch (immer gibt es ein Aber!), Können Sie die folgenden Ressourcen beziehen, um den effektiven Ansatz zu finden. Ihr Problem ist eher ein wissenschaftliches Problem als ein Problem mit dem Tool.

This sollte die Situation behandeln, aber stellen Sie sicher, dass Sie den Hintergrund kennen, bevor Sie es verwenden.

Free

Not Free but more valuable

1

Wie haben Sie zum Schluss gekommen, dass die schlechte Genauigkeit wegen der Unausgewogenheit von Daten? Basierend auf dem von Ihnen angegebenen Code sollten loans_data ausgewogene Daten haben (ungefähr 50% riskante Kredite und 50% sichere Kredite). Bitte überprüfen Sie die Anzahl der riskanten Darlehen und sicheren Kredite nach der Erstellung loans_data zur Bestätigung.

Die schlechte Genauigkeit könnte auf die Funktionen zurückzuführen sein, die Sie zum Trainieren Ihres Modells oder der Daten selbst ausgewählt haben.

0

Sie können auch den Parameter "class_weights="auto" in geboosteten Bäumen verwenden, die in einem gewissen Umfang für unausgeglichene Daten sorgt. Weitere Informationen finden Sie unter: default paramters

Verwandte Themen