web-dev-qa-db-fra.com

Comment le score de fonctionnalité (/ importance) du package XGBoost est-il calculé?

La commande xgb.importance renvoie un graphique présentant l’importance des fonctionnalités mesurée par un score f.

Que représente ce score f et comment est-il calculé?

Sortie:  Graph of feature importance Graphe d'importance des fonctionnalités

21
ishido

Il s'agit d'une mesure qui résume simplement le nombre de fois que chaque fonctionnalité est divisée. Il est analogue à la métrique Fréquence de la version R. https://cran.r-project.org/web/packages/xgboost/xgboost.pdf

Il s'agit d'une mesure d'importance aussi fondamentale que possible. 

i.e. Combien de fois cette variable a-t-elle été divisée? 

Le code de cette méthode montre qu'il s'agit simplement d'ajouter la présence d'une fonctionnalité donnée dans tous les arbres.

[ici .. https://github.com/dmlc/xgboost/blob/master/python-package/xgboost/core.py#L953][1] }

def get_fscore(self, fmap=''):
    """Get feature importance of each feature.
    Parameters
    ----------
    fmap: str (optional)
       The name of feature map file
    """
    trees = self.get_dump(fmap)  ## dump all the trees to text
    fmap = {}                    
    for tree in trees:              ## loop through the trees
        for line in tree.split('\n'):     # text processing
            arr = line.split('[')
            if len(arr) == 1:             # text processing 
                continue
            fid = arr[1].split(']')[0]    # text processing
            fid = fid.split('<')[0]       # split on the greater/less(find variable name)

            if fid not in fmap:  # if the feature id hasn't been seen yet
                fmap[fid] = 1    # add it
            else:
                fmap[fid] += 1   # else increment it
    return fmap                  # return the fmap, which has the counts of each time a  variable was split on
19
T. Scharf

J'ai trouvé cette réponse correcte et complète. Il montre l'implémentation des feature_importances.

https://stats.stackexchange.com/questions/162162/relative-variable-importance-for-boosting

0
Aerin