Как рассчитывается оценка функции (/значение) в пакете XGBoost?

Команда xgb.importance возвращает график значения функции, измеренный с помощью f score.

Что представляет этот f score и как он рассчитывается?

Вывод: График важности функции График важности функции

Ответ 1

Это метрика, которая просто суммирует, сколько раз каждая функция разделяется. Он аналогичен частотной метрике в версии R. https://cran.r-project.org/web/packages/xgboost/xgboost.pdf

Это как базовая метрика значения важности, которую вы можете получить.

то есть. Сколько раз эта переменная делилась?

Код этого метода показывает, что это просто добавление присутствия данной функции во все деревья.

[здесь.. 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