Add preprocessing section to summary
This commit is contained in:
parent
bb67366284
commit
df3461e7fe
|
@ -75,15 +75,14 @@ def parse_data(source, action):
|
||||||
return test_data, target_data
|
return test_data, target_data
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
#+RESULTS:
|
|
||||||
|
|
||||||
A continuación, mostraremos cada uno de los pasos que realizamos para obtener el /dataset/ final:
|
A continuación, mostraremos cada uno de los pasos que realizamos para obtener el /dataset/ final:
|
||||||
|
|
||||||
*** Valores nulos:
|
*** Valores nulos
|
||||||
|
|
||||||
Nuestro /dataset/ contiene valores nulos, representados mediante un signo de interrogación (?). Optamos por evaluar 2 estrategias:
|
Nuestro /dataset/ contiene valores nulos, representados mediante un signo de interrogación (?). Optamos por evaluar 2 estrategias:
|
||||||
|
|
||||||
1. Eliminar los valores nulos
|
**** Eliminar los valores nulos
|
||||||
|
|
||||||
#+BEGIN_SRC python
|
#+BEGIN_SRC python
|
||||||
df = read_csv(filepath_or_buffer="../data/mamografia.csv", na_values="?")
|
df = read_csv(filepath_or_buffer="../data/mamografia.csv", na_values="?")
|
||||||
|
@ -94,7 +93,6 @@ print("DataFrame sin preprocesamiento: ")
|
||||||
print(processed_df.describe())
|
print(processed_df.describe())
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
#+RESULTS:
|
|
||||||
#+begin_example
|
#+begin_example
|
||||||
DataFrame sin preprocesamiento:
|
DataFrame sin preprocesamiento:
|
||||||
BI-RADS Age Margin Density
|
BI-RADS Age Margin Density
|
||||||
|
@ -120,7 +118,7 @@ max 6.000000 96.000000 5.000000 4.000000
|
||||||
|
|
||||||
Observamos que el número de instancias disminuye considerablemente, hasta un máximo de 112, en el caso del /BI-RADS/. Aún así, los valores de la media y desviación estándar no se ven afectados de forma considerable.
|
Observamos que el número de instancias disminuye considerablemente, hasta un máximo de 112, en el caso del /BI-RADS/. Aún así, los valores de la media y desviación estándar no se ven afectados de forma considerable.
|
||||||
|
|
||||||
2. Imputar su valor con la media
|
**** Imputar su valor con la media
|
||||||
|
|
||||||
#+BEGIN_SRC python
|
#+BEGIN_SRC python
|
||||||
df = read_csv(filepath_or_buffer="../data/mamografia.csv", na_values="?")
|
df = read_csv(filepath_or_buffer="../data/mamografia.csv", na_values="?")
|
||||||
|
@ -131,7 +129,6 @@ print("DataFrame sin preprocesamiento: ")
|
||||||
print(processed_df.describe())
|
print(processed_df.describe())
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
#+RESULTS:
|
|
||||||
#+begin_example
|
#+begin_example
|
||||||
DataFrame sin preprocesamiento:
|
DataFrame sin preprocesamiento:
|
||||||
BI-RADS Age Margin Density
|
BI-RADS Age Margin Density
|
||||||
|
@ -156,3 +153,53 @@ max 6.000000 96.000000 5.000000 4.000000
|
||||||
#+end_example
|
#+end_example
|
||||||
|
|
||||||
Esta alternativa nos permite mantener el número de instancias en todas las columnas, sin alterar la media ni la desviación típica.
|
Esta alternativa nos permite mantener el número de instancias en todas las columnas, sin alterar la media ni la desviación típica.
|
||||||
|
|
||||||
|
*** Valores no númericos
|
||||||
|
|
||||||
|
La mayoría de algoritmos de aprendizaje automática trabaja con datos numéricos, desafortunadamente nuestro /dataset/ contiene dos columnas con datos descriptivos.
|
||||||
|
|
||||||
|
Procedemos a convertirlos en valores numéricos mediante un /LabelEncoder/:
|
||||||
|
|
||||||
|
#+begin_src python
|
||||||
|
encoded_df = encode_columns(df=processed_df)
|
||||||
|
print(encoded_df.head())
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
#+begin_example
|
||||||
|
BI-RADS Age Shape Margin Density Severity
|
||||||
|
0 5.0 67.0 1 5.0 3.000000 1
|
||||||
|
1 4.0 43.0 4 1.0 2.910734 1
|
||||||
|
2 5.0 58.0 0 5.0 3.000000 1
|
||||||
|
3 4.0 28.0 4 1.0 3.000000 0
|
||||||
|
4 5.0 74.0 4 5.0 2.910734 1
|
||||||
|
#+end_example
|
||||||
|
|
||||||
|
Vemos como las columnas *Shape* y *Severity* se componen ahora únicamente de valores numéricos.
|
||||||
|
*** Separación de datos
|
||||||
|
|
||||||
|
Como último paso, separamos la columna objetivo de los demás datos.
|
||||||
|
|
||||||
|
#+begin_src python
|
||||||
|
test_data, target_data = split_train_target(df=encoded_df)
|
||||||
|
print("Datos de entrenamiento: ")
|
||||||
|
print(test_data.head())
|
||||||
|
print("Datos objetivo: ")
|
||||||
|
print(target_data.head())
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
#+begin_example
|
||||||
|
Datos de entrenamiento:
|
||||||
|
BI-RADS Age Shape Margin Density
|
||||||
|
0 5.0 67.0 1 5.0 3.000000
|
||||||
|
1 4.0 43.0 4 1.0 2.910734
|
||||||
|
2 5.0 58.0 0 5.0 3.000000
|
||||||
|
3 4.0 28.0 4 1.0 3.000000
|
||||||
|
4 5.0 74.0 4 5.0 2.910734
|
||||||
|
Datos objetivo:
|
||||||
|
0 1
|
||||||
|
1 1
|
||||||
|
2 1
|
||||||
|
3 0
|
||||||
|
4 1
|
||||||
|
Name: Severity, dtype: int64
|
||||||
|
#+end_example
|
||||||
|
|
BIN
docs/Summary.pdf
BIN
docs/Summary.pdf
Binary file not shown.
Loading…
Reference in New Issue