Forum

Ciao a tutti,

è la prima volta che scrivo su questo forum e vi chiedo una grossa mano per risolvere un problema.

 In particolare il quesito riguarda la clusterizzazione di un database (chiamato factors) di una lista di fondi di investimento composta da 544 individui e 7 variabili che sono delle componenti principali trovate precedentemente. il mio obiettivo è la clusterizzazione attraverso la combinazione di un k means all’interno di un algortimo genetico. Ho provato ad implementare un codice in R ma senza risultato. qualcuno ha fatto qualche precedente lavoro con gli algoritmi genetici e riesce a trovare l'errore nel seguente codice?

p.s la funzione di fitness è l'indice Davies-Bouldin che massimizza la distanza inter cluster e minimizza quella intra cluster.

Vi ringrazio in anticipo

##AGGIUNTO COLONNA CON 0 RANDOM CON DISTRIBUZIONE BINOMIALE
set.seed(7)
CHROMOSOME<-rbinom(n =544, size = 1, prob = 7/544)
CHROMOSOME
summary(CHROMOSOME)
ds_comb<-cbind(CHROMOSOME,Factors)
ds_comb


#ga##problema principale
install.packages("GA")
library(GA)
install.packages("clusterSim")
library(clusterSim)
##DEFINIZIONE FUNCTION DI FITNESS
DBI <- function(x) {
if(sum(x)==nrow(ds_comb) | sum(x)==0){
score <- 0 }
else {
clus <- kmeans(ds_comb, sum(ds_comb[,1]))
dbi <- index.DB (ds_comb,cl=clus$clusters, centrotypes = "centroids")
score <-dbi$DB
}

return(score)
}
#GENETIC ALGORITHM
g<- ga(type ="real-valued",fitness = DBI,min =-3,max = 3,popSize = 100,run = 100,maxiter = 400)
g
summary(g)
plot(g)
g@solution
g@fitnessValue

Per aggiungere dei commenti, devi essere membro di StatisticaNing!

Join StatisticaNing

Inviami un'e-mail quando le persone aggiungono una risposta –