Matching entre profils utilisateurs.

Consultez la formation à Google Analytics de WebRankInfo / Ranking Metrics


rebirth
WRInaute passionné
WRInaute passionné
 
Messages: 906
Inscription: Dim Avr 18, 2004 20:23

Matching entre profils utilisateurs.

Message le Dim Juil 31, 2005 1:42

Bonjour,

Y-a-t-il des pros du data mining dans la salle :) ?

Je ne trouve pas la moindre info, si quelqu'un pouvait m'aider en me mettant sur la piste, ca serait sympa....

Cas fictif, mais qui pourrait m'aider a expliquer :

Soit une base de donnees utilisateurs comportant plusieurs millions d'utilisateurs. (d'ou l'interet d'utiliser des vrais algos, pas des trucs a l'arrache)

Chaque utilisateur possede des attributs : sexe, age, poids, ville, etc...

Comment effectuer une recherche, un "match", entre deux profils de maniere la plus efficace possible ?...

Par exemple une personne A recherche qqun de X ans et d'un poids Y.

Le but etant de ressortir les profils les plus pertinants et d'eviter les profils qui ne le sont pas.

Mais de maniere optimisee, c'est a dire, ne pas lire 100% des enregistrements de la table, et ne pas les comparer betement a un a un....

Limiter le nombre d'enregistrement a prendre, je vois a peu pres....

Il me suffit dans mon SELECT de limiter en prenant les criteres de selections tres important et discrimants...

Genre : SELECT * FROM users WHERE age > x_min AND age < x_max AND {CRITERES IMPORTANTS ICI}

Supposons que de 10'000'000 d'enregistrements, je sois passe a un echantillon de 50'000...

C'est une enorme avancee, mais 50'000 enregistrements a comparer betement dans une boucle ca prend du temps quand meme.... :cry:

Il y a surement des moyens mathematiques de faire ressortir que les n profils les plus pertinents rapidement....

Bref, si vous avez la moindre idee ou indice, je suis preneur :lol:

Merci


Ohax
WRInaute accro
WRInaute accro
 
Messages: 6392
Inscription: Lun Juil 05, 2004 13:30

Message le Dim Juil 31, 2005 1:47

ça c'est pour un site de rencontre je pari ^^

c'est génial ces trucks, en ce demerdant bien on remporte le lot pour le prix d'un allopass et popol est heureux pour quelques soirée :D


sinon je ne sait pas pour ta question :lol: :lol: :lol:


désolé ;-)


rebirth
WRInaute passionné
WRInaute passionné
 
Messages: 906
Inscription: Dim Avr 18, 2004 20:23

Message le Dim Juil 31, 2005 1:54

Ohax a écrit:ça c'est pour un site de rencontre je pari ^^


Dans l'exemple que je donne, oui, afin de simplifer/clarifier mon exemple...en donnant un exemple de trucs connus....

Sinon c'est parce que ce probleme me pose problemes depuis de nombreux cas.... et j'ai quelques idees autour....

C'est ennuyeux de ne pas etre bon en maths :(

Enfin un petit nom d'algo ferait l'affaire :)

Ca fait 3/4 heures que je me fais du Google autour....en prenant l'exemple des sites de rencontres, et je trouve rien....

A part les reseaux neuroniques mais ca me parait trop lourd en temps et en charge pour faire du calcul rapide.... et puis ca doit etre lourd aussi a gerer derriere, j'en ai jamais fait :(....


rottman
WRInaute accro
WRInaute accro
 
Messages: 2097
Inscription: Mar Jan 06, 2004 20:11

Message le Dim Juil 31, 2005 4:43

salut, si tu veux mon avis, bon je suis vraiment pas sur de moi mais a partir du moment ou tu fais un select dans une table, t`es forcement oblige de tout ''lire'' pour pouvoir reitrer seulement les enregistrements aillant comme nom commencant par la lettre X par exemple.

je te propose de faire une base SQL Homme ainsi qu`une base Femme, ainsi que de repartir les enregistrements dans des tables definnisant la tranche d`age. et ensuite donc pour ta requete tu selectionnes la table correspondante.

ca reduierait deja beaucoup le nombre d`enregistrements a analyser !!!

tu vois ce que je veux dire ?


rebirth
WRInaute passionné
WRInaute passionné
 
Messages: 906
Inscription: Dim Avr 18, 2004 20:23

Message le Dim Juil 31, 2005 9:19

rottman a écrit:salut, si tu veux mon avis, bon je suis vraiment pas sur de moi mais a partir du moment ou tu fais un select dans une table, t`es forcement oblige de tout ''lire'' pour pouvoir reitrer seulement les enregistrements aillant comme nom commencant par la lettre X par exemple.

je te propose de faire une base SQL Homme ainsi qu`une base Femme, ainsi que de repartir les enregistrements dans des tables definnisant la tranche d`age. et ensuite donc pour ta requete tu selectionnes la table correspondante.

ca reduierait deja beaucoup le nombre d`enregistrements a analyser !!!

tu vois ce que je veux dire ?


Oui oui, bien sur ca te force a "lire" tous les enregistrements....mais c'est MySQL qui s'en occupe.
Mais une fois montes en RAM, ca a la rigueur ce n'est plus trop un probleme....
Je travaille actuellement sur des bases de 8 millions d'enregistrements assez simples, et un select se fait en temps reel.

Quant a la repartition en table, ca deviendrait tres lourd pour effectuer la moindre recherche, forcant parfois a faire des requetes sur plusieurs tables en meme temps.

Mais mon gros probleme ne reside pas vraiment dans cette "lecture", passer de 10 millions a 50'000 enregistrements ca se fait sans trop de problemes...

Mon probleme est de traiter et "matcher" ses 50'000 enregistrements restants (dans une table ou dans 30 tables, le probleme est le meme), et la d'un algo a l'autre on parle entre ms ou minutes.... :)

Mais je suis trop novice en data mining pour trouver les noms d'algos qui gerent ca :(


Formation recommandée sur ce thème :

Formation Google Analytics : en 2 jours, apprenez comment exploiter l'essentiel des possibilités de l'outil de mesure d'audience de Google. Formation animée par Julien Coquet, expert certifié officiellement par Google Analytics.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités