predict_proba importance feature python r classification feature-selection xgboost

python - importance - ¿Cómo se calcula la puntuación de la característica(/ importancia) en el paquete XGBoost?



xgboost python (2)

Encontré esta respuesta correcta y completa. Muestra la implementación de las feature_importances.

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

El comando xgb.importance devuelve un gráfico de la importancia de la característica medida por una puntuación f .

¿Qué representa esta puntuación f y cómo se calcula?

Salida:


Esta es una métrica que simplemente resume cuántas veces se divide cada característica. Es análogo a la métrica de frecuencia en la versión R. https://cran.r-project.org/web/packages/xgboost/xgboost.pdf

Se trata de una métrica tan importante como la característica que puede obtener.

¿Cuántas veces se dividió esta variable?

El código para este método muestra que es simplemente agregar la presencia de una característica dada en todos los árboles.

[aquí .. 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