Ich versuche, eine NN für die Regression zu verwenden - mein Setup hat 2 versteckte Schichten.NN-Training - mit einer heißen Codierung vs mit künstlichen Funktionen
Die Eingabedaten, die ich habe, hat die folgende Struktur - Merkmale A, B, C, D sind numerisch (können Werte von -500k bis 500k aufnehmen), Merkmal E ist kategorisch und F ist die abhängige Variable, die ich versuche zu prognostizieren. A, B, C, D variieren je nach Land (daher habe ich das Land als separates Merkmal hinzugefügt).
ich zwei verschiedene Ansätze versucht haben Funktion E auszudrücken beim Training:
- Eine heiße Codierung
- Verwenden der bestehenden A, B, C, D
verfügt habe ich angebracht ein Screenshot, wie die Trainingsdaten aussehen (zusammengesetzte Werte) sowie meine beiden Ansätze.
[data][1]
[Option1][2]
[Option2][3]
Option (2) funktioniert sehr gut (in Form von r^2 und Genauigkeit für die einzelnen Vorhersagen), während (1) ziemlich schlecht funktioniert.
Ich habe auch versucht Normalisierung A, B, C, D (-mean/Std) bei der Verwendung von One-Hot-Encoding, aber es hat nicht viel geholfen.
Bemerkenswert - Option (2) funktioniert sehr gut sogar ohne Normalisierung.
Meine Frage ist - wie kann ich verstehen, warum dies der Fall ist? Ich würde denken, dass ein Hot-Encoding gut funktionieren könnte, aber es scheint, als ob es nicht funktioniert. Warum versteht der NN die Klassifizierung besser aus Ansatz (2)?
Dank
[1]: https://i.stack.imgur.com/sixHw.png
[2]: https://i.stack.imgur.com/VMw8O.png
[3]: https://i.stack.imgur.com/5eQxk.png
Hmm, ich habe den StandardScaler von sklearn benutzt - er subtrahiert den Mittelwert und dividiert durch den stdev für jedes Feature (also, spaltenweise) - glaubst du, das ist nicht genug? – user80564