Importancias de píxeles con bosque aleatorio paralelo de árboles

Machine LearningMachine LearningBeginner
Practicar Ahora

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

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, usaremos la librería scikit-learn para entrenar un bosque aleatorio en el conjunto de datos Olivetti Faces y evaluar la importancia de las características basada en la impureza. Usaremos las importancias de las características para crear un mapa de calor de las importancias de los píxeles. También paralelizaremos la construcción y el cálculo de las predicciones dentro de múltiples trabajos.

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 sus comentarios después de la sesión y lo resolveremos rápidamente para usted.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL sklearn(("Sklearn")) -.-> sklearn/CoreModelsandAlgorithmsGroup(["Core Models and Algorithms"]) sklearn(("Sklearn")) -.-> sklearn/UtilitiesandDatasetsGroup(["Utilities and Datasets"]) ml(("Machine Learning")) -.-> ml/FrameworkandSoftwareGroup(["Framework and Software"]) sklearn/CoreModelsandAlgorithmsGroup -.-> sklearn/ensemble("Ensemble Methods") sklearn/UtilitiesandDatasetsGroup -.-> sklearn/datasets("Datasets") ml/FrameworkandSoftwareGroup -.-> ml/sklearn("scikit-learn") subgraph Lab Skills sklearn/ensemble -.-> lab-49131{{"Importancias de píxeles con bosque aleatorio paralelo de árboles"}} sklearn/datasets -.-> lab-49131{{"Importancias de píxeles con bosque aleatorio paralelo de árboles"}} ml/sklearn -.-> lab-49131{{"Importancias de píxeles con bosque aleatorio paralelo de árboles"}} end

Cargar los datos y ajuste del modelo

Comenzamos cargando el conjunto de datos Olivetti Faces y limitando el conjunto de datos para que solo contenga las primeras cinco clases. Luego entrenamos un bosque aleatorio en el conjunto de datos y evaluamos la importancia de las características basada en la impureza. Estableceremos el número de núcleos que se usarán para las tareas.

from sklearn.datasets import fetch_olivetti_faces

## Seleccionamos el número de núcleos que se usarán para realizar el ajuste en paralelo
## del modelo del bosque. `-1` significa usar todos los núcleos disponibles.
n_jobs = -1

## Cargar el conjunto de datos de caras
data = fetch_olivetti_faces()
X, y = data.data, data.target

## Limitar el conjunto de datos a 5 clases.
mask = y < 5
X = X[mask]
y = y[mask]

## Se ajustará un clasificador de bosque aleatorio para calcular las importancias de las características.
from sklearn.ensemble import RandomForestClassifier

forest = RandomForestClassifier(n_estimators=750, n_jobs=n_jobs, random_state=42)

forest.fit(X, y)

Evaluar la importancia de las características

Evaluamos la importancia de las características basada en la disminución media de la impureza (MDI). Las importancias de las características se proporcionan por el atributo ajustado feature_importances_ y se calculan como la media y la desviación estándar de la acumulación de la disminución de la impureza dentro de cada árbol.

import time
import matplotlib.pyplot as plt

start_time = time.time()
img_shape = data.images[0].shape
importances = forest.feature_importances_
elapsed_time = time.time() - start_time

print(f"Elapsed time to compute the importances: {elapsed_time:.3f} seconds")
imp_reshaped = importances.reshape(img_shape)
plt.matshow(imp_reshaped, cmap=plt.cm.hot)
plt.title("Pixel importances using impurity values")
plt.colorbar()
plt.show()

Interpretar el mapa de calor

El mapa de calor muestra las importancias de los píxeles. Cuanto más cálido es el píxel, más importante es. Podemos observar los píxeles importantes que contribuyen a la clasificación del conjunto de datos Olivetti Faces.

Resumen

En este laboratorio, aprendimos cómo entrenar un bosque aleatorio en el conjunto de datos Olivetti Faces y evaluar la importancia de las características basada en la impureza. Creamos un mapa de calor de las importancias de los píxeles y observamos los píxeles importantes que contribuyen a la clasificación del conjunto de datos Olivetti Faces.