Conteúdo do Curso
Pré-processamento de Dados
Pré-processamento de Dados
Realização
Agora você tem uma ideia do que inclui o engenheiro de recursos. Vamos avançar para a implementação prática e observar o pipeline completo em ação.
Neste exemplo, demonstraremos todos os pipelines em um único programa para pré-processamento de dados usando o famoso conjunto de dados iris. Prepararemos os dados, extrairemos características, selecionaremos as características mais relevantes, criaremos novas características, normalizaremos e padronizaremos as características, mesclaremos as características, avaliaremos sua qualidade, realizaremos as características e as integraremos para uso em um modelo de aprendizado de máquina.
-
Preparação de dados: utilizaremos o conjunto de dados iris da biblioteca
scikit-learn
, que já está pré-processado e limpo. -
Leitura de características: utilizaremos as seguintes características do conjunto de dados:
Comprimento da sépala
,Largura da sépala
,Comprimento da pétala
,Largura da pétala
. -
Seleção de características: utilizaremos o método SelectKBest do
scikit-learn
para selecionar as 2 características mais relevantes com base em sua pontuação de informação mútua. -
Criação de características: criaremos uma nova característica chamada
'Razão Sépala para Pétala'
dividindo o comprimento da sépala pelo comprimento da pétala. -
Padronização: utilizaremos o método StandardScaler do
scikit-learn
para escalar as características selecionadas. -
Fusão de características: mesclaremos as características selecionadas e recém-criadas em um único array.
-
Avaliação de características: avaliaremos a qualidade das características calculando seus coeficientes de correlação. Características com alta correlação são mais dependentes linearmente e, portanto, têm quase o mesmo efeito na variável dependente. Então, quando duas características têm alta correlação, podemos descartar uma das duas.
-
Integração e uso: finalmente, integraremos as características realizadas em um modelo de aprendizado de máquina para classificação.
Note que existe uma diferença entre seleção de características e criação de características: seleção de características refere-se ao processo de selecionar um subconjunto das características disponíveis em um conjunto de dados que seja mais relevante ou informativo para uma determinada tarefa de aprendizado de máquina. Criação de características, por outro lado, envolve gerar novas características a partir das existentes a fim de capturar relações mais complexas ou abstratas entre elas.
# Import libraries from sklearn.datasets import load_iris from sklearn.feature_selection import SelectKBest, mutual_info_classif from sklearn.preprocessing import StandardScaler import numpy as np # Load dataset iris = load_iris() # Read features X = iris.data sepal_length = X[:, 0] sepal_width = X[:, 1] petal_length = X[:, 2] petal_width = X[:, 3] # Create new features sepal_to_petal_ratio = sepal_length / petal_length sepal_to_petal_ratio = np.reshape(sepal_to_petal_ratio, (-1, 1)) sepal_area = sepal_length * sepal_width petal_area = petal_length * petal_width ratio_sepal = sepal_length / sepal_width ratio_petal = petal_length / petal_width # Feature selection kbest = SelectKBest(mutual_info_classif, k=2) X_new = kbest.fit_transform(X, iris.target) # Feature creation X_new = np.hstack((X_new, sepal_to_petal_ratio)) # Scaling scaler = StandardScaler() X_new = scaler.fit_transform(X_new) # Feature merging X_new = np.hstack((X_new, sepal_area.reshape(-1, 1))) X_new = np.hstack((X_new, petal_area.reshape(-1, 1))) X_new = np.hstack((X_new, ratio_sepal.reshape(-1, 1))) X_new = np.hstack((X_new, ratio_petal.reshape(-1, 1))) # Feature evaluation correlation_matrix = np.corrcoef(X_new.T) print('Correlation Matrix:') print(correlation_matrix) X_new = np.array(X_new, np.float32) # Integration and usage # The realized features can now be used in a machine learning model for classification
Obrigado pelo seu feedback!