Preprocesamiento de datos para IA y AA
Antes de empezar
Analyzing Data.ipynb está abierto en Jupyter Notebook.
Nota: Si cerró Jupyter Notebook desde que completó la actividad anterior, deberá reiniciar Jupyter Notebook y volver a abrir el archivo. Para asegurarse de que todos los objetos y la salida de Python están en el estado correcto para comenzar esta actividad:
1. Seleccione Kernel→Reiniciar & y Borrar salida.
2. Seleccione Reiniciar y borrar todas las salidas.
3. Desplácese hacia abajo y seleccione la celda con la etiqueta Identificar los valores faltantes.
4. Seleccione Celda→ Ejecutar todo lo anterior.
Escenario
El conjunto de datos de viviendas ya está en muy buena forma, pero notó un par de problemas que debe abordar. Faltan algunos datos que debe controlar antes que el conjunto de datos pueda usarse para crear un modelo de aprendizaje automático. En lugar de eliminar todos los datos que faltan en conjunto, deberá utilizar un enfoque más preciso y aplicar diferentes métodos a diferentes instancias.
Dado que desea introducir estos datos en algoritmos de aprendizaje automático, también debe asegurarse de que los datos están realmente en una forma que esos algoritmos puedan leer. Muchos algoritmos de aprendizaje automático no pueden abordar características categóricas que usan valores de cadena, por lo que esos valores deben codificarse como números. Convertirá la característica roof_type
mediante la codificación one-hot.
-------------------------------------------------------------------------------------------------------------------------------------------------------------
1. Identifique los valores faltantes.
1. Desplácese hacia abajo y vea la celda titulada Identificar valores faltantes y examine la lista de código debajo de ella.
Esto mostrará el número total de valores faltantes para cada columna.
2. Ejecute la celda de código.
3. Examine el resultado.
Parece que solo dos columnas contienen valores faltantes: price
y bathrooms
.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
2. Identifique el porcentaje de valores faltantes para cada característica.
1. Desplácese hacia abajo y vea la celda titulada Identificar el porcentaje de valores faltantes para cada característica y examine la lista de código debajo de ella.
Otra forma de examinar los valores faltantes es ver qué porcentaje de los datos de esa columna faltan.
2. Ejecute la celda de código.
3. Examine el resultado.
El porcentaje de valores faltantes para ambas entidades es muy bajo. Estos no tendrán un gran impacto, pero los abordará de todos modos.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
3. Asignar valores faltantes para price
.
1. Desplácese hacia abajo y vea la celda titulada Asignar valores de datos faltantes para price
y examine la lista de código debajo de ella.
Este código recuperará una única muestra de una casa con un valor faltante de price
.
2. Ejecute la celda de código.Nota: Dado que sample()
toma una muestra aleatoria del conjunto de datos, es probable que la muestra sea diferente de lo que se muestra en la captura de pantalla.
4. En la siguiente celda de código, examine el código.
Hay muchas maneras de asignar los valores numéricos que faltan, pero la media es un método común. Por lo tanto, en este código, los valores faltantes para price
se completaran con la media de todos los valores que no faltan.
5. Ejecute la celda de código.
La media utilizada para completar los valores faltantes es $540.173,46.
7. En la siguiente celda de código, examine el código.
8. Ejecute la celda de código.
La casa de muestra de antes ahora tiene $540.173,46 como su valor de price
, como se esperaba.
Nota: El número de registro de la muestra debe coincidir con la muestra aleatoria que recuperó anteriormente, que probablemente diferirá de esta captura de pantalla.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
4.Quite todas las filas donde bathrooms
sea nulo (faltante).
1. Desplácese hacia abajo y vea la celda titulada Quitar la fila donde bathrooms
sea nulo y examine la lista de código debajo de ella.
Se esperaría que todas las casas tuvieran al menos un baño, por lo que la presencia de valores faltantes podría indicar daños en los datos. Para estar seguro, deberá eliminar las filas que tengan baños faltantes.
2. Ejecute la celda de código.
Solo a una casa le faltan datos sobre sus baños.
4. En la siguiente celda de código, examine el código.
Este código quitará la fila dañada.
5. Ejecute la celda de código.
6. En la siguiente celda de código, examine el código.
Este código comprobará si hay casas con un valor nulo para los baños para comprobar que eliminó correctamente esa fila.
7. Ejecute la celda de código.
Se quitaron todas las filas dañadas.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
5. Realice una última búsqueda de valores faltantes.
1. Desplácese hacia abajo y vea la celda titulada Buscar más valores faltantes y examine la lista de código debajo de ella.
Solo para estar seguro, deberá realizar una última búsqueda de valores faltantes.
2. Ejecute la celda de código.
No hay más valores faltantes en el conjunto de datos.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
6. Identifique las características categóricas que deben codificarse.
1. Desplácese hacia abajo y vea la celda titulada Identificar características categóricas que deben codificarse y examine la lista de código debajo de ella.
Este código identificará y mostrará las características categóricas de tipo objeto de cadena y su cantidad. Dado que las cadenas contienen texto, no funcionarán bien con los algoritmos de aprendizaje automático, por lo que primero se deben convertir a un tipo de datos numérico.
2. Ejecute la celda de código.
Solo hay una característica categórica que es actualmente un objeto de cadena: roof_type
. Hay otras características categóricas en el conjunto de datos, pero ya se codificaron como valores numéricos.
-------------------------------------------------------------------------------------------------------------------------------------------------------------
7. Codificación one-hot para roof_type
.
1. Desplácese hacia abajo y vea la celda titulada Codificación one-hot para roof_type
y examine la lista de código debajo de ella.
Este código le proporcionará un recordatorio del número de valores de la característica roof_type
.
2. Ejecute la celda de código.
3. Examine el resultado.
Hay 3 tipos de techo en total.
4. En la siguiente celda de código, examine el código.
La característica roof_type
no tiene un orden natural, por lo que es un buen candidato para la codificación one-hot. Cada valor se asignará a su propia característica, donde 0
indica ausencia y 1
indica presencia.
5. Ejecute la celda de código.
6. En la siguiente celda de código, examine el código.
Este código realizará la transformación en sí.
7. Ejecute la celda de código.
8. Examine el resultado.
Puede ver varias columnas nuevas en el conjunto de datos, denominadas roof_type_x
donde x
es uno de los tres valores. Cada fila tiene un 0
en cada columna roof_type_x
excepto una, la cual tiene un valor de 1
. Por ejemplo, la primera casa en el conjunto de datos tiene un techo de asfalto y la segunda tiene un techo de arcilla.
9. En la siguiente celda de código, examine el código.
Este código mostrará las diferentes características del conjunto de datos.
10. Ejecute la celda de código.
11. Examine el resultado.
Aquí hay otra vista de todas las nuevas características.
12. En la siguiente celda de código, examine el código.
13. Ejecute la celda de código.
14. Examine el resultado.
Como se esperaba, se agregaron 3 nuevas columnas. (La columna roof_type
original se eliminó, lo que llevó a una ganancia neta de dos columnas).
-------------------------------------------------------------------------------------------------------------------------------------------------------------
8. Escriba el DataFrame
como un archivo pickle.
1. Desplácese hacia abajo y vea la celda titulada Guardar el DataFrame
como un archivo pickle y examine la lista de código debajo de ella.
Este código guardará los datos de houses_data_encoded
en el archivo houses_data_encoded.pickle
para que pueda usar este DataFrame
de nuevo más adelante en este curso.
2.Ejecute la celda de código.
-------------------------------------------------------------------------------------------------------------------------------------------------------------
9. Cierre este kernel de Jupyter Notebook y la máquina virtual.
1. En Firefox, seleccione la pestaña Analyzing Data.ipynb.
2. En el menú, seleccione Kernel→Cerrar.
3. En el cuadro de diálogo ¿Cerrar kernel?, seleccione Cerrar.
4. Cierre Firefox.
5. Cierre la ventana Terminal que ejecuta el programa Jupyter Notebook.
6. En el menú VirtualBox VM en la parte superior de la pantalla, seleccione Equipo→Apagar ACPI y, si es necesario, seleccione Apagar. Compruebe que la ventana de la VM se cierre.
7. Cierre la ventana Oracle VM VirtualBox Manager.