Skip to content

sase1988/EyCD

Repository files navigation

EyCD


Documentación de las operaciones realizadas (Entregable 2)

Fuente de datos

Partimos de la fuente de datos del Entregable 1 que está en este link del repositorio, donde hicimos una limpieza previa de la base de datos (eliminamos outliers, realizamos algunas imputaciones simples y excluimos ciertas columnas): 'https://github.com/sase1988/EyCD/raw/main/melb_df_clean.csv'

Ejercicio 1: Encoding

Utilizamos DictVetorizer para codificar las variables categóricas, resultando una matriz llamada feature_matrix de 13531 filas por 379 columnas.

Ejercicio 2: Imputación de las variables YearBuilt y BuildingArea

Procedimiento de imputación 1 (el que se ofrecia como ejemplo en la Notebook):

  • Columnas base de imputación: YearBuild, BuildingArea
  • Método de imputación: IterativeImputer, estimador: KNeighborsRegressor
  • Matriz de entrada: melb_data_mice (sin encoder y sin scaler)
  • DataFrame Resultante: melb_data_mice

Distribución obtenida: no se asemeja a la distribución original.Utilizar solo las dos columnas para la imputación por KNN no es efectivo:

image image

Procedimiento de imputación 2:

Escalado de variables: Para imputar por KNN es necesario escalar los valores. Esto debería haberse hecho incluso en el caso del procedimiento 1, pero aún asi los resultados con ese método no habrian variado porque el problema es la cantidad de columnas que se usan. En este caso, vamos a usar todas las columnas de feature_matrix para la imputación, con lo cual el escalado es fundamental.

  • Metodo de ecalado: MinMaxScaler()
  • Matriz Escalada: scaled
  • Columnas base de imputación: todas
  • Método de imputación: IterativeImputer, estimador: KNeighborsRegressor (Vecinos cercanos: 5)-
  • Matriz de entrada: scaled
  • Matriz de salida: scaled_mice

Se re-escalan las variables YearBuilt y BuildingArea su rango original para graficar su distribución:

image image

Los gráficos muestran que al incluir más variables en la imputación, la misma mejora y se acerca a algo más realista. En este caso, el hecho de sumarle información de entrada al KNN permitió mejorar el resultado. No obstante, puede ser que tengamos exceso de información, por lo que probamos sacar algunas columnas en el procedimiento 3.

Procedimiento de imputación 3:

Se procedió exactamente igual que en #2 , solamente que excluimos la variable Suburb, quedándonos una matriz de solo 71 columnas. Probamos las imputaciones, y el resultado parece ser tan bueno como el anterior:

image image

Ejercicio 3: Reducción de dimensionalidad

Se realiza un análisis de Componentes Principales para lo cual se toman solamente las variables numéricas de la matriz scaled_mice del ejercicio anterior. Se excluye la columna PostCode, que en realidad es categórica. De esta manera nos quedan 12 columnas, y el PCA se hace con ese número de componentes.

  • Matriz de entrada (solo variables numéricas) = scaled_mice_numeric
  • Matriz de salida PCA = proyected_features
  • Graficamos las componentes y tomamos las 3 primeras que explican el 65% de la varianza.

image

Ejercicio 4: Composición final del resultado

Se compone un nuevo dataframe con las variables categóricas codificadas, las variables numéricas escaladas y las 3 primeras componentes del PCA. El dataframe resultante se llama processed_melb_df

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published