Desvendando a Importância das Features em Data Science
Uma tarefa simples que ajuda a compeender melhor o seu modelo de machine learning
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!