Bonjour,
J'aimerais implémenter l'algorithme du classification hiérarchique ascendante de documents (CAH) en Java.
Quelqu'un saurait-il me guider un peu ?
Merci d'avance pour votre aide.
Bonjour,
J'aimerais implémenter l'algorithme du classification hiérarchique ascendante de documents (CAH) en Java.
Quelqu'un saurait-il me guider un peu ?
Merci d'avance pour votre aide.
Bonjour,
Je ne connais pas cette algorithme, mais wikipédia peut aider:
La classification ascendante hiérarchique (CAH)
Celui-ci propose un implémentation en pseudo-code :
Je te propose de traduire cela en java. Si tu as besoin d'aide n'hésite pas.Entrées:
individus: liste d'individus
nbClasses: nombre de classes qu'on veut obtenir au final
Sortie:
classes: liste de classes initialement vide, une classe est vue comme une liste d'individus
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 Pour i=1 à individus.longueur Faire classes.ajouter(nouvelle classe(individu[i])); Fin Pour Tant Que classes.longueur > nbClasses Faire // Calcul des dissimilarités entre classes dans une matrice triangulaire supérieure matDissim = nouvelle matrice(classes.longueur,classes.longueur); Pour i=1 à classes.longueur Faire Pour j=i+1 à classes.longueur Faire matDissim[i][j] = dissim(classes[i],classes[j]); Fin Pour Fin Pour // Recherche du minimum des dissimilarités Soit (i,j) tel que matDissim[i][j] = min(matDissim[k][l]) avec 1<=k<=classes.longueur et k+1<=l<=classes.longueur; // Fusion de classes[i] et classes[j] Pour tout element dans classes[j] Faire classes[i].ajouter(element); Fin pour supprimer(classes[j]); Fin Tant Que
Si tu as un implémentation de ce code qui fonctionne n'hésite pas non plus à l'ajouter à wikipédia.
Cordialement,
Patrick Kolodziejczyk.
Merci Patrick Kolodziejczyk
je vais essayer
je n'arrive pas à résoudre l’algorithme de CAH
Bonjour,
et tu as quelque chose à dire, à propos des problèmes que tu rencontres ?
Bonjour,
je veux classer des nombres réel qui présentent la pertinence des documents que j'ai.
Donc je doit classer ces scores pour les regrouper en document qui ont des scores très élevé, moyenne et faible
je doit les classer avec l'algorithme CAH en Java
Qu'à tu fait ? Peux-tu nous montrer un morceau de code ? (même bugger)je n'arrive pas à résoudre l’algorithme de CAH
Pour t'aider, il nous faut de quoi discuter.
Donne nous ce que tu as fait et non ce que tu dois faire. Nous t'aiderons à aller de ce que tu as à ce que tu veux.
Cordialement,
Patrick Kolodziejczyk.
package cah;
import java.math.*;
import java.io.*;
import index.Document;
import searcher.Searcher;
public class CAH
{
int i,j,n;
// mp : matrice 2 lignes qui contient les doc et leurs poids;
for ( i=0 ; i<n ; i++ )
{
mp[i][0] := getDocument();
mp[i][1] := getPertinence();
}
// m : matrice qui contient les doc avec la diff des poids % au doc;
m[0][0]:=0;
for (i=1; i<n; i++)
{
m[i][0] := mp[i][0];
m[0][i] := mp[i][0];
}
for (i=0; i<n; i++)
{
m[i,j] := Math.abs( mp[i][1] - mp[j][1] );
}
// recherche min;
for (i=1;i<n-1;i++)
{
for (j=2; j<n ; j++)
{
}
}
}
je doit chercher a chaque fois le min entre deux poids (pertinence) puis les fusionner. Chaque fois deux a deux jusqu’à j'arrive a séparé les documents pertinent et non pertinent selon leur pertinence
----
Cette méthode commence par le regroupement des deux éléments les plus similaires, on continu par le rapprochement jusqu’au regroupement complet de tous les éléments en un seul groupe. Cette action ce fait par le regroupement des scores deux à deux.
Algorithme :
1- C :=1
2- Pour i : 1 à n faire
3- Gi := {xi}
4- Fin pour
5- Faire
6- Trouver les deux groupes les plus proches Gi de Gj
7- Fusionner Gi et Gj
8- C := C-1
9- Jusqu'à (C==1)
10- Fin.
comment je doit continuer mon programme ???
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager