XGboost - Choix fait par modèle


10

J'utilise XGboost pour prédire une variable cible 2 classes sur les demandes d'assurance. J'ai un modèle (formation avec validation croisée, réglage d'hyper paramètres etc ...) que je lance sur un autre jeu de données.

Ma question est :

existe-t-il un moyen de savoir pourquoi une revendication donnée a été affectée à une classe, c'est-à-dire les caractéristiques qui expliquent le choix fait par le modèle?

Le but est de pouvoir justifier le choix fait par la machine à un tiers humain.

Merci pour votre réponse.

Réponses:


7

Je vous suggère d'opter pour Shap . Il utilise les valeurs de Shapley (concept emprunté à la théorie des jeux) pour décrire le comportement du modèle, et avec cela il peut expliquer une seule prédiction.

Son interface graphique utilise des tracés de force, comme celui que vous voyez ci-dessous. entrez la description de l'image ici

La barre rouge est construite par les caractéristiques qui mènent la prédiction à des valeurs positives, et la bleue par les autres.

Dans votre cas (un classifieur), le nombre en gras sera celui juste avant la fonction sigmoïde qui limitera la valeur de sortie entre zéro et un (une classe ou l'autre). Alors n'ayez pas peur si dans certains cas, il sera supérieur à un ou négatif.

La taille des segments représente la contribution de cette caractéristique à la prédiction, et sous les segments, vous voyez le nom de la caractéristique (ex. LSTAT) et sa valeur réelle (ex. 4,98). Ainsi, dans ce cas, LSTAT est la caractéristique moyenne qui conduit la prédiction pour cet élément de l'ensemble de données à la valeur de 24,41 (le nombre en gras).

Prendre plaisir!


9

Vous pouvez utiliser la bibliothèque ELI5 pour expliquer les contributions des fonctionnalités aux prévisions individuelles pour les modèles XGBoost.

Voir Explication des prévisions dans les documents, copiés ci-dessous:

Pour avoir une meilleure idée du fonctionnement de notre classificateur, examinons les prédictions individuelles avec eli5.show_prediction():

from eli5 import show_prediction
show_prediction(clf, valid_xs[1], vec=vec, show_feature_values=True)

entrez la description de l'image ici


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.