[fouille de donnees] crée une requete RAPIDE

Fermé
Omar - 2 mai 2005 à 20:00
 omar - 23 mai 2005 à 16:40
Bonjour,

En algorithme nous avons un projet de traitement des fichiers suivant dans le sujet du DATA MINING ou fouille de données et jespere avoir quelques pistes de votre part :D

LAngague à utiliser: le C uniquement.

Soit un ficher contenant des centaines de milliers d'enregistrement à structure fixe du type

NOM prenom datedenaissance

Le but est de créer une requete de comptabilisation des occurences selon des criteres choisis.Le tout serait enregistré dans un fichier. Un exemple est plus parlant


Soit le fichier avec:

NOM Prenom Datedenaissance:
Bush Georges 10/08/91
Benco Benny 10/08/52
Bush Georges 10/08/91


Une requete avec pour critere:
-nom prenom et date de naissance
donnerait le résultat suivant:

NOM Prenom Datedenaissance occurences
Bush Georges 10/08/91 2
benco Benny 10/08/52 1

Selon notre professeur, le fichier a traité est placé directement et entierement en mémoire, la ram le permettant.

La technique de base serait de faire un parcours de recherche systématique mais cette solution sur un lourd fichier risquerait fort de donner des attentes de résultat tres tres long.

A titre dinfo, nous avons étudié avec ce meme professeur : les b-arbres, arbres binaires et fonction de hashage.

Je pense utiliser une fonction de hashage et peut etre un arbre de recherche ou b-arbres.

Mais le probleme que nous avons constaté en cours et auquel le professeur na pas répond est :

Comment trouvé une fonction de hashage donc de calcul d'adresse tel que cette derniere
elle donne obligatoirement pour 2 enregistrement différents 2 résultats différents et donc 2 adresses de stockage différents
car dans le cas contraire on aurait pour 2 enregistrements distints une meme adresse de stockage et donc le traitement de recherche des coccurences serait erronée.
En cours nous nous essayames pour un jeu de données réduit de trouver des fonctions de hashage mais c'était vraiment du pas a pas et systématiquement vérifier mais la le probleme est que le jeu de données du fichier est tres CONSEQUENT et non vérifiable a la MAIN pour la justesse de la fonction de hashage.

Avez vous des pistes , solutions, commentaires?

Je vous remercie tous d'avance.
Bonne Journée.

Omar.
A voir également:

3 réponses

tafiscobar Messages postés 1277 Date d'inscription jeudi 7 décembre 2000 Statut Contributeur Dernière intervention 26 février 2009 177
2 mai 2005 à 20:59
salut, tout d'abord il ny'a pas de fonction de hashage qui donne pour deux motifs différents a chaque fois des cles differentes. Il n'ya qe de bonnes fcts de hashage ie lorsq tu as deux motifs la probabilité que la fct de hashage retourne la meme clef est faible. Pour remédier a cela, on utilise des listes chainées lorsq 2 motifs ont la meme clef. Et donc si la fct de hashage est bien foutue, tu auras en gle un nbre constant de motifs qui auront la meme clef (pour plus d'infos voir "the art of computer programming vol 3".

Si c'est des milliers de données, mieux vaut utiliser un b-arbre.
0
pas d'autres aide svp? :(
0
Misou misou
23 mai 2005 à 16:36
Omar, tu fais une boucle tantque avec une fonction spatio temporelle, ce qui sera une bonne solution de prime abord, d'après la fonction de hashage énoncée par Bug's Bunny.
N'oublie pas de vider le buffer.
0
merci bcp misou ton aide a été precieuse.
MAINTENAN TOUT FONCTIONNE gros bisous bisous ma poule
0