Neuronale Netze: Wie werden Daten aus der realen Welt vorbereitet, um Ereignisse mit geringer Wahrscheinlichkeit zu erkennen?

7

Ich habe einen realen Datensatz von Kreditnehmern (50.000 Datensätze). Das Set enthält Kategorien wie Verheiratet, Single, Geschieden usw. sowie fortlaufende Daten wie Einkommen, Alter usw. Einige Datensätze sind unvollständig oder enthalten Ausreißer. Die abhängige Variable ist Standard / Gut (0,1). Wir versuchen, ein neuronales Netzwerk zu trainieren, um Standardwerte basierend auf den Trainingsdaten vorherzusagen. Ich habe Erfahrung mit neuronalen Netzen und habe sie für Beispieldaten mit großartigen Ergebnissen verwendet, musste jedoch nie verrauschte Daten aus der realen Welt normalisieren.

Alle Gedanken, die ich beachten sollte in Bezug auf: - Wie man die Kategorien normalisiert. Kann ich eine indizierte Nummer zuweisen? Sollte ich versuchen, sie zu schichten? - Wie man mit fehlenden Daten umgeht. 0 zuweisen? - Wie man mit der Tatsache umgeht, dass Standardwerte nur etwa 5% des Datensatzes ausmachen. Welche Übertragungsfunktion wäre nützlich, um diese niedrigen Wahrscheinlichkeiten vorherzusagen? - Grundsätzlich wird jede andere reale Datenberatung sehr geschätzt.

Danke im Voraus!

Ans Stru
quelle

Antworten:

3

Sie werfen hier eine Reihe guter Fragen auf. Ich werde mein Bestes tun, um jeden von ihnen der Reihe nach abzudecken. Es ist keine erschöpfende Behandlung, aber hoffentlich hilft es ...

1. So normalisieren Sie die Kategorien.

Bewerten Sie zunächst, ob Ihre kategorialen Variablen als Varianz Null (z. B. alle Datensätze mit nur einer Kategorie) oder als Varianz nahe Null (die überwiegende Mehrheit der Datensätze, die zu sehr wenigen Kategorien gehören) betrachtet werden können. Erstellen Sie eine grundlegende Häufigkeitsverteilung, um dies zu identifizieren.

Während es in neuronalen Kontexten an sich nicht so wichtig ist, ist es eine gute Idee, Variablen mit geringer Varianz aus Ihrem Modell zu filtern. Seien Sie nur vorsichtig, da Sie das Baby möglicherweise mit dem Badewasser wegwerfen, wenn Sie Varianzvariablen nahe Null eliminieren.

Sie haben bereits mit neuronalen Netzen gearbeitet, damit Sie wissen, dass Sie Kategorien in numerische Werte konvertieren müssen. Eine gute Frage ist, ob ein bestimmter kategorialer Wert ordinaler Natur ist (z. B. auf einer Likert-Skala von 1 bis 5) und ob Sie die Ordinalität beibehalten möchten. Dies führt Sie in einen Bereich wie den von Pinto da Costa und Cardoso ( https://www.researchgate.net/publication/221112186_Classification_of_Ordinal_Data_Using_Neural_Networks ) beschriebenen.

2. Umgang mit fehlenden Daten.

Angenommen, Sie sprechen von fehlenden kontinuierlichen Werten, möchten Sie diese numerischen Werte basierend auf den Werten, die im gesamten Attribut vorhanden sind, gemeinsam unterstellen. Hier gibt es eine Reihe von Ansätzen, aber etwas Wichtiges ist die Streuung. Wenn Ihr Attribut durch Ausreißer verzerrt ist, sollten Sie sich grundsätzlich von einer auf dem Mittelwert basierenden Berechnung fernhalten und einen auf dem Median basierenden Ansatz wählen.

3. Wie gehe ich mit der Tatsache um, dass 'Defaults' ~ 5% der Daten sind?

Dies ist kein unmittelbares Problem, da Sie 2500 Beispiele für einen Standard haben (in einem Datensatz von 50.000). Ein vernünftiger Ansatz wäre hier, sicherzustellen, dass Sie ein K-faches Kreuzvalidierungsschema (z. B. mit 10 Falten) verwenden, um sicherzustellen, dass Sie Training und Test wirklich zufällig auswählen. Dies schützt Sie vor Überanpassung. Auch dies ist eine ziemlich hochrangige Anleitung, aber sie ist umsichtig.

Zusätzliches Guthaben: Ich habe mich nicht mit anderen Standardtaktiken wie der Normalisierung Ihrer kontinuierlichen Attribute befasst, aber Sie möchten sich dort möglicherweise auf den neuesten Stand bringen, um Ihr Modell besser zu verallgemeinern (und gleichzeitig ein tieferes Verständnis für die Dynamik der Daten zu entwickeln ). Dies könnte Sie darauf hinweisen, andere Algen usw. auszuprobieren.

Damian Wilbur
quelle