Pré -processamento em Sklearn

Pré -processamento em Sklearn
O pré -processamento de dados, uma fase crucial na mineração de dados, pode ser definida como alterar ou soltar dados antes do uso para garantir ou aumentar o desempenho. A preparação de dados envolve vários procedimentos, como análise de dados exploratórios, remoção de informações desnecessárias e adicionando informações necessárias. Falaremos sobre pré -processamento de dados e como ele é usado no Sklearn neste artigo.

O que é processamento de dados?

O pré -processamento de dados é um estágio crítico no aprendizado de máquina que melhora a qualidade dos dados para incentivar a extração de informações valiosas dos dados. A preparação de dados no aprendizado de máquina é o processo de preparar os dados brutos (limpando e organizando) para ser usado para criar e treinar modelos de aprendizado de máquina. O pré -processamento de dados no aprendizado de máquina é, para simplificar, uma abordagem de mineração de dados que converte dados brutos em um formato que é legível e inteligível.

Por que precisamos de pré -processamento de dados?

Os dados do mundo real freqüentemente carecem de valores ou tendências de atributos específicos e são frequentemente inconsistentes, errôneos (contém erros ou outliers) e incompletos. A preparação dos dados entra em jogo nessa situação porque ajuda a limpar, formatar e organizar os dados brutos, preparando -os para uso por modelos de aprendizado de máquina.

O pré -processamento de dados lida com o seguinte:

  • Dados ausentes: Remover, correto e imputar
  • Recursos de engenharia: extrapolar novos recursos de dados brutos.
  • Formatação de dados: os dados podem não estar disponíveis no formato desejado. Por exemplo, é um arquivo de texto simples que precisamos converter em um quadro de dados.
  • Normalização dos dados: nem todos os dados podem estar em forma normalizada. Portanto, escalamos para o intervalo dado para fins de eficiência
  • Decomposição: removendo dados redundantes para aprimorar o desempenho

Padrões para a API Scikit-Learn

Existem várias especificações para o tipo de dados que o Sklearn processará.

  • Valores constantes (sem variáveis ​​categóricas).
  • Nenhum valores está faltando.
  • Cada coluna deve conter uma variável preditora diferente.
  • Cada linha deve conter uma observação de recurso.
  • Deve haver tantos rótulos para cada recurso quanto observações.

Implementando o pré -processamento Sklearn

Importando as bibliotecas e dados

# Importando as bibliotecas e aulas
De Sklearn Import SVM, conjuntos de dados
importar pandas como PD
de Sklearn.Importar Importar SimpleImputer
de Sklearn.Pré -processamento Standardcaler
de Sklearn.Pré -processamento Importar OneHotencoder
# carregando o conjunto de dados da íris
dados = conjuntos de dados.load_iris ()
df = pd.Dataframe (dados = dados.dados, colunas = dados.feste_names)

Carregando as 5 primeiras linhas dos dados

df.cabeça()

Saída

comprimento sépico (cm) largura sépica (cm) comprimento de pétala (cm) largura da pétala (cm)
0 5.1 3.5 1.4 0.2
1 4.9 3.0 1.4 0.2
2 4.7 3.2 1.3 0.2
3 4.6 3.1 1.5 0.2
4 5.0 3.6 1.4 0.2

Obtendo informações sobre tipos e valores nulos

df.info ()

Saída

RangeIndex: 150 entradas, 0 a 149
Colunas de dados (total de 4 colunas):
# Coluna não nula contagem dtype
--- ------ -------------- -----
0 Comprimento da Sépala (cm) 150 Float não nulo64
1 largura sépica (cm) 150 Float não nulo64
2 comprimento de pétala (cm) 150 Float não nulo64
3 largura da pétala (cm) 150 Float64 não nulo64
Dtypes: float64 (4)

Preencher os valores ausentes do quadro de dados usando Sklearn:

Imputer = SimpleImputer (estratégia = 'média')
df ['largura sépica (cm)'] = imputador.fit_transform (df [['largura sépica (cm)']])

Podemos iterar todas as colunas para executar esta tarefa em todas as colunas.

Escalando os dados usando o scaler padrão

Scaler = StandardsCaler ()
Scaler.FIT (DF)
# transformando os dados
Scaler.Transform (df) [: 10]

Saída

Array ([[-0.90068117, 1.01900435, -1.34022653, -1.3154443],
[-1.14301691, -0.13197948, -1.34022653, -1.3154443],
[-1.38535265, 0.32841405, -1.39706395, -1.3154443],
[-1.50652052, 0.09821729, -1.2833891, -1.3154443],
[-1.02184904, 1.24920112, -1.34022653, -1.3154443],
[-0.53717756, 1.93979142, -1.16971425, -1.05217993],
[-1.50652052, 0.78880759, -1.34022653, -1.18381211],
[-1.02184904, 0.78880759, -1.2833891, -1.3154443],
[-1.74885626, -0.36217625, -1.34022653, -1.3154443],
[-1.14301691, 0.09821729, -1.2833891, -1.44707648]])

Uma codificação quente

coder = OneHotencoder (handle_unknown = 'ignorar')
X = [['a', 1], ['b', 3], ['b', 2]]
codificador.ajuste (x)
Imprimir (codificador.categorias_)
codificador.Transform (x).ToArray ()

Saída

[Array (['a', 'b'], dtype = objeto), array ([1, 2, 3], dtype = objeto)]
Array ([[1., 0., 1., 0., 0.],
[0., 1., 0., 0., 1.],
[0., 1., 0., 1., 0.]])

Conclusão

Discutimos o pré -processamento e sua implementação na Biblioteca Sklearn Python neste artigo. Para facilitar a extração de informações úteis dos dados, o pré -processamento de dados é uma etapa crucial no aprendizado de máquina. Aumenta a qualidade dos dados. Então, discutimos a implementação em Sklearn. Primeiro recuperamos informações sobre dados, incluindo os valores e tipos de dados ausentes e depois preenchimos os valores ausentes. Também trabalhamos para escalar os dados e uma codificação a quente.