Importância de Permutação de Características

Beginner

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

Introdução

Neste laboratório, aprenderemos sobre o método de Importância de Recursos por Permutação, uma técnica de inspeção de modelos usada para determinar a importância de recursos em um modelo preditivo. Esta técnica pode ser especialmente útil para modelos não lineares ou opacos que são difíceis de interpretar.

Dicas da Máquina Virtual

Após o início da VM, clique no canto superior esquerdo para mudar para a aba Notebook para acessar o Jupyter Notebook para praticar.

Às vezes, pode ser necessário aguardar alguns segundos para que o Jupyter Notebook termine de carregar. A validação de operações não pode ser automatizada devido a limitações no Jupyter Notebook.

Se você enfrentar problemas durante o aprendizado, sinta-se à vontade para perguntar ao Labby. Forneça feedback após a sessão e resolveremos o problema para você rapidamente.

Carregar o conjunto de dados

Primeiro, precisamos carregar um conjunto de dados que podemos usar para treinar nosso modelo preditivo. Usaremos o conjunto de dados Diabetes do scikit-learn, que contém informações sobre pacientes com diabetes.

from sklearn.datasets import load_diabetes

## Carregar o conjunto de dados Diabetes
diabetes = load_diabetes()

## Dividir os dados em conjuntos de treinamento e validação
X_train, X_val, y_train, y_val = train_test_split(diabetes.data, diabetes.target, random_state=0)

Treinar o modelo

Em seguida, treinaremos um modelo de regressão nos dados de treinamento. Neste exemplo, usaremos um modelo de regressão Ridge.

from sklearn.linear_model import Ridge

## Treinar o modelo de regressão Ridge
model = Ridge(alpha=1e-2).fit(X_train, y_train)

Avaliar o modelo

Agora, avaliaremos o modelo treinado usando o conjunto de validação. A métrica de avaliação usada aqui é o coeficiente de determinação (R-quadrado).

## Avaliar o modelo no conjunto de validação
score = model.score(X_val, y_val)
print("Score de validação:", score)

Calcular a importância da permutação das características

Agora, calcularemos a importância da permutação das características usando a função permutation_importance do scikit-learn. Esta função recebe como entrada o modelo treinado, o conjunto de validação e o número de vezes que as características devem ser permutadas.

from sklearn.inspection import permutation_importance

## Calcular a importância da permutação das características
result = permutation_importance(model, X_val, y_val, n_repeats=30, random_state=0)

## Imprimir as importâncias das 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 os resultados

As importâncias das características calculadas representam a diminuição do desempenho do modelo quando o valor de uma única característica é aleatoriamente embaralhado. Características com um valor de importância mais elevado indicam que o modelo depende mais fortemente dessas características para suas previsões.

Neste exemplo, as principais características que mais contribuem para o desempenho do modelo são "s5", "bmi", "bp" e "sex".

Resumo

Neste laboratório, aprendemos sobre o método de Importância de Permutação de Características para avaliar a importância das características num modelo preditivo. Percorremos as etapas de carregar um conjunto de dados, treinar um modelo, avaliar o modelo, calcular as importâncias das características e interpretar os resultados. Este método pode ser valioso para compreender quais as características mais preditivas e em que medida o modelo depende de cada característica.