Opened 12 years ago
Last modified 12 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
Change History (2)
Changed 12 years ago by
Attachment: | Validacao_I.pdf added |
---|
comment:1 Changed 12 years ago by
Owner: | changed from Víctor de Buen Remiro to Jorge |
---|---|
Status: | new → assigned |
Note: See
TracTickets for help on using
tickets.