rapport kmeans

12
1 Implementation of K-Means Clustering in Cloud Computing Environment Réalisé par : JANNADI Wiem TURKI Imen 2ing01

Upload: imen-turki

Post on 07-Dec-2014

945 views

Category:

Documents


2 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Rapport kmeans

1

Implementation of K-Means Clustering in

Cloud Computing Environment

Réalisé par :

JANNADI Wiem

TURKI Imen

2ing01

Page 2: Rapport kmeans

2

Table des matières : 1. Introduction : ................................................................................................................................... 3

2. Le clustering :................................................................................................................................... 3

3. K_Means : ........................................................................................................................................ 4

4. Cloud Computing : ............................................................................................................................... 5

5. Cloudster/K-means algorithm for cloud computing: .......................................................................... 7

6. Mise en œuvre : ................................................................................................................................... 8

6.1 –Algorithme : ................................................................................................................................. 8

6.2 -Code java : .................................................................................................................................... 8

7. Conclusion/Perspectives : ................................................................................................................. 12

Page 3: Rapport kmeans

3

1. Introduction :

Aujourd’hui le monde des affaires est rapide et dynamique dans la nature. Ceci implique

beaucoup de données recueillies auprès de différentes sources.

Ces données sont stockées dans des entrepôts de données (Data Warehouses).

La plupart des tâches difficiles des gens d'affaires est de transformer ces données en

informations utiles appelle la connaissance.

Données techniques d'extraction sont utilisés pour réaliser cette tâche.

Ce qui fait de faire le regroupement des serveurs, en vue de créer un "super serveur

virtuel« qui ‘est le clustering.

2. Le clustering : Clustering : Organiser un ensemble de formes en groupes contrastés.

En vue de : Comprimer et structurer les données pour permettre des prédictions.

Page 4: Rapport kmeans

4

Objectif :

- Trouver des regroupements « naturels » (clusters) des exemples

- Inventer un nouvel attribut C dont les valeurs c1, c2, …, ck indiquent le cluster auquel

appartient un exemple

Critère

• Maximiser la distance inter-cluster

• Minimiser la distance intra-cluster

3. K_Means :

K means est un algorithme de clustering (classification de données) ... K est un paramètre qui

est le nombre de classe à construire.

L’idée générale de l’algorithme est de créer k classe centrée autour de k points de centre

qu’on choisis au départ aléatoirement , puis à chaque itération on calcule le barycentre des

points de chaque classe qui sera le nouveau centre de la classe et on ajuste la classe autour de

ce centre .

Un point appartient à la classe dont le centre est plus proche.

//Principe général

L’algorithme consiste à grouper les points selon un critère bien déterminé.

L’entrée de l’algorithme est le nombre k de groupes (cluster). Une fois le nombre de groupes

saisi, l’algorithme choisit arbitrairement k points comme centres «initiaux » des k groupes.

L’étape suivante consiste à calculer la distance entre chaque individu (point) et les k

centres, la plus petite distance est retenue pour inclure cet individu dans le groupe ayant le

centre le plus proche.

Une fois tous les individus groupés, on aura k sous-nuages (cluster) disjoints du nuage total.

Pour chaque groupe, l’algorithme calcule le nouveau centre de gravité.

L’algorithme s’arrête lorsque les groupes construits deviennent stables.

Page 5: Rapport kmeans

5

4. Cloud Computing :

Cloud computing:« informatique en nuage »

• une puissance de calcul,

• un espace de stockage,

• une infrastructure de serveurs reliés par Internet.

Avantages

• la flexibilité de l'infrastructure => plus agiles dans système d'information.

• Rapidité d’accès à une infrastructure performante.

• Paiement contrôlés grâce à une facturation à la carte

Inconvénients

• les performances du Cloud Computing sont dépendantes d'Internet et peuvent

connaître une certaine latence due à la faiblesse du réseau,

• les fournisseurs de plates-formes de Cloud Computing offrent peu de garantie en

matière de continuité de service (SLA - Service Level Agreement),

• les données critiques de l'entreprise sont hébergées à l'extérieur du système

d'information.

• Algorithme simple et efficace en temps et en mémoire

• Utilisable avec de grandes bases de données (e.g. milliers d’objets).

Avantages

• Sensible au choix des moyennes initiales Limites

• Il existe des informations a priori sur le choix des centres de classes.

• En post-traitement d’un clustering hiérarchique. A utiliser

Page 6: Rapport kmeans

6

Saas (Software-as-a-service) permet d'externaliser dans des salles informatiques la couche

infrastructure matérielle, les applications middleware et de développement (Paas) ainsi que les

applications de l'entreprise. L'entreprise consomme ces applications hébergées à la demande

(comme par exemple Gmail, la messagerie de Google).

Iaas (Infrastructure-as-a-service) permet d'externaliser la couche infrastructure matérielle

(les serveurs, le réseau, le stockage) dans des salles informatiques distantes. Les entreprises

démarrent des serveurs virtuels hébergés sur la plate-forme de Cloud Computing à chaque fois

qu'un accroissement de calcul est nécessaire.

Paas (Platform-as-a-service) permet d'externaliser la couche infrastructure matérielle (Iaas),

mais aussi les bases de données, les environnements de développement et d'exécution

d'applications et les couches d'intégration de données. L'entreprise conserve uniquement ses

applications en interne. Elle utilise le Paas pour porter ses applications « dans les nuages » ou

en développer d'autres à partir des outils de développement (hébergés) fournis par la plate-

forme de Cloud Computing.

Page 7: Rapport kmeans

7

5. Cloudster/K-means algorithm for cloud

computing:

Un cluster de serveurs, c'est le fait de regrouper et relier physiquement des serveurs par

des interfaces spécifique pour le transformer en un seul serveur plus puissant et scalaire.

Un serveur Cloud, c'est en fait un serveur issu de la division en plusieurs morceaux d'un

plus gros serveur. Ça permet d'avoir un serveur avec tous les droits (ou presque) à moindre

coût par rapport à un serveur dédié. Nous allons mettre en œuvre l'algorithme des K-Means en

java et l'IDE Eclipse pour la conception et le développement de l'application qui sera déployée

sur la plateforme Google AppEngine.

Google App Engine permet d'exécuter vos applications Web sur l'infrastructure Google.

Faciles à développer et à gérer, les applications App Engine, grâce à leur caractère évolutif,

s'adaptent à vos besoins en termes de trafic et de stockage des données. App Engine vous

dispense du recours à tout serveur : il vous suffit de transférer votre application et le tour est

joué ! Vos utilisateurs peuvent s'en servir sans plus attendre.

Page 8: Rapport kmeans

8

6. Mise en œuvre :

6.1 –Algorithme :

Choisir les points k qui représentent la position moyenne des

partitions m1(1)

,…,mk(1)

initiales (au hasard par exemple)

Répéter jusqu'à convergence:

- assigner chaque observation à la partition la plus proche.

- mettre à jour la moyenne de chaque cluster

La convergence est atteinte quand il n'y a plus de changement.

6.2 -Code java :

public void run() { Random gene=new Random(); readData(); // Initialiser les centres centers[0]=new Iris(0.8514,0.5867,-1.0364,-1.0132,ic.setosa); centers[1]=new Iris(0.725,-0.3293,0.8331,0.8386,ic.virginica); centers[2]=new Iris(0.5654,-0.1556,-0.4775,-0.52,ic.versicolor); // Iterer System.out.println("avant for "); for(int i=0;i<150;i++){ // Une liste d'exemples par cluster lesClusters=new ArrayList[nbClust]; for(int j=0;j<nbClust;j++) lesClusters[j]=new ArrayList<Iris>(); // Pour chaque exemple, rechercher le centre le plus proche

Page 9: Rapport kmeans

9

for(Iris d:lesDonnees){ double dmin=1000; int indexmin=-1; for(int l=0;l<nbClust;l++){ double dist=d.distance(centers[l]); if(dist<dmin){ dmin=dist; indexmin=l; } } // Ajouter l'exemple au cluster du centre le plus proche lesClusters[indexmin].add(d); } // Calculer les nouveaux centres for(int j=0;j<nbClust;j++){ double nb=lesClusters[j].size();

double sw=0; double sl=0; double pl=0; double pw=0; for(Object o:lesClusters[j]){ Iris d=(Iris)o; sw+=d.getSepalWidth(); sl+=d.getSepalLength(); pw+=d.getPetalWidth(); pl+=d.getPetalLength(); }// object o if(nb!=0) centers[j]=new Iris(pl/nb,pw/nb,sl/nb,sw/nb,null); else // Si le cluster est vide, choisir un nouveau centre centers[j]=new Iris(gene.nextDouble(),gene.nextDouble(),gene.nextDouble(),gene.nextDouble(),null); }}

1-

2-

Cette fonction nous permet de calculer la distance entre les nœuds et les points.

Page 10: Rapport kmeans

10

Les 3 centres

Cluster Vercicolor

Cluster Setosa.

Page 11: Rapport kmeans

11

public String connaissance(Iris d){ double dmin=1000; int indexmin=-1; for(int l=0;l<nbClust;l++){ double dist=d.distance(centers[l]); if(dist<dmin){ dmin=dist; indexmin=l; }} lesClusters[indexmin].add(d); return "le point i "+d+" appartient au cluster"+indexmin; }

Exemple :

Page 12: Rapport kmeans

12

7. Conclusion/Perspectives : L’algorithme k-means est très populaire du fait qu’il est très facile à comprendre et à

mettre en œuvre.

Le degré d’appartenance d’un document à une classe étant binaire et la pondération de

chaque document étant constant.

Comparer les performances des autres algorithmes par rapport à k-means. Cela

signifie qu'un point de données peut appartenir à un seul cluster et qu'une probabilité

unique est calculée pour l'appartenance de chaque point de données à ce cluster.