Wie gehe ich mit nicht vorhandenen (nicht fehlenden) Daten um?


11

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:

  1. Eingangsvariable - Erstmaliger Läufer (J / N)
  2. Eingangsvariable - Vorherige Rundenzeit (0 - 500 Sekunden)
  3. Eingabevariable - Alter
  4. 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


Ich sollte hinzufügen, dass ich aufgrund der inhärenten Unsicherheit neue Läufer sowohl aus Trainings- als auch aus Vorhersagedaten
verworfen habe

Antworten:


6

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:

Yi=β0+β1FTRi+β2(NFTRi)×PLTi+...

Hier

  • ist Ihre Eingabevariable, Yi
  • ist Ihre anderen Variablen, ...
  • ist zum ersten Mal Dummy,FTRi
  • PLTi
  • NFTRiFTRi=0

Dann lautet das Modell für Erstläufer:

Yi=(β0+β1)+...

und für Nicht-Erstläufer:

Yi=β0+β2PLTi+...

8

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, let X1 be the indicator variable for "is a new runner", and X2 be the variable "previous laptime in seconds". Then the linear predictor is:

η=α+β1X1+β2X2+

If the default for X2 is zero, then the linear predictor for a new runner is:

η=α+β1+

whereas for an existing runner, it will be:

η=α+β2X2+

Now suppose that you change the default for X2 from 0 to -99. Then the linear predictor for a new runner is now:

η=α+β199β2+

but for an existing runner, it will remain the same. So all you've done is reparameterise the model, such that β199β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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.