rapport - Ceremade
Transcription
rapport - Ceremade
Projet du cours de Data Mining “Jeux Vidéo” A l’attention de M. Edwin DIDAY Réalisé par : Hasmig JOUMBOUCHIAN – SITN Mohamad Reza SEIRAFI-FAR – TIO Avril 2006 Sommaire Introduction I- IIIII- IV- Présentation du Data Mining et de l’outil SODAS a. Le Data Mining b. L’analyse de données symboliques c. L’outil SODAS Présentation des données a. Structure de la base de données Importation des données sous DB2SO a. Création des requêtes b. Exécution des requêtes sous DB2SO Utilisation des méthodes SODAS a. SOE b. STAT c. DIV d. PYR Conclusion Introduction Le Data Mining consiste à extraire et à analyser, par des méthodes statistiques, un large volume de données puisées dans une base de données ou un data wharehouse. Le projet que nous avons réalisé pour le cours de Data Mining, consiste dans une étude sur les jeux vidéo. Il s’agit d’étudier les caractéristiques des jeux vidéo qui sont les plus vendus. Ceci, en tenant compte de certains critères comme la catégorie des jeux, le type de plateforme, l’âge de l’acheteur, l’entreprise qui produit, etc. Pour pouvoir réaliser ce projet, nous avons commencé par créer notre base de données sous Access. Puis nous avons importé les données sous DB2SO. Enfin nous avons utilisé les méthodes du logiciel SODAS et interprété les résultats obtenus. I- Présentation du data mining et de l’outil SODAS a. Le Data Mining Les informations sauvegardées dans la base de données des entreprises renferment beaucoup de richesses et ont une très grande valeur. Le Data Mining consiste à résumer ces données à l’aide de concepts sous-jacents afin d’en extraire de nouvelles connaissances utiles pour la différenciation stratégique de l’entreprise. Contrairement au « Data Warehouse » ou « Entrepôts de Données », le Data Mining permet de découvrir de nouvelles associations, tendances ou connaissances. Les analyses se font donc sur les résultats obtenus et non pas sur les données initiales. Le Data Mining s’avère pertinent dans tous les domaines dans lesquels le volume d’informations est important. Il joue un rôle majeur dans le surcroît de productivité, la gestion de la relation client et la fidélisation de la clientèle. b. L’analyse de données symboliques L’objectif de l'analyse des données symboliques est de représenter des connaissances par des expressions à la fois symboliques et numériques, manipuler et utiliser ces expressions dans le but d'aider à décider, de mieux analyser, synthétiser et organiser les observations. L'analyse des données symboliques présente plusieurs avantages par rapport aux approches classiques car elle s’applique à des données plus complexes. En entrée, elle part de données symboliques (variables à valeurs multiples, intervalle, histogramme, distribution de probabilité…) munies de règles et de taxonomies et peut fournir en sortie des connaissances nouvelles sous forme d'objets symboliques. L'analyse des données symboliques permet d'étendre l'analyse des données traditionnelles aux tableaux de données symboliques pour en extraire des objets symboliques. c. L’outil SODAS : Symbolic Official Data Analyse System Pour la réalisation de notre projet, nous avons utilisé l’outil SODAS qui est conçu pour l’analyse de données symboliques et l’extraction de connaissances à partir d’une base de données. Le logiciel SODAS est issu d’un projet de EUROSTAT portant le même nom. Il est gratuit et facile à utiliser. Il est destiné à des utilisateurs sans compétences statistiques ou informatiques. SODAS permet de construire un tableau de données symboliques muni de règles et de taxonomies et d’analyser ensuite ce tableau pour en extraire des connaissances par des méthodes d'analyse de données symboliques. SODAS permet d’extraire les données d’une base ACCESS, Oracle, SQL Server ou même des tableaux Excel. Le logiciel SODAS est téléchargeable à http:/www.ceremade.dauphine.fr/~touati/sodas-pagegarde.htm l’adresse suivante : III- Présentation des données A- Structure de la base de données Schéma relationnel de la base de données Notre base de données est constituée des tables suivantes : - Jeux - Types_jeux - Plateformes - Entreprises - Pays - Continent - Ventes - Tranche d’âge Les individus retenus dans le cadre de cette étude, c'est-à-dire les unités statistiques de premier niveau sont les identifiants de jeux vidéo. Il s’agit donc des jeux vidéo vendus dans différents pays. Ces individus sont particulièrement décrits dans la table Jeux. Les concepts n’apparaissent pas de façon naturelle, parmi les différentes possibilités, ce sont les types de jeux vidéo qui sont vendus qui ont été retenus. Plusieurs requêtes ont été nécessaires sur cette base afin de créer le contexte de l’étude. En établissant la description des individus et des concepts, nous avons gardé à l’esprit qu’il s’agit ici de déceler ce qui caractérise un jeu vidéo le plus vendu. Décrivons à présent les champs des différentes tables utilisées : Table Jeux : Champs Description id_jeu description id_genre id_entreprise carte_graphique Processeur Memoire Disque id_plateforme Identifiant du jeu vidéo Nom du jeu vidéo Type du jeu vidéo Identifiant de l’entreprise qui a produit le jeu vidéo Capacité minimale requise pour la carte graphique Capacité minimale requise pour le processeur Capacité minimale requise pour la mémoire Capacité minimale requise pour le disque dur Identifiant du plateforme requis pour jouer le jeu vidéo Table Types_jeux : Champs Description id_genre description Identifiant du type jeu vidéo Description du type de jeu vidéo Table Plateformes : Champs Description id_plateforme description Identifiant du plateforme Description du plateforme Table Entreprises : Champs Description id_entreprise nom pays Identifiant de l’entreprise qui produit des jeux vidéo Nom de l’entreprise Identifiant du pays de l’entreprise Table Pays : Champs Description id_pays nom id_continent Identifiant du pays Nom du pays Identifiant du continent du pays Table Continent : Champs Description id_continent nom Identifiant du continent Nom du continent Table Ventes : Champs Description id_vente annee_vente id_jeu id_pays prix_vente age_acheteur Identifiant de la vente Année de la vente du jeu vidéo Identifiant du jeu vidéo Identifiant du pays de vente Prix de vente du jeu vidéo Age de l’acheteur du jeu vidéo Table Tranche d’âge : Champs Description min max tranche_age Age minimum Age maximum Tranche d’âge Après avoir créé la base de données nous avons utilisé les sites suivants pour pouvoir l’alimenter : http://www.electronicarts.fr/ http://www.linux.org/apps/index.html http://www.download.com/ http://www.namag.com Ainsi, à la fin de la saisie nous avons obtenu : - 13 types de jeux 100 jeux 4 entreprises productrices 5 plateformes 234 pays - 4 continents 200 ventes IV- Importation sous DB2SO Une fois le cadre d’étude défini et la base de données créée, il est possible de débuter l’analyse des données à l’aide du logiciel SODAS. DB2SO est un élément du logiciel SODAS qui permet à l’utilisateur de construire un ensemble d’assertions à partir de données stockées dans une base de données relationnelle. Il permet de construire une assertion pour chaque groupe d’individus. Tout d’abord, nous avons commencé par construire nos requêtes sous Access. A- Création des requêtes : Info_jeux SELECT DISTINCT Jeux.description, types_jeux.Description, Entreprises.Nom, Pays.Nom, Continent.nom, Jeux.carte_graphique, Jeux.processeur, Jeux.memoire, Jeux.disque, Plateformes.Description, Ventes.annee_vente, Ventes.prix_vente, Ventes.age_acheteur FROM (types_jeux INNER JOIN (Plateformes INNER JOIN ((Continent INNER JOIN Pays ON Continent.id_continent=Pays.id_continent) INNER JOIN (Entreprises INNER JOIN Jeux ON Entreprises.id_entreprise=Jeux.id_entreprise) ON Pays.id_pays=Entreprises.id_pays) ON Plateformes.id_plateforme=Jeux.id_plateforme) ON types_jeux.id_genre=Jeux.id_genre) INNER JOIN Ventes ON (Jeux.id_jeu=Ventes.id_jeu) AND (Pays.id_pays=Ventes.id_pays); Cette première requête renvoie les individus du premier ordre et leur description. Elle permet ainsi de ressortir de la base les individus, les concepts puis les caractéristiques des individus. Info_type SELECT DISTINCTROW [types_jeux.Description] AS Jeu, Count(*) AS Nbr_ventes, Avg(Ventes.prix_vente) AS prix_vente_moy FROM Jeux, types_jeux, Ventes WHERE (((types_jeux.id_genre)=[Jeux].[id_genre]) AND ((Ventes.id_jeu)=[Jeux].[id_jeu])) GROUP BY types_jeux.Description; Cette requête renvoie les concepts (les types de jeux vidéo), les variables de classe et les variables de description Nombre de ventes, et prix de vente moyen. Pays_Jeux_Ponderation SELECT DISTINCT Pays.Nom, types_jeux.Description, 1 AS Ponderation FROM Pays, Entreprises, Jeux, types_jeux WHERE (((Pays.id_pays)=[Entreprises].[id_pays]) AND ((Entreprises.id_entreprise)=[Jeux].[id_entreprise]) AND ((types_jeux.id_genre)=[Jeux].[id_genre])); Cette requête insère une variable multimodale « Pays ». Taxonomies : La première taxonomie Taxo_Entreprise reprend les deux variables « Entreprise de production du jeu vidéo » et « Pays de production du jeu vidéo » qui sont soumises à une hiérarchie. En effet, chaque entreprise de production de jeu video fait partie d’un seul pays. On ne trouvera donc pas une même entreprise dans deux pays différents. SELECT DISTINCT Entreprises.Nom, Pays.Nom FROM Pays INNER JOIN (Entreprises INNER JOIN Jeux ON Entreprises.id_entreprise = Jeux.id_entreprise) ON Pays.id_pays = Entreprises.id_pays; La deuxième taxonomie Taxo_Pays définit la hiérarchie présente entre les variables « pays de production du jeu vidéo » et « continent de production de jeu vidéo». En effet, chaque pays fait partie d’un seul continent. SELECT DISTINCT Continent.nom, Pays.Nom FROM (Continent INNER JOIN Pays ON Continent.id_continent = Pays.id_continent) INNER JOIN (Entreprises INNER JOIN Jeux ON Entreprises.id_entreprise = Jeux.id_entreprise) ON Pays.id_pays = Entreprises.id_pays; Toutes ces requêtes que nous avons exécutées nous ont permis de disposer les données de manières exploitables pour DB2SO, et par suite de SODAS. B- Exécution des requêtes sous DB2SO : Une fois les requêtes construites, nous les avons exécuté dans DBS2O. D’abord, nous avons suivi le chemin suivant pour importer les données de la base JeuxVideo SODAS File > Import…> Importation (DB2SO) Puis, dans la fenêtre SodasDB, nous avons fait File > New, et nous avons choisi MS Access DataBase comme type de source de données. Ensuite nous avons choisi notre base de données JeuxVideo.mdb comme une source de données de type Microsoft Access. Une fois la source de données choisie, SODAS demande d’indiquer la requête pour l’extraction des individus : Dans le menu Modify de la fenêtre SodasDB, nous avons choisi « add single-valued variables… » pour ajouter nos variables uniques. De même, nous avons choisi « add one set-valued mutiple variable » pour ajouter la variable mutimodale. Enfin, nous avons importé les taxonomies à partir du menu Modify > Create a taxonomy... Pour cela, nous avons indiqué les variables à regrouper ainsi que les requêtes correspondantes aux taxonomies. Pour visualiser les taxonomies nous avons fait : « View > Taxonomies… » Après l’exécution des requêtes, il ne nous reste plus qu’à exporter les données ainsi constituées dans DB2SO vers un fichier de type sds exploitable par SODAS. File > Export and view… Pour cela, nous avons choisi JeuxVideo.sds dans notre répertoire de travail. Ci-dessous une partie du view que nous avons obtenu. V- Utilisation des méthodes de SODAS 1- SOE (Symbolic Objects Editors) La méthode SOE (Symbolic Object Editor) permet de voir dans une table tous les objets symboliques présents dans un fichier SODAS. Ces objets symboliques peuvent être aussi représentés graphiquement grâce au principe de l’étoile zoom qui fournit différents niveaux de détail grâce à une représentation en deux et en trois dimensions. Un objet symbolique est généralement représenté par un ensemble de variables dont les valeurs peuvent être soit comprises dans un intervalle dans le cas d’une variable quantitative, soit pondérées dans le cas d’une variable qualitative. Dans le principe de l’étoile zoom, chaque étoile représente un objet symbolique. Cette représentation fournit une image synthétique de l'objet, un profil, et permet de comparer des profils entre eux. Les objets que nous allons analyser sont : - Action - Driving - 3D Games - Kids Ce sont les quatre objets symboliques les plus représentés (donc les plus vendus) ou les plus intéressants à analyser. D’après ce tableau, nous remarquons que le type de jeu le mieux vendu est « Action » avec un effectif égal à 80 et le jeu le moins vendu est de type « Cards and Board ». Les variables descriptives que nous allons analysé pour chaque objet sont : - Pays - Continent - Entreprise - Prix de vente - Tranche d’âge - Année de vente - Disque dur - Mémoire - Processeur - Carte graphique - Plateforme Voici les graphiques obtenus grâce à l’application de la méthode SOE et les interprétations correspondantes. Jeux vidéo de type « Action » A partir de ces graphiques, on remarque que la plupart des jeux vidéo de type « Action » sont sous une plateforme Linux avec un fort pourcentage de 80% contre 20% pour Windows. Les prix de vente varient entre 10 et 20 Euros. Donc ces types de jeux ne sont pas coûteux. Il est important de noter que la tranche d’âge des acheteurs de ce type de jeux est 14-24 ans (100%). Concernant la capacité minimum requise pour la carte graphique, nous avons obtenu les valeurs suivantes : 40 % pour une capacité de 128 MHz, 40 % pour une capacité minimale de 256 MHz, 20 % pour une capacité minimale de 64 GHz. Donc, dans la plupart des cas, les jeux vidéo de type « Action » ne requièrent pas une très grande capacité pour la carte graphique. Jeux vidéo de type « Driving » Dans le cas des jeux vidéo de type « Driving », la trache d’âge des acheteurs est aussi 14-24 ans. Nous avons le pourcentage le plus grand pour l’entreprise de production américaine GPL. Parsuite, ces jeux utilisent plutôt la plateforme Linux. De même, ces jeux ne requièrent pas une grande capacité de mémoire (256 M) ni une grande capacité de carte graphique (128 MH). Jeux vidéo de type « 3D Games » Dans le cas de jeux vidéo de type « 3D Games », nous avons un fort pourcentage pour la tranche d’âge « 25-34 ans ». Notons que ce tranche d’age n’existait pas pour les jeux vidéo de type « Action » ou « Driving ». Par contre nous avons seulement 33% de ventes pour la tranche d’âge « 14-24 ans ». Nous remarquons aussi que le prix de ventes de ce type de jeux est plus grand que le prix de vente des jeux vidéo de type « Action » et « Driving ». Ce prix varie entre 30 et 50 Euros . Jeux vidéo de type « Kids » Nous remarquons pour ce genre de jeux vidéo que la tranche d’âge est 35-44 ans. Ceci est probablement dû au fait que c’est les parents qui achètent ces jeux vidéo pour leurs enfants. La production de ce genre de jeux se fait en plus grand pourcentage par la société chinoise POGO. Ce type je jeux sont plutôt basé sur la plateforme Windows. Leur prix de vente varie entre 10 et 15 Euros. Synthèse des résultats obtenus. Parmi les quatre objets symboliques, nous remarquons immédiatement que les jeux vidéo de type « Action » sont les plus vendus et sont les moins chers. On peut donc en déduire facilement que ce type de jeu est très apprécié par les acheteurs surtout d’âge compris entre 14 et 25 ans. On note également que quelque soit le type de jeux, ils sont en grande majorité produits Etats-Unis. 2- STAT (Elementary Statistics on Symbolic Objects) La méthode STAT (Elementary Statistics On Symbolic Objects) nous permet d’utiliser des statistiques classiques étendues aux variables symboliques représentés par leur description. Cette méthode fonctionne dans SODAS avec les bases de données de SODAS. C’est un ensemble de méthodes qui fonctionnent avec les bases de données SODAS et qui génèrent de listing ou de graphe représentant les statistiques élémentaires relatives aux données symboliques. Cette méthode permet aussi de regrouper les valeurs des variables symboliques en classes, sous forme d’histogrammes. Il faut noter que les méthodes de STAT dépendent du type des variables de la base de données. Fréquences relatives pour les variables d’intervalles : La première variable que nous avons étudiée est le prix de vente des jeux vidéo. Nous avons regroupé le prix de vente en quatre classes. La largeur de chaque classe est égale à 10. Les quatre classes que nous avons obtenues sont les suivantes : 10-20 Euros 20-30 Euros 30-40 Euros 40-50 Euros Il est clair que le prix de vente qui prédomine est entre 10 et 20 Euros. Ceci confirme les résultats que nous avons obtenus à partir de la méthode SOE. Donc la plupart des jeux vidéo sont vendus entre 10 et 20 Euros contrairement aux ventes à un prix plus grand que 30 Euros. Les jeux vidéo sont le moins vendus pour un prix allant entre 20 et 30 Euros. Nous avons également étudié la variable « Année de Vente ». Le nombre de classes choisi 5. Chaque classe a donc une largeur de 1. Les cinq classes que nous avons obtenues sont les suivantes : 2000-2001 2001-2002 2002-2003 2003-2004 2004-2005 Nous remarquons d’après le graphe qu’on a eu le plus de ventes de jeux vidéo entre 2003 et 2004 et le moins ventes entre 2001 et 2002. Min/Max/Mean pour les variables multimodales probabilistes : La variable étudiée est la tranche d’âge des acheteurs des jeux vidéo. A partir du graphe ci-dessus nous notons que nous avons la plus grande moyenne pour la tranche d’âge 14-24 ans et la plus petite moyenne pour la tranche d’âge 25-34 ans. Ceci confirme aussi les résultats que nous avons obtenus à partir de la méthode SOE. Nous avons la plus grande modalité (= 1) pour les tranches d’âge 35-44 ans, 14-24 ans et 44 ans et plus. A partir de cet histogramme nous pouvons aussi conclure que certains types de films ne sont achetés que par une tranche d’âge précise. Il paraît aussi qu’aucune tranche d’âge n’est à la fois présente dans tous les types de jeux vidéo. Biplot pour variables d’intervalles : Les variables étudiées sont le prix de vente des jeux vidéo et l’année de vente. Il s’agit donc de voir quelles sont les types de jeux les plus vendus pendant entre 2000 et 2005 et leur prix de ventes. D’après le graphe ci-dessus, nous remarquons que les jeux vidéo de type « Action » sont vendus tout au long des années (entre 2000 et 2004) avec un prix de vente allant de 10 à 20 Euros. Par contre, les jeux de type « 3D Games » sont vendus à partir de 2002 à un prix de vente allant de 30 à 50 Euros. Ce qui est normal car ce type de jeux demande des caractéristiques technologiques plus avancées (carte graphique, mémoire, processur). Ce graphe confirme les résultats obtenus dans la méthode SOE. 3- DIV (Divisive Clustering) La troisième méthode de SODAS que nous avons utilisé est DIV (Divisive Clustering). DIV est une méthode de classification hiérarchique qui commence avec tous les objets d’une classe et procède par divisions successives de chaque classe. A chaque étape, une classe est divisée en deux classes selon une question binaire. Cette question binaire induit le meilleur partage en deux classes selon une extension du critère de l’inertie. L’algorithme se termine après k-1 divisions, où k représente le nombre de classes données comme inputs par l’utilisateur. Le variable que nous avons choisi pour l’application de cette méthode est la tranche d’âge. Voici les résultats que nous avons obtenu. ------------------------------------------------------BASE=C:\SODAS\Tmp\EHVTYR06.CMD nind=8 nvar=14 nvarsel=1 METHOD=DIVISIVE CLUSTERING ------------------------------------------------------THE SELECTED VARIABLES ARE : (Verify the order of the modality) -------------------------( 11) :Tranche_Age (Initial order) 1- 35-44 2- 25-34 3- 14-24 4- 44 et + PARTITION IN 2 CLUSTERS : -------------------------: Cluster 1 (n=2) : "Strategy" "Kids" Cluster 2 (n=6) : "3D games" "Arcade" "Action" "Cards and Board" "Driving" "Adventure" Explicated inertia : 38.235289 PARTITION IN 3 CLUSTERS : -------------------------: Cluster 1 (n=2) : "Strategy" "Kids" Cluster 2 (n=5) : "3D games" "Arcade" "Action" "Driving" "Adventure" Cluster 3 (n=1) : "Cards and Board" Explicated inertia : 76.470578 PARTITION IN 4 CLUSTERS : -------------------------: Cluster 1 (n=2) : "Strategy" "Kids" Cluster 2 (n=1) : "3D games" Cluster 3 (n=1) : "Cards and Board" Cluster 4 (n=4) : "Arcade" "Action" "Driving" "Adventure" Explicated inertia : 100.000000 --------------------------------------------------------------------------------THE DIVISIONS ARE STOPED: It is not possible to divide singletons or objects having the same ''descriptions'' The ''description'' of a ''symbolic description'' is its ''median'' value --------------------------------------------------------------------------------THE CLUSTERING TREE : --------------------- the number noted at each node indicates the order of the divisions - Ng <-> yes and Nd <-> no +---- Classe 1 (Ng=2) ! !----1- [Tranche_Age <= 35-44] ! ! +---- Classe 2 (Ng=1) ! ! ! !----3- [Tranche_Age <= 25-34] ! ! ! ! ! +---- Classe 4 (Nd=4) ! ! !----2- [Tranche_Age <= 14-24] ! +---- Classe 3 (Nd=1) 4- PYR (Pyramidal Clustering on Symbolic Objects) La méthode PYR de SODAS permet de caractériser les classes en les organisant sous forme de paliers. Elle permet surtout de représenter les classes empiétantes en situant les types de jeux vidéo les uns par rapport aux autres en fonction des caractéristiques définis. Donc, nous avons regroupé les types de jeux vidéo de notre base de données en pyramides, en prenant en considération les caractéristiques des jeux vidéo comme la plateforme, la capacité minimale pour le disque dur, la carte graphique… Cette pyramide regroupe dans sa partie supérieure les types de jeux vidéo de la partie inférieure du tableau c'est-à-dire « Driving », « Action », « Adventure », « Driving » qui sont les types de jeux les plus vendus. Dans l’autre partie du tableau nous retrouvons les types de jeux vidéo suivants : « Kids », « Cards & Board », « Strategy », « Arcade ». Donc, les types de jeux les moins vendus. Nous avons obtenu un regroupement des jeux vidéo suivant les types et le nombre de ventes.