Techniken für den Umgang mit unvollständigen / fehlenden Daten

12

Meine Frage bezieht sich auf Techniken zum Umgang mit unvollständigen Daten während des Klassifikators / Modelltrainings / Anpassens.

In einem Datensatz mit einigen hundert Zeilen, wobei jede Zeile beispielsweise fünf Dimensionen und eine Klassenbezeichnung als letztes Element aufweist, sehen die meisten Datenpunkte folgendermaßen aus:

[0,74, 0,39, 0,14, 0,33, 0,34, 0]

Einige könnten ungefähr so ​​aussehen:

[0,21, 0,68, & alpha;, 0,82, 0,58, 1]

Es sind also diese Arten von Datenpunkten, die im Mittelpunkt dieser Frage stehen.

Mein erster Grund, diese Frage zu stellen, war ein Problem direkt vor mir; Bevor ich jedoch meine Frage postete, dachte ich, dass es nützlicher sein könnte, wenn ich sie umformuliere, damit die Antworten für einen größeren Teil der Community nützlich wären.

Als einfache Heuristik wollen wir diese Datenverarbeitungstechniken danach aufteilen, wann sie während des Verarbeitungsablaufs angewendet werden - vor der Eingabe in den Klassifizierer oder während (dh die Technik befindet sich innerhalb des Klassifizierers).

Das beste Beispiel, das ich mir für Letzteres vorstellen kann, ist die clevere Technik der 'Drei-Wege-Verzweigung', die in Entscheidungsbäumen verwendet wird.

Zweifellos ist die erstere Kategorie weitaus größer. Die Techniken, die mir bekannt sind, fallen in eine der folgenden Gruppen.

Als ich kürzlich meine persönlichen Notizen zum Thema "Umgang mit fehlenden Daten" durchgesehen habe, habe ich festgestellt, dass ich eine beeindruckende Liste von Techniken besitze. Ich behalte diese Notizen nur zur allgemeinen Beruhigung bei und für den Fall, dass ein junger Kollege mich fragt, wie ich mit fehlenden Daten umgehen soll. In der Praxis verwende ich eigentlich keine, außer der letzten.

  1. Imputation : eine breite Rubrik für eine Reihe von Techniken, deren gemeinsamer Nenner (ich glaube) darin besteht, dass die fehlenden Daten direkt von demselben Datensatz geliefert werden - Substitution statt Schätzung / Vorhersage.

  2. Rekonstruktion : Schätzen Sie die fehlenden Datenpunkte mithilfe eines automatisch assoziativen Netzwerks (nur ein neuronales Netzwerk, in dem die Größen der Eingabe- und Ausgabeschichten gleich sind - mit anderen Worten, die Ausgabe hat die gleiche Dimension wie die Eingabe). Die Idee dabei ist, dieses Netzwerk auf vollständige Daten zu trainieren, dann unvollständige Muster einzugeben und die fehlenden Werte von den Ausgabeknoten zu lesen.

  3. Bootstrapping : (keine Zusammenfassung notwendig, sollte ich nicht denken, da es an anderer Stelle in der statistischen Analyse verwendet wird).

  4. Verweigerung : Entfernen Sie stillschweigend die Datenpunkte mit fehlenden / beschädigten Elementen aus Ihrem Trainingssatz und tun Sie so, als ob sie niemals existierten.

doug
quelle
2
Es gibt auch einen "Reduced-Model" -Ansatz, bei dem Sie einen Klassifikator für jedes Muster fehlender Werte trainieren, die beim Testen auftreten. IE: Um eine Vorhersage für x zu treffen, bei der das i-te Attribut fehlt, entfernen Sie das i-te Attribut aus allen Instanzen von Trainingsdaten und trainieren Sie dies. jmlr.csail.mit.edu/papers/v8/saar-tsechansky07a.html
Jaroslaw Bulatow
Ich glaube, Ihre Definition der Imputation ist im modernen Kontext falsch. Bei der Imputation werden jetzt die fehlenden Daten anhand anderer Variablen aus dem Datensatz modelliert. Die derzeit bevorzugte Imputationsmethode ist die Multiple Imputation, bei der für jeden fehlenden Wert mehrere Alternativen generiert werden (basierend auf dem Modell), jeder alternative vervollständigte Datensatz verarbeitet und dann die Antworten kombiniert werden, die die Variabilität zwischen den Ergebnissen widerspiegeln. (In den "alten Tagen" haben die Leute Dinge wie den Wert aus einem ähnlichen Datensatz oder den Mittelwert usw. ersetzt, aber nicht jetzt.)
Wayne
@ Wayne, wärst du so nett, mich auf ein Papier zu verweisen, das diese modernTechniken beschreibt? Vielen Dank
Enzo
Das R-Paket miceenthält ein schönes Einführungspapier zu JSS: jstatsoft.org/article/view/v045i03 . (Sie sollten die Einführung nützlich finden, auch wenn Sie R nicht verwenden.) Und das R-Paket Ameliaenthält eine schöne Vignette, die im Paket enthalten ist. Diese beiden Pakete unterscheiden sich in ihren Details, verwenden jedoch beide Mehrfachzuschreibungen.
Wayne

Antworten:

3

Ich habe diese Antwort auf eine andere Frage gegeben , aber sie könnte auch hier zutreffen.

"Es gibt ein relativ neues Forschungsgebiet namens Matrix Completion , das wahrscheinlich das tut, was Sie wollen. Eine wirklich schöne Einführung wird in diesem Vortrag von Emmanuel Candes gegeben."

Wenn Ihr Dataset einen niedrigen Rang (oder einen ungefähr niedrigen Rang) hat, dh Sie haben 100 Zeilen, aber die tatsächliche Matrix hat einen geringen Rang, z. B. 10 (oder nur 10 große Singularwerte), können Sie die fehlende Matrix mithilfe der Vervollständigung ausfüllen Daten.

Robby McKilliam
quelle
2

Ich könnte hier ein wenig unorthodox sein, aber was solls. Bitte beachten Sie: Diese Denkrichtung stammt aus meiner eigenen Philosophie für die Klassifizierung, die darin besteht, dass ich sie verwende, wenn mein Zweck ausschließlich auf reiner Vorhersage beruht - nicht auf Erklärung, begrifflicher Kohärenz usw. Daher widerspricht das, was ich hier sage, dem, was ich sage würde ein Regressionsmodell aufbauen.

Unterschiedliche Klassifizierungsansätze unterscheiden sich in ihrer Fähigkeit, mit fehlenden Daten umzugehen, und abhängig von einigen anderen Faktoren ^, könnte ich nur # 5 versuchen: Verwenden Sie einen Klassifizierer, der diese NAs nicht verschluckt. Ein Teil der Entscheidung für diesen Weg könnte auch die Überlegung umfassen, wie wahrscheinlich es ist, dass ein ähnlicher Anteil der NAs in den zukünftigen Daten auftritt, auf die Sie das Modell anwenden. Wenn NAs für bestimmte Variablen für den Kurs gleichbedeutend sind, ist es möglicherweise sinnvoll, nur mit ihnen zu rollen (dh kein Vorhersagemodell zu erstellen, das aussagekräftigere Daten voraussetzt als das, was Sie tatsächlich haben, oder Sie selbst). Ich mache mir keine Gedanken darüber, wie prädiktiv es wirklich sein wird. In der Tat, wenn ich nicht überzeugt bin, dass NAs zufällig fehlen, wäre ich geneigt, eine neue Variable (oder eine neue Ebene, wenn es '

Wenn ich einen guten Grund hätte, einen Klassifikator zu verwenden, der die fehlenden Daten nicht sehr gut erfasst, wäre mein Ansatz Nummer 1 (multiple Imputation), um ein Klassifikationsmodell zu finden, das sich in allen unterstellten Datensätzen ähnlich gut verhält.

^ Einschließlich: wie viel Fehlen Sie in Ihren Prädiktoren haben, ob es systematische Muster gibt (wenn es solche gibt, lohnt es sich, genauer hinzuschauen und die Auswirkungen auf Ihre Analyse zu überdenken) und mit wie viel Daten Sie insgesamt arbeiten müssen .

Shelby
quelle
1

Wenn Sie eine begründete Vorstellung von dem Datenerzeugungsprozess haben, der für die fraglichen Daten verantwortlich ist, können Sie die fehlenden Daten anhand von Bayes'schen Ideen abschätzen. Unter dem Bayes'schen Ansatz würden Sie einfach annehmen, dass die fehlenden Daten auch Zufallsvariablen sind, und den Posterior für die fehlenden Daten in Abhängigkeit von den beobachteten Daten konstruieren. Das hintere Mittel würde dann als Ersatz für die fehlenden Daten verwendet.

Die Verwendung von Bayes'schen Modellen kann im weiteren Sinne als Imputation gelten, aber ich habe darüber nachgedacht, es zu erwähnen, da es nicht auf Ihrer Liste steht.


quelle