data(iris) # conjunto de dados
data <- iris[,1:4]
# Exemplo 1 - Sem as classes nos dados
ind <- PP_Index(data = data, class = NA, vector.proj = NA,
findex = "moment", dimproj = 2, weight = TRUE,
lambda = 0.1, r = 1)
print("Numero de classes:"); ind$num.class
print("Nomes das classes:"); ind$class.names
print("Funcao indice de projecao:"); ind$findex
print("Vetores de projecao:"); ind$vector.proj
print("Indice de projecao:"); ind$index
# Exemplo 2 - Com as classes nos dados
class <- iris[,5] # classe dos dados
findex <- "pda" # funcao indice
sphere <- TRUE # Dados esfericos
res <- PP_Optimizer(data = data, class = class, findex = findex,
optmethod = "SA", dimproj = 2, sphere = sphere,
weight = TRUE, lambda = 0.1, r = 1, cooling = 0.9,
eps = 1e-3, maxiter = 1000, half = 30)
# Comparando o resultado obtido
if (match(toupper(findex),c("LDA", "PDA", "LR"), nomatch = 0) > 0) {
if (sphere) {
data <- apply(predict(prcomp(data)), 2, scale) # dados esfericos
}
} else data <- as.matrix(res$proj.data[,1:Dim])
ind <- PP_Index(data = data, class = class, vector.proj = res$vector.opt,
findex = findex, dimproj = 2, weight = TRUE, lambda = 0.1,
r = 1)
print("Numero de classes:"); ind$num.class
print("Nomes das classes:"); ind$class.names
print("Funcao indice de projecao:"); ind$findex
print("Vetores de projecao:"); ind$vector.proj
print("Indice de projecao:"); ind$index
print("Indice de projecao otimizado:"); res$index[length(res$index)]
Run the code above in your browser using DataLab