knitr::opts_chunk$set(echo = TRUE)
library(tidyverse)
library(magrittr)

En este cuaderno se van a preprocesar los datos obtenidos para el clasificador. Comenzamos cargando el archivo csv con todos los descriptores.

df.caret.numeric <- read_csv("df.caret.numeric.csv")
dim(df.caret.numeric)

zero-variance predictor

A continuación, vamos eliminar aquellas variables que tengan un único valor (varianza cero) de las numéricas de protR y las cercanas al cero las variables dummies.

library(caret)
nzv.numeric <- df.caret.numeric %>%
  nearZeroVar(saveMetrics= TRUE)%>%
  rownames_to_column(var = "var")
nzv.numeric %>%
    filter(zeroVar | nzv)
df.caret.numeric %<>%
  select(-all_of(nzv.numeric %>%
    filter(zeroVar| nzv) %>% pull(var)))
dim(df.caret.numeric)

Correlación

A continuación, vamos a eliminar aquellas variables que se encuentren correlacionadas en más de un .99. Así eliminamos la columna DC_GR.

highlyCorrelated <- findCorrelation(cor(df.caret.numeric, use = "pairwise.complete.obs", ), cutoff=0.99, names = TRUE)

df.caret.numeric <- df.caret.numeric %>%
  select(-all_of(highlyCorrelated))
dim(df.caret.numeric)

Combo lineal

A continuación, vamos a eliminar posibles combinaciones lineales. Tendremos cuidado de que no se eliminen aquellas variables que usamos en el clustering y que por bibliografía nos interesan. Destacar, que las variables con NA's en este punto corresponden a aquellas secuencias de menor longitud al lag utilizado por algunos descriptores de protR.

comboInfo <-df.caret.numeric %>%
  drop_na %>%
  findLinearCombos()
print("Después de aplicar el combo lineal")
df.caret.numeric<- df.caret.numeric[, -comboInfo$remove]
dim(df.caret.numeric)
#colnames(features.df.numeric)
View(df.caret.numeric)
df.final <- df.caret.numeric %>%
  mutate(ann = protR_desc$annotation) 

preProcValues <- preProcess(df.final, method = c("center", "scale"))

preProcValuesTransformed <- predict(preProcValues, df.final)


currocam/FascinRSCA documentation built on March 21, 2022, 6:29 a.m.