7
votes

Prédire les valeurs de données manquantes dans une base de données

J'ai une base de données, composée d'un tas d'enregistrements (environ 600 000) où certains des enregistrements ont manqué certains champs. Mon objectif est de trouver un moyen de prédire ce que les valeurs de données manquantes devraient être (afin que je puisse les remplir) en fonction des données existantes.

Une option que je regarde est en clustering - c'est-à-dire représentant les enregistrements qui sont tous complètes en tant que points dans certains espaces, à la recherche de grappes de points, puis à un enregistrement avec des valeurs de données manquantes, essayez de déterminer s'il y en a Les grappes qui pourraient appartenir à cela sont compatibles avec les valeurs de données existantes. Cependant, cela peut ne pas être possible car certains des champs de données sont sur une échelle nominale (par exemple la couleur) et ne peuvent donc pas être mis en ordre.

Une autre idée que j'avais est de créer une sorte de modèle probabiliste qui prédire les données, la formant sur les données existantes, puis l'utiliser pour extrapoler.

Quels algorithmes sont disponibles pour faire ce qui précède et y a-t-il un logiciel librement disponible qui implémente ces algorithmes (ce logiciel va être en C # en passant).


2 commentaires

Énorme problème. Très dépendant de beaucoup de choses que nous ne pouvons pas prédire. Instance la plus simple: existe-t-il des biais de sélection dans lesquels des archives manquent? Comment le sais-tu? Que peux-tu y faire? Existe-t-il des indicateurs de proxy disponibles? Etc...


Accepter avec le commentaire ci-dessus. Il peut y avoir des algorithmes généraux à utiliser des idées que vous pourriez utiliser, mais vous devez personnaliser chacun d'entre eux vers votre domaine.


3 Réponses :


2
votes

Prévision des valeurs manquantes est généralement considérée comme faisant partie de la phase de nettoyage des données qui doit être effectuée avant que les données soient minières ou analysées plus loin. Ceci est assez important dans les données du monde réel.

Veuillez consulter cet algorithme http://arxiv.org/abs/math/0701152 < / a>

Actuellement, Microsoft SQL Server Analysis Analyses Services 2008 est également livré avec des algorithmes tels que ceux-ci http: //technet.microsoft.com/en-us/library/ms175312.aspx qui aide à la modélisation prédictive des attributs.

acclamations


1 commentaires

Agréable. Mais le document semble faire l'hypothèse implicite selon laquelle il n'y a pas de biais de sélection. Ou ai-je manqué quelque chose?



7
votes

Ceci est moins d'un algorithmique et d'une question plus philosophique et méthodologique. Il existe quelques techniques différentes disponibles pour aborder ce type de question. ACOCK (2005) donne une bonne introduction à certaines des méthodes. Bien qu'il puisse sembler qu'il y ait beaucoup de mathématiques / statistiques impliquées (et peut sembler beaucoup d'efforts), cela vaut la peine d'être réfléchie à ce qui se passerait si vous vous êtes gâché.

Le blog de Andrew Gelman est également une bonne ressource, bien que la fonctionnalité de recherche sur son blog laisse quelque chose à souhaiter ...

J'espère que cela aide.


ACOCK (2005)

http://oregonstate.edu/~Acock/ Curving-Curves / Travailler% 20With% 20MISSING% 20Values.pdf

Blog de Andrew Gelman

http://www.stat.columbia.edu/~cook/movableType / mlm /


0 commentaires

6
votes

Traitement des valeurs manquantes est une question méthodique qui doit faire avec le sens réel des données.

Plusieurs méthodes que vous pouvez utiliser (voir les détails

  • Utilisez moyenne d'attribut . Par exemple, si le revenu moyen d'une famille américaine est X, vous pouvez utiliser cette valeur pour remplacer les valeurs manquantes de revenu.

  • Utilisez moyenne d'attribut pour tous les échantillons appartenant à la même classe . Disons que vous avez une voiture tarification DB qui, entre autres choses, les voitures à classifie « Luxe » et « budget » et vous faites affaire avec les valeurs manquantes dans le domaine des coûts. Remplacement manquant coût d'une voiture de luxe avec le coût moyen de toutes les voitures de luxe est probablement plus précise la valeur que vous obtiendriez si vous facteur dans les voitures à petit budget

  • Utiliser algorithme d'exploration de données pour prédire la valeur . La valeur peut être déterminée en utilisant la régression, l'inférence des outils à base en utilisant le formalisme bayésien, des arbres de décision, les algorithmes utilisés pour générer le regroupement d'entrée pour l'étape de procédé n ° 4 (K-Mean \ médian etc.) Je suggère à la recherche d'abord (génération d'arbres ID3) car ils sont relativement faciles et il y a des arbres de régression et de décision beaucoup d'exemples sur le net.

    En ce qui concerne les paquets, si vous pouvez vous le permettre et vous êtes dans le regard du monde Microsoft à SQL Server Analysis Services (SSAS pour faire court) qui mettent en œuvre la plupart des mentionné ci-dessus.

    Voici quelques liens vers des données libres minning logiciels:


  • 0 commentaires