Concatenar múltiples métodos de extracción de características

Beginner

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

Introducción

En este laboratorio, aprenderemos cómo concatenar múltiples métodos de extracción de características utilizando la biblioteca scikit-learn de Python. Utilizaremos el transformador FeatureUnion para combinar las características obtenidas por PCA y selección univariada. Combinar características utilizando este transformador tiene la ventaja de que permite la validación cruzada y las búsquedas en cuadrícula en todo el proceso.

Consejos sobre la VM

Una vez finalizada la inicialización de la VM, haga clic en la esquina superior izquierda para cambiar a la pestaña Cuaderno y acceder a Jupyter Notebook para practicar.

A veces, es posible que tenga que esperar unos segundos a que Jupyter Notebook termine de cargarse. La validación de las operaciones no se puede automatizar debido a las limitaciones de Jupyter Notebook.

Si tiene problemas durante el aprendizaje, no dude en preguntar a Labby. Deje su retroalimentación después de la sesión y resolveremos rápidamente el problema para usted.

Importar bibliotecas

Comenzaremos importando las bibliotecas necesarias. Utilizaremos las clases Pipeline, FeatureUnion, GridSearchCV, SVC, load_iris, PCA y SelectKBest de 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

Cargar el conjunto de datos

A continuación, cargaremos el conjunto de datos iris utilizando la función load_iris.

iris = load_iris()

X, y = iris.data, iris.target

Extracción de características

Dado que el conjunto de datos iris es de alta dimensión, realizaremos la extracción de características utilizando PCA y selección univariada.

Análisis de Componentes Principales (PCA)

Utilizaremos el PCA para reducir la dimensionalidad del conjunto de datos.

pca = PCA(n_components=2)

Selección Univariada

Utilizaremos la selección univariada para elegir las características más significativas.

selection = SelectKBest(k=1)

Características Combinadas

Combinaremos las características obtenidas a partir del PCA y la selección univariada utilizando el transformador FeatureUnion.

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

Conjunto de Datos Transformado

Utilizaremos las características combinadas para transformar el conjunto de datos.

X_features = combined_features.fit(X, y).transform(X)
print("Combined space has", X_features.shape[1], "features")

Entrenamiento del Modelo

Entrenaremos un modelo de Máquina de Vectores de Soporte (SVM) utilizando el conjunto de datos transformado.

svm = SVC(kernel="linear")

Búsqueda en Grilla

Realizaremos una búsqueda en grilla sobre los hiperparámetros de la tubería utilizando 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_)

Resumen

En este laboratorio, aprendimos cómo concatenar múltiples métodos de extracción de características utilizando la biblioteca scikit - learn de Python. Utilizamos el transformador FeatureUnion para combinar las características obtenidas por PCA y selección univariada. También entrenamos un modelo de Máquina de Vectores de Soporte (SVM) y realizamos una búsqueda en grilla sobre los hiperparámetros de la tubería.