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.