Techniques de traitement des données incomplètes / manquantes


12

Ma question porte sur les techniques de traitement des données incomplètes lors de la formation / ajustement du classificateur / modèle.

Par exemple, dans un ensemble de données avec quelques centaines de lignes, chaque ligne ayant disons cinq dimensions et une étiquette de classe comme dernier élément, la plupart des points de données ressembleront à ceci:

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

Quelques-uns pourraient ressembler à ceci:

[0,21, 0,68,?, 0,82, 0,58, 1]

Ce sont donc ces types de points de données qui sont au centre de cette question.

Ma première raison de poser cette question était un problème directement devant moi; cependant, avant de publier ma question, j'ai pensé qu'il pourrait être plus utile de la reformuler pour que les réponses soient utiles à une plus grande partie de la communauté.

Comme une heuristique simple, divisons ces techniques de traitement des données en fonction du moment où elles sont utilisées pendant le flux de traitement - avant leur entrée dans le classificateur ou pendant (c'est-à-dire que la technique est à l'intérieur du classificateur).

Le meilleur exemple auquel je peux penser pour ce dernier est la technique intelligente de «branchement à trois voies» utilisée dans les arbres de décision.

Sans aucun doute, l'ancienne catégorie est beaucoup plus large. Les techniques que je connais appartiennent à l'un des groupes ci-dessous.

En passant récemment en revue mes notes personnelles sur le "traitement des données manquantes", j'ai remarqué que j'avais une liste de techniques assez impressionnante. Je garde simplement ces notes pour la tranquillité d'esprit générale et au cas où un collègue junior me demanderait comment traiter les données manquantes. Dans la pratique, je n'en utilise aucun, à l'exception du dernier.

  1. Imputation : une large rubrique pour un ensemble de techniques dont le dénominateur commun (je crois) est que les données manquantes sont fournies directement par le même ensemble de données - substitution plutôt que estimation / prédiction.

  2. Reconstruction : estimer les points de données manquants à l'aide d'un réseau auto-associatif (juste un réseau neuronal dans lequel les tailles des couches d'entrée et de sortie sont égales - en d'autres termes, la sortie a la même dimension que l'entrée); L'idée ici est de former ce réseau sur des données complètes, puis de lui fournir des modèles incomplets et de lire les valeurs manquantes dans les nœuds de sortie.

  3. Bootstrapping : (aucun résumé nécessaire, je ne devrais pas penser, étant donné qu'il est utilisé ailleurs dans l'analyse statistique).

  4. Déni : supprimez discrètement les points de données avec des éléments manquants / corrompus de votre ensemble d'entraînement et prétendez qu'ils n'ont jamais existé.


2
Il existe également une approche de «modèle réduit» dans laquelle vous entraînez un classificateur pour chaque modèle de valeurs manquantes rencontrées lors des tests. IE, pour faire une prédiction pour x où il manque le ième attribut, supprimez le attribut ième de toutes les instances de données d'entraînement et entraînez-vous dessus. jmlr.csail.mit.edu/papers/v8/saar-tsechansky07a.html
Yaroslav Bulatov

Je crois que votre définition de l'imputation est incorrecte dans le contexte moderne. L'imputation consiste désormais à modéliser les données manquantes sur la base d'autres variables de l'ensemble de données. La méthode d'imputation actuellement privilégiée est l'imputation multiple, qui génère plusieurs alternatives pour chaque valeur manquante (basée sur le modèle), traite chaque ensemble de données complété alternatif, puis combine les réponses reflétant la variabilité entre les résultats. (Dans le "vieux temps", les gens faisaient des choses comme substituer la valeur d'un enregistrement similaire, ou la moyenne, etc., mais pas maintenant.)
Wayne

@Wayne seriez-vous si gentil de me pointer vers un article décrivant ces moderntechniques? Merci
Enzo

Le package R micea un joli document d'introduction sur JSS: jstatsoft.org/article/view/v045i03 . (Vous devriez trouver l'introduction utile, même si vous n'utilisez pas R.) Et le package R Ameliaa une belle vignette incluse avec le package. Ces deux packages diffèrent dans leurs détails, mais tous deux utilisent une imputation multiple.
Wayne

Réponses:


3

J'ai donné cette réponse à une autre question , mais elle pourrait s'appliquer ici aussi.

"Il y a un domaine de recherche raisonnablement nouveau appelé Achèvement de Matrice , qui fait probablement ce que vous voulez. Une très belle introduction est donnée dans cette conférence d'Emmanuel Candes"

Essentiellement, si votre ensemble de données a un rang bas (ou un rang approximativement bas), c'est-à-dire que vous avez 100 lignes, mais que la matrice réelle a un petit rang, disons 10 (ou seulement 10 grandes valeurs singulières), alors vous pouvez utiliser la complétion de la matrice pour combler le manque Les données.


2

Je suis peut-être un peu peu orthodoxe ici, mais que diable. Veuillez noter: cette ligne de pensée vient de ma propre philosophie de classification, c'est-à-dire que je l'utilise lorsque mon but est carrément de pure prédiction - pas d'explication, de cohérence conceptuelle, etc. Ainsi, ce que je dis ici contredit ma façon de J'approche la construction d'un modèle de régression.

Différentes approches de classification varient dans leur capacité à gérer les données manquantes, et en fonction d'autres facteurs ^, je pourrais simplement essayer # 5: utiliser un classificateur qui ne s'étouffera pas sur ces NA. Une partie de la décision d'emprunter cette voie pourrait également inclure la réflexion sur la probabilité qu'une proportion similaire d'AN se produise dans les données futures auxquelles vous appliquerez le modèle. Si les AN pour certaines variables vont être identiques pour le cours, alors il pourrait être judicieux de simplement les utiliser (c'est-à-dire, ne pas construire un modèle prédictif qui suppose des données plus informatives que ce que vous aurez réellement, ou vous '' Je vais vous plaisanter sur la façon dont cela va vraiment être prédictif). En fait, si je ne suis pas convaincu que les NA manquent au hasard, je serais enclin à recoder une nouvelle variable (ou un nouveau niveau si elle '

Si j'avais une bonne raison d'utiliser un classificateur qui ne prenait pas très bien les données manquantes, alors mon approche serait n ° 1 (imputation multiple), cherchant à trouver un modèle de classification qui se comporterait de manière similaire dans les ensembles de données imputées.

^ Y compris: combien de lacunes vous avez dans vos prédicteurs, s'il existe des schémas systématiques (le cas échéant, il vaudrait la peine de regarder de plus près et de réfléchir aux implications pour votre analyse), et combien de données vous devez travailler avec l'ensemble .


1

Si vous avez une idée raisonnable du processus de génération de données qui est responsable des données en question, vous pouvez utiliser des idées bayésiennes pour estimer les données manquantes. Dans l'approche bayésienne, vous supposeriez simplement que les données manquantes sont également des variables aléatoires et construisez la partie postérieure des données manquantes en fonction des données observées. Le moyen postérieur serait alors utilisé comme substitut aux données manquantes.

L'utilisation de modèles bayésiens peut être considérée comme une imputation au sens large du terme, mais j'ai pensé à le mentionner car il n'apparaissait pas sur votre liste.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.