Ich habe nie wirklich einen guten Text oder Beispiele gefunden, wie man mit 'nicht existierenden' Daten für Eingaben in irgendeine Art von Klassifikator umgeht. Ich habe viel über fehlende Daten gelesen, aber was kann mit Daten getan werden, die in Bezug auf multivariate Eingaben nicht existieren können oder nicht. Ich verstehe, dass dies eine sehr komplexe Frage ist und je nach verwendeten Trainingsmethoden variieren wird ...
Zum Beispiel, wenn Sie versuchen, die Rundenzeit für mehrere Läufer mit guten genauen Daten vorherzusagen. Unter vielen Eingaben sind mögliche Variablen unter vielen:
- Eingangsvariable - Erstmaliger Läufer (J / N)
- Eingangsvariable - Vorherige Rundenzeit (0 - 500 Sekunden)
- Eingabevariable - Alter
- Eingangsvariable - Höhe. . . viele weitere Eingangsvariablen usw.
& Output Predictor - Voraussichtliche Laptime (0 - 500 Sekunden)
Eine 'fehlende Variable' für '2.Vorherige Rundenzeit' kann auf verschiedene Arten berechnet werden, aber '1. Der erste Läufer würde immer gleich N sein. Aber für 'NON EXISTENT DATA' für einen ersten Läufer (wobei '1. erster Läufer' = Y), welchen Wert / welche Behandlung sollte ich für '2 geben. Vorherige Rundenzeit '?
Zum Beispiel '2 zuweisen. Frühere Rundenzeiten von -99 oder 0 können die Verteilung dramatisch verzerren und es so aussehen lassen, als hätte ein neuer Läufer eine gute Leistung erbracht.
Meine aktuellen Trainingsmethoden waren logistische Regression, SVM, NN und Entscheidungsbäume
quelle
Antworten:
Anstatt einen speziellen Wert für die nicht vorhandene erste Rundenzeit des ersten Läufers zuzuweisen, verwenden Sie einfach den Interaktionsterm für die vorherige Rundenzeit mit der Umkehrung des Dummy des ersten Läufers:
Hier
Dann lautet das Modell für Erstläufer:
und für Nicht-Erstläufer:
quelle
For a logistic regression fitted by maximum likelihood, as long as you have both (1) and (2) in the model, then no matter what "default" value that you give new runners for (2), the estimate for (1) will adjust accordingly.
For example, letX1 be the indicator variable for "is a new runner", and X2 be the variable "previous laptime in seconds". Then the linear predictor is:
If the default forX2 is zero, then the linear predictor for a new runner is:
whereas for an existing runner, it will be:
Now suppose that you change the default forX2 from 0 to -99. Then the linear predictor for a new runner is now:
but for an existing runner, it will remain the same. So all you've done is reparameterise the model, such thatβ′1−99β2=β1 , and since maximum likelihood is paremeterisation invariant, the estimates will adjust accordingly.
Of course, if you're not using maximum likelihood (i.e. you're using some sort of penalisation or prior on the parameters), then you're going to get different values unless you adjust the penalisation/prior accordingly. And if the model is non-linear (e.g. SVM, NN & Decision trees), then this argument doesn't work at all.
quelle