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.

Documents pareils