Regressão logística em Python - preparação de dados

Para criar o classificador, devemos preparar os dados em um formato que é solicitado pelo módulo de construção do classificador. Preparamos os dados fazendoOne Hot Encoding.

Dados de codificação

Discutiremos em breve o que queremos dizer com codificação de dados. Primeiro, vamos executar o código. Execute o seguinte comando na janela 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 diz o comentário, a instrução acima criará a única codificação quente dos dados. Vamos ver o que isso criou? Examine os dados criados chamados“data” imprimindo os registros de cabeça no banco de dados.

In [11]: data.head()

Você verá a seguinte saída -

Para entender os dados acima, listaremos os nomes das colunas executando o data.columns comando como mostrado abaixo -

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')

Agora, vamos explicar como uma codificação quente é feita pelo get_dummiescomando. A primeira coluna no banco de dados recém-gerado é o campo “y” que indica se este cliente se inscreveu em um TD ou não. Agora, vejamos as colunas que estão codificadas. A primeira coluna codificada é“job”. No banco de dados, você descobrirá que a coluna “emprego” tem muitos valores possíveis, como “admin”, “operário”, “empresário” e assim por diante. Para cada valor possível, temos uma nova coluna criada no banco de dados, com o nome da coluna anexado como um prefixo.

Portanto, temos colunas chamadas “job_admin”, “job_blue-collar” e assim por diante. Para cada campo codificado em nosso banco de dados original, você encontrará uma lista de colunas adicionadas no banco de dados criado com todos os valores possíveis que a coluna assume no banco de dados original. Examine cuidadosamente a lista de colunas para entender como os dados são mapeados para um novo banco de dados.

Compreendendo o mapeamento de dados

Para entender os dados gerados, vamos imprimir todos os dados usando o comando data. A saída parcial após a execução do comando é mostrada abaixo.

In [13]: data

A tela acima mostra as primeiras doze linhas. Se você rolar mais para baixo, verá que o mapeamento é feito para todas as linhas.

Uma saída de tela parcial mais abaixo no banco de dados é mostrada aqui para sua referência rápida.

Para entender os dados mapeados, vamos examinar a primeira linha.

Diz que este cliente não assinou TD conforme indicado pelo valor no campo “y”. Também indica que esse cliente é um cliente “operário”. Rolando para baixo horizontalmente, ele dirá que ele tem uma “habitação” e não fez nenhum “empréstimo”.

Depois dessa codificação, precisamos de mais processamento de dados antes de começar a construir nosso modelo.

Abandonando o “desconhecido”

Se examinarmos as colunas no banco de dados mapeado, você encontrará a presença de algumas colunas terminando em “desconhecido”. Por exemplo, examine a coluna no índice 12 com o seguinte comando mostrado na captura de tela -

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

Isso indica que o trabalho para o cliente especificado é desconhecido. Obviamente, não há sentido em incluir essas colunas em nossa análise e construção de modelo. Portanto, todas as colunas com o valor “desconhecido” devem ser descartadas. Isso é feito com o seguinte comando -

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

Certifique-se de especificar os números de coluna corretos. Em caso de dúvida, você pode examinar o nome da coluna a qualquer momento, especificando seu índice no comando de colunas, conforme descrito anteriormente.

Depois de descartar as colunas indesejadas, você pode examinar a lista final de colunas conforme mostrado na saída abaixo -

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')

Neste ponto, nossos dados estão prontos para a construção do modelo.