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.

ūüöę