Desvendando a Importância das Features em Data Science

Uma tarefa simples que ajuda a compeender melhor o seu modelo de machine learning

Bernardo Lago
Let’s Data
4 min readDec 4, 2023

--

Imagem: DALL•E

Neste artigo, exploraremos um conceito crucial neste campo: a “Feature Importance”. Este artigo é para iniciantes e em Data Science que já dão os seus primeiros passos em modelagem e querem aprofundar nos resultados dos modelos.

O Que é Feature Importance?

Imagine um cenário onde você tem inúmeras variáveis, mas nem todas são igualmente importantes para o resultado de seu modelo. Aqui entra a “Feature Importance”. É a técnica de avaliar e classificar as variáveis de um conjunto de dados com base na influência que exercem na variável alvo de um modelo preditivo. Compreender a “Feature Importance” ajuda a simplificar modelos, melhorar a eficiência e, o mais importante, aumentar a compreensão dos dados.

Técnicas Comuns de Feature Importance

Análise de Coeficientes em Modelos Lineares

Em modelos lineares, como a regressão linear, os coeficientes atribuídos às variáveis podem ser interpretados como medidas de importância. Um coeficiente alto implica uma forte influência na variável dependente. Por exemplo:

from sklearn.linear_model import LogisticRegression
from sklearn.datasets import load_iris
import matplotlib.pyplot as plt
import pandas as pd

# Loading the Iris dataset
iris = load_iris()
X = pd.DataFrame(iris.data, columns=iris.feature_names)
y = iris.target

# Adjusting the logistic regression model
model = LogisticRegression(max_iter=200)
model.fit(X, y)

# Visualizing the importance of features
coefficients = pd.Series(model.coef_[0], index=X.columns)
coefficients.plot(kind='barh')
plt.title('Feature Importance in Logistic Regression Model')
plt.xlabel('Coefficient')
plt.ylabel('Feature')
plt.show()

No exemplo de regressão logística que usamos com o conjunto de dados Iris, observamos a importância de cada feature através dos coeficientes do modelo. A regressão logística, sendo um modelo linear, atribui um peso ou coeficiente a cada feature, que pode ser interpretado como sua importância relativa.

No gráfico gerado, podemos ver claramente quais features têm maior peso. Por exemplo, se a “largura da pétala” (petal width) tem o coeficiente mais alto, isso indica que ela tem a maior influência na determinação da classe da íris. Isso faz sentido, pois na biologia da íris, a largura e o comprimento da pétala são características distintivas entre as espécies.

É importante notar que coeficientes altos podem representar tanto uma influência positiva quanto negativa, dependendo do sinal do coeficiente. Um coeficiente positivo indica que quanto maior o valor da feature, maior será o impacto na variável dependente, enquanto um coeficiente negativo sugere o contrário.

Esta análise nos ajuda a entender não apenas quais features são importantes, mas também como elas influenciam a previsão do modelo.

Importância das Features em Árvores de Decisão

Árvores de decisão e modelos baseados em árvores, como random forest, oferecem um insight direto sobre a importância das features. Estes modelos fornecem uma pontuação para cada feature, indicando sua utilidade na construção das árvores. Por exemplo:

from sklearn.ensemble import RandomForestClassifier
from sklearn.datasets import load_iris
import pandas as pd
import matplotlib.pyplot as plt

# Carregando o conjunto de dados Iris
iris = load_iris()
X = pd.DataFrame(iris.data, columns=iris.feature_names)
y = iris.target

# Criando e treinando o modelo de floresta aleatória
modelo = RandomForestClassifier(n_estimators=100)
modelo.fit(X, y)

# Visualizando a importância das features
importancias = pd.Series(modelo.feature_importances_, index=X.columns)
importancias.nlargest(4).plot(kind='barh')
plt.title('Importância das Features no Random Forest')
plt.show()

No exemplo usando o modelo Random Forest, a importância das features é determinada com base em quão úteis elas são para a construção das árvores de decisão. Diferente da regressão logística, esta técnica não se baseia em coeficientes lineares, mas sim na eficácia de cada feature em reduzir a impureza das árvores.

O gráfico mostra que certas features, como “comprimento da pétala” (petal length) e “largura da pétala” (petal width), são mais significativas para o modelo. Estas features provavelmente fornecem as divisões mais informativas e ajudam o modelo a diferenciar eficazmente entre as classes.

Essa análise é crucial para entender como o modelo está tomando suas decisões e quais características dos dados estão mais fortemente associadas às diferentes categorias de íris. Isso também pode guiar futuras coletas de dados e a preparação de features, priorizando aquelas que são mais informativas para o modelo.

Aplicações Importantes

Feature importance pode ser aplicado para feature selection, que é a seleção de features que vão ser utilizadas para um modelo. Assim é possível determinar as variáveis mais importantes e otimizar o modelo, ou até mesmo experimentar novas opções de features.

Outra é a interpretação do modelo, ajudando o cientista de dados a explicar melhor as variáveis mais importantes e mais relevantes ao modelo, ou até mesmo ao produto ou negócio que na empresa que ele trabalha. Dessa forma é possível até em eventuais casos, ajudar outras equipes a entender melhor que tipo de informação é crucial para o desenvolvimento do negócio.

Considerações Finais

“Feature Importance” é uma ferramenta valiosa no arsenal de qualquer cientista de dados. Não só melhora a performance dos modelos, como também proporciona insights mais profundos sobre os dados. Recomendamos aos leitores que apliquem essas técnicas em seus próprios projetos para uma compreensão mais prática e aprofundada.

Nos ajude a te ajudar!

Se você gostou deste artigo e quer apoiar o Let’s Data, dê uns claps! E você pode fazer isso mais de uma vez, que tal uns 15?

Deixe um comentário dizendo o que acha deste assunto!

--

--

Bernardo Lago
Let’s Data

Data Scientist at NielsenIQ. Cofounder at Let’s Data