Opened 13 years ago
Last modified 13 years ago
#1639 assigned defect
Algoritmos de evaluación de clustering
| Reported by: | Owned by: | Jorge | |
|---|---|---|---|
| Priority: | normal | Milestone: | Mantainance |
| Component: | Kernel | Version: | 3.1 |
| Severity: | normal | Keywords: | |
| Cc: |
Description
Hola TOL, he estado buscando algoritmos de evaluación de cómo de bueno es un clustering, y no he encontrado ninguno.
Ayer creé una variante simplificada del índice de Dunn (la que mide distancias entre centroides y diámetro como el doble del radio medio):
Real Dunn.Index(Set sCluster)
{// Set sCluster = Cluster.Res;
// Primero buscamos el máximo de los diámetros de un mismo cluster.
// Aproximamos por una variante del índice de Dunn, que mide el diámetro
// de cada cluster como el doble del radio medio:
Set sDeltas.Den = For(1,Card(sCluster["SetOfClusters"]),Real (Real j)
{// Real j = 1;
Set Xl = sCluster["SetOfClusters"][j];
Real Nl = Card(Xl);
Matrix Cl = SubRow(sCluster["Centroids"],[[ j ]]);
Matrix Ul = BinGroup("<<",For(1,Nl,Matrix (Real k){ Cl }));
Matrix Xk = BinGroup("<<",Xl);
Matrix restas = (Xk - Ul);
Matrix unos = Rand(Columns(Cl),1,1,1);
Matrix distancias = ((restas $* restas) * unos)^0.5;
Real DeltaL = 2*MatSum(distancias)/Nl;
Real PutName("DeltaL_cluster"<<j,DeltaL)
});
// Segundo, buscamos la mínima de las distancias entre clusters distintos.
// Este punto es tremendamente complejo, para simplificar usamos una variante
// que consiste en medir únicamente la distancia entre centroides:
Set sElements = Range(1,Rows(sCluster["Centroids"]),1);
Matrix mDeltas.Num = BinGroup("<<",
For(1,Rows(sCluster["Centroids"]),Matrix (Real j)
{// Real j = 1;
Matrix m1 = SubRow(sCluster["Centroids"],[[ j ]]);
Matrix m2 = SubRow(sCluster["Centroids"],sElements - [[ j ]]);
Matrix ml = BinGroup("<<",For(1,Card(sElements)-1,Matrix (Real k){ m1 }));
Matrix restas2 = (m2 - ml);
Matrix unos2 = Rand(Columns(ml),1,1,1);
Matrix distancias2 = ((restas2 $* restas2) * unos2)^0.5;
Matrix PutName("DistanciasCentroides_cluster"<<j,distancias2)
})
);
// Indice de Dunn
Real Dunn.Index = MatMin(mDeltas.Num)/SetMax(sDeltas.Den)
};
Os paso un documento adjunto de la Universidad de São Paulo donde explican algunos de ellos:
Dunn, Davies-Bouldin, PBM, etc
Un saludo
Attachments (1)
Change History (2)
Changed 13 years ago by
| Attachment: | Validacao_I.pdf added |
|---|
comment:1 Changed 13 years ago by
| Owner: | changed from Víctor de Buen Remiro to Jorge |
|---|---|
| Status: | new → assigned |
Note: See
TracTickets for help on using
tickets.
