Principios básicos sobre preparación de Datos para Data Science.

Antes de poder abordar la problemática de negocio planteada surgen una serie de necesidades derivadas la calidad de datos habituales en las compañías. La primera suele ser el porcentaje de nulos debido a que impide el uso de muchos algoritmos de Machine Learning. Este aspecto debe ser abordado de forma obligatoria. Otro punto importante en la existencia de variables categóricas donde, a través del uso de técnicas de codificación, podemos disponer de matrices de tipo numéricas que permiten la aplicación de los algoritmos necesarios para la resolución del problema de negocio. El número de observaciones es muy relevante e interesa que sea lo más elevado posible. El método de modelar y realizar predicciones sin sobreajuste, consiste en separar los datos para entrenemiento y, entrenar el modelo con los datos de entrenamiento para así encontrar la precisión de este con los datos etiquetados de prueba, donde podremos validar la calidad de la aproximación.

  • Nulos.

En este punto se pueden tomar las siguientes decisiones. La primera es eliminar la información de los registros que tengasn un determinado atributo nulo, pero, en este caso perderíamos información.

#R

>>>  final[complete.cases(final),]

#Python

>>> df.dropna(axis='columns')
 

Para no perder la información, se puede substituir lalos registros por un determinado valor, 0 o valor medio o cualquier criterio que permita conservar los registros e información total.

Por valor 0

#R

>>> df.m[is.na(df.m)] <- 0
 

#Python

>>>  DataFrame.fillna()

Por valor medio

#R

>>> sub2['income'].fillna((sub2['income'].mean()), inplace=True)

#Python

>>> for(i in 1:ncol(data)){
>>>   data[is.na(data[,i]), i] <- mean(data[,i], na.rm = TRUE)
>>> }
  • Categorias

Hay dos formas de codificar un campo categórico. El primer remplaza cada valor por un numero

#R

>>> library(data.table)
>>> library(mltools)
>>> customers_1h <- one_hot(as.data.table(customers))

#Python

>>> df['categorical']= pd.Categorical(df['categorical'])
  • Split/train

Esta técnica es la última que se aplica antes de aplicar el modelo de Machine Learning. Normalmente se separan 2/3 de la información para entrenamiento y el tercio restante en validar la información. Los acuraccy de los dos subconjunto de datos debe ser similar in order to avoid overfitting troubles.

#R

>>> dfs <- floor(0.75 * nrow(df))
>>> train <- mtcars[dfs, ]
>>> test <- mtcars[-dfs, ]

#Python

>>> from sklearn.model_selection import train_test_split
>>> xTrain, xTest, yTrain, yTest = train_test_split(x, y, test_size = >>> >>> 0.2, random_state = 0)

Publicado por rapsusk

Condensed Matter Physics, Master's and PhD Programs in Materials Science, Addicted to Sports...

Deja un comentario

Diseña un sitio como este con WordPress.com
Comenzar