Concatenando Múltiplos Métodos de Extração de Características

Beginner

This tutorial is from open-source community. Access the source code

Introdução

Neste laboratório, aprenderemos a concatenar múltiplos métodos de extração de características utilizando a biblioteca scikit-learn do Python. Usaremos o transformador FeatureUnion para combinar características obtidas por PCA e seleção univariada. Combinar características usando este transformador tem a vantagem de permitir a validação cruzada e buscas em grade sobre todo o processo.

Dicas da Máquina Virtual

Após o arranque da máquina virtual, clique no canto superior esquerdo para mudar para a aba Notebook para aceder ao Jupyter Notebook para a prática.

Por vezes, pode ser necessário esperar alguns segundos para o Jupyter Notebook terminar de carregar. A validação das operações não pode ser automatizada devido a limitações no Jupyter Notebook.

Se tiver problemas durante o aprendizado, não hesite em contactar o Labby. Forneça feedback após a sessão e resolveremos o problema rapidamente para si.

Importar Bibliotecas

Começaremos importando as bibliotecas necessárias. Usaremos as classes Pipeline, FeatureUnion, GridSearchCV, SVC, load_iris, PCA e SelectKBest do scikit-learn.

from sklearn.pipeline import Pipeline, FeatureUnion
from sklearn.model_selection import GridSearchCV
from sklearn.svm import SVC
from sklearn.datasets import load_iris
from sklearn.decomposition import PCA
from sklearn.feature_selection import SelectKBest

Carregar o Conjunto de Dados

Em seguida, carregaremos o conjunto de dados iris usando a função load_iris.

iris = load_iris()

X, y = iris.data, iris.target

Extração de Recursos

Como o conjunto de dados iris é de alta dimensionalidade, realizaremos a extração de recursos usando PCA e seleção univariada.

PCA

Usaremos PCA para reduzir a dimensionalidade do conjunto de dados.

pca = PCA(n_components=2)

Seleção Univariada

Usaremos seleção univariada para selecionar as características mais significativas.

selection = SelectKBest(k=1)

Recursos Combinados

Combinaremos os recursos obtidos do PCA e da seleção univariada usando o transformador FeatureUnion.

combined_features = FeatureUnion([("pca", pca), ("univ_select", selection)])

Conjunto de Dados Transformado

Usaremos os recursos combinados para transformar o conjunto de dados.

X_features = combined_features.fit(X, y).transform(X)
print("O espaço combinado tem", X_features.shape[1], "recursos")

Treinamento do Modelo

Treinaremos um modelo de máquina de vetores de suporte (SVM) usando o conjunto de dados transformado.

svm = SVC(kernel="linear")

Busca em Grade

Realizaremos uma busca em grade sobre os hiperparâmetros do pipeline usando GridSearchCV.

pipeline = Pipeline([("features", combined_features), ("svm", svm)])

param_grid = dict(
    features__pca__n_components=[1, 2, 3],
    features__univ_select__k=[1, 2],
    svm__C=[0.1, 1, 10],
)

grid_search = GridSearchCV(pipeline, param_grid=param_grid, verbose=10)
grid_search.fit(X, y)
print(grid_search.best_estimator_)

Resumo

Neste laboratório, aprendemos como concatenar múltiplos métodos de extração de características usando a biblioteca scikit-learn do Python. Usamos o transformador FeatureUnion para combinar características obtidas por PCA e seleção univariada. Também treinamos um modelo de máquina de vetores de suporte (SVM) e realizamos uma busca em grade sobre os hiperparâmetros do pipeline.