Importancia de las Características por Permutación

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, aprenderemos sobre el método de Importancia de Características por Permutación, que es una técnica de inspección de modelos utilizada para determinar la importancia de las características en un modelo predictivo. Esta técnica puede ser especialmente útil para modelos no lineales u opacos que son difíciles de interpretar.

Consejos sobre la VM

Una vez que se haya iniciado 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/ModelSelectionandEvaluationGroup(["Model Selection and Evaluation"]) sklearn(("Sklearn")) -.-> sklearn/UtilitiesandDatasetsGroup(["Utilities and Datasets"]) ml(("Machine Learning")) -.-> ml/FrameworkandSoftwareGroup(["Framework and Software"]) sklearn/CoreModelsandAlgorithmsGroup -.-> sklearn/linear_model("Linear Models") sklearn/ModelSelectionandEvaluationGroup -.-> sklearn/inspection("Inspection") sklearn/UtilitiesandDatasetsGroup -.-> sklearn/datasets("Datasets") ml/FrameworkandSoftwareGroup -.-> ml/sklearn("scikit-learn") subgraph Lab Skills sklearn/linear_model -.-> lab-71127{{"Importancia de las Características por Permutación"}} sklearn/inspection -.-> lab-71127{{"Importancia de las Características por Permutación"}} sklearn/datasets -.-> lab-71127{{"Importancia de las Características por Permutación"}} ml/sklearn -.-> lab-71127{{"Importancia de las Características por Permutación"}} end

Cargar el conjunto de datos

Primero, necesitamos cargar un conjunto de datos que podamos utilizar para entrenar nuestro modelo predictivo. Utilizaremos el conjunto de datos Diabetes de scikit-learn, que contiene información sobre pacientes con diabetes.

from sklearn.datasets import load_diabetes

## Cargar el conjunto de datos Diabetes
diabetes = load_diabetes()

## Dividir los datos en conjuntos de entrenamiento y validación
X_train, X_val, y_train, y_val = train_test_split(diabetes.data, diabetes.target, random_state=0)

Entrenar el modelo

A continuación, entrenaremos un modelo de regresión con los datos de entrenamiento. En este ejemplo, utilizaremos un modelo de regresión Ridge.

from sklearn.linear_model import Ridge

## Entrenar el modelo de regresión Ridge
model = Ridge(alpha=1e-2).fit(X_train, y_train)

Evaluar el modelo

Ahora evaluaremos el modelo entrenado utilizando el conjunto de validación. La métrica de evaluación utilizada aquí es la puntuación R-cuadrado.

## Evaluar el modelo en el conjunto de validación
score = model.score(X_val, y_val)
print("Puntuación de validación:", score)

Calcular la importancia de las características por permutación

Ahora, calcularemos la importancia de las características por permutación utilizando la función permutation_importance de scikit-learn. Esta función toma como entrada el modelo entrenado, el conjunto de validación y el número de veces que se deben permutar las características.

from sklearn.inspection import permutation_importance

## Calcular la importancia de las características por permutación
result = permutation_importance(model, X_val, y_val, n_repeats=30, random_state=0)

## Imprimir las importancias de las características
for i in result.importances_mean.argsort()[::-1]:
    if result.importances_mean[i] - 2 * result.importances_std[i] > 0:
        print(f"{diabetes.feature_names[i]}: {result.importances_mean[i]:.3f} +/- {result.importances_std[i]:.3f}")

Interpretar los resultados

Las importancias de las características calculadas representan la disminución en la puntuación del modelo cuando se baraja aleatoriamente el valor de una sola característica. Las características con un valor de importancia más alto indican que el modelo depende más de esas características para sus predicciones.

En este ejemplo, las principales características que contribuyen más al rendimiento del modelo son "s5", "bmi", "bp" y "sex".

Resumen

En este laboratorio, aprendimos sobre el método de Importancia de Características por Permutación para evaluar la importancia de las características en un modelo predictivo. Recorrimos los pasos de cargar un conjunto de datos, entrenar un modelo, evaluar el modelo, calcular las importancias de las características e interpretar los resultados. Este método puede ser valioso para entender qué características son las más predictivas y en qué medida el modelo depende de cada característica.