Regresión logística en Python – preparación de datos

Para crear un clasificador, debemos preparar los datos en el formato que solicita el módulo de construcción del clasificador. Preparamos los datos realizando Una codificación en caliente

Codificación de datos

Discutiremos brevemente qué entendemos por codificación de datos. Primero ejecutemos el código. Ejecute el siguiente comando en la ventana de código.

In [10]: # creating one hot encoding of the categorical columns.
data = pd.get_dummies(df, columns =['job', 'marital', 'default', 'housing', 'loan', 'poutcome'])

Como dice el comentario, la declaración anterior creará una codificación de datos calientes. Veamos lo que creó. Examine los datos generados llamados «datos» imprimiendo los registros de cabecera en la base de datos.

In [11]: data.head()

Verá el siguiente resultado:

Datos creados

Para comprender los datos anteriores, enumeraremos los nombres de las columnas ejecutando data.columns comando como se muestra a continuación –

In [12]: data.columns
Out[12]: Index(['y', 'job_admin.', 'job_blue-collar', 'job_entrepreneur',
'job_housemaid', 'job_management', 'job_retired', 'job_self-employed', 
'job_services', 'job_student', 'job_technician', 'job_unemployed',
'job_unknown', 'marital_divorced', 'marital_married', 'marital_single', 
'marital_unknown', 'default_no', 'default_unknown', 'default_yes', 
'housing_no', 'housing_unknown', 'housing_yes', 'loan_no',
'loan_unknown', 'loan_yes', 'poutcome_failure', 'poutcome_nonexistent', 
'poutcome_success'], dtype="object")

Ahora explicaremos cómo se realiza una codificación en caliente. get_dummies equipo. La primera columna de la base de datos recién creada es el campo «y», que indica si este cliente está suscrito a TD o no. Ahora echemos un vistazo a las columnas codificadas. Primera columna codificada «Trabajo»… En la base de datos, encontrará que la columna Trabajo tiene muchos significados posibles, como administrador, obrero, empresario, etc. Para cada valor posible, tenemos una nueva columna creada en la base de datos con el nombre de la columna agregado como prefijo.

Por lo tanto, tenemos columnas llamadas «job_admin», «job_blue-collar» y así sucesivamente. Para cada campo codificado en nuestra base de datos de origen, encontrará una lista de las columnas agregadas a la base de datos creada, con todos los valores posibles que la columna toma en la base de datos de origen. Observe de cerca la lista de columnas para comprender cómo se muestran los datos en la nueva base de datos.

Comprender la visualización de datos

Para comprender los datos generados, imprimamos todos los datos usando el comando de datos. La salida parcial después de ejecutar el comando se muestra a continuación.

In [13]: data

Comprender la visualización de datos

La pantalla de arriba muestra las primeras doce filas. Si se desplaza más hacia abajo, puede ver que la coincidencia se realiza para todas las filas.

Aquí se muestra una salida de pantalla parcial debajo de la base de datos para su referencia rápida.

Referencia rápida

Para comprender los datos mapeados, veamos la primera línea.

Datos mapeados

Esto indica que este cliente no se ha suscrito a TD, lo que se indica mediante el valor en el campo «y». También indica que este comprador es obrero. Desplazándose horizontalmente hacia abajo en la página, verá que tiene una «casa» y no pidió un «préstamo».

Después de esta codificación en caliente, necesitamos un procesamiento de datos adicional antes de que podamos comenzar a construir nuestro modelo.

Descartando lo «desconocido»

Si examinamos las columnas en la base de datos asignada, encontrará que hay varias columnas que terminan en «desconocido». Por ejemplo, verifique la columna en el índice 12 con el siguiente comando que se muestra en la captura de pantalla:

In [14]: data.columns[12]
Out[14]: 'job_unknown'

Esto indica que se desconoce el trabajo para el cliente especificado. Obviamente, no tiene sentido incluir tales columnas en nuestro análisis y construcción de modelos. Por lo tanto, debe descartar todas las columnas con un valor «desconocido». Esto se hace usando el siguiente comando:

In [15]: data.drop(data.columns[[12, 16, 18, 21, 24]], axis=1, inplace=True)

Asegúrese de proporcionar los números de columna correctos. En caso de duda, puede verificar el nombre de la columna en cualquier momento especificando su índice en el comando de columnas como se describió anteriormente.

Después de eliminar las columnas no deseadas, puede examinar la lista final de columnas como se muestra en el resultado a continuación:

In [16]: data.columns
Out[16]: Index(['y', 'job_admin.', 'job_blue-collar', 'job_entrepreneur', 
'job_housemaid', 'job_management', 'job_retired', 'job_self-employed', 
'job_services', 'job_student', 'job_technician', 'job_unemployed',
'marital_divorced', 'marital_married', 'marital_single', 'default_no', 
'default_yes', 'housing_no', 'housing_yes', 'loan_no', 'loan_yes',
'poutcome_failure', 'poutcome_nonexistent', 'poutcome_success'], 
dtype="object")

En este punto, nuestros datos están listos para construir un modelo.

🚫