Olá, gostaria de descobrir quais das características utilizada no modelo foram mais relevante no processo de aprendizagem. Poderiam me sugerir alguma estratégia para obter essa informação?
Olá, gostaria de descobrir quais das características utilizada no modelo foram mais relevante no processo de aprendizagem. Poderiam me sugerir alguma estratégia para obter essa informação?
Olá, Inara! Tudo tranquilo com você?
Primeiramente gostaria de pedir desculpas pela demora em te dar um retorno.
Ao consultarmos a documentação do estimador DecisionTreeClassifier nos deparamos com alguns atributos, como o feature_importances_
que nos retorna a importância das features (ou colunas) utilizadas para nosso modelo. Podemos aplicar esse atributo da seguinte forma:
from sklearn.model_selection import GroupKFold
from sklearn.tree import DecisionTreeClassifier
SEED = 301
np.random.seed(SEED)
cv = GroupKFold(n_splits = 10)
modelo = DecisionTreeClassifier(max_depth=2)
results = cross_validate(modelo, x_azar, y_azar, cv = cv, groups = dados.modelo, return_train_score=False)
modelo.fit(x_azar, y_azar)
display(modelo.feature_names_in_)
display(modelo.feature_importances_)
Saída:
array(['preco', 'idade_do_modelo', 'km_por_ano'], dtype=object)
array([0.8478651, 0. , 0.1521349])
O primeiro array retornado são os nomes das features, utilizei o atributo feature_names_in_
para ficar melhor de entender com quais features estamos trabalhando, o segundo array é a sua importância. Vemos que o preço do carro é o fator mais importante, seguido da quilometragem e a feature menos importante é a idade do modelo para determinar se o carro foi vendido ou não.
OBS: Os valores encontrados por você podem diferenciar um pouco dos meus, pois os resultados dependem de onde você executa o código devido a alterações nas variáveis usadas.
Espero ter ajudado, mas se ainda persistir alguma dúvida estou sempre à disposição.
:)