コマンドxgb.importance
は、fのスコアによって測定された機能の重要度のグラフを返します。XGBoostパッケージの機能スコア(/重要度)はどのように計算されますか?
f得点はどのように計算されますか?
出力: Graph of feature importance
コマンドxgb.importance
は、fのスコアによって測定された機能の重要度のグラフを返します。XGBoostパッケージの機能スコア(/重要度)はどのように計算されますか?
f得点はどのように計算されますか?
出力: Graph of feature importance
これは単純に、各機能が有効に分割された回数を集計するメトリックです。これはRバージョンのFrequencyメトリックに似ています。 https://cran.r-project.org/web/packages/xgboost/xgboost.pdf
これは基本的に重要なメジャーメトリックです。
つまり、この変数は何回分割されましたか?
この方法のコードは、単純にすべてのツリーに特定の機能が存在することを示しています。 xgboostのトップ2言語のユーザーがこれらのことからのpython]されている:R]、[タグ:
[ここ.. 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
こんにちは、あなたの答えに感謝します。私はソースコードを理解するのに苦労しています。あなたはその機能について正確に何が起こっているのかを私に説明することができますか? – ishido
私は実際に理解しています。私はコアファイルに入り、xbg.plot_importanceを使用しているときにライン変数printを持っていました。その後、各行を分割してフィーチャ名のみを抽出し、分割された回数を数えます。 – ishido
@ishidoあなたはそれを得ました..いくつかのコメントを追加しました..木のテキストダンプを見ることなく、すべての刺し作業が正確に何をしているかを正確に言うのは難しいですが、 –
質問は言語に依存しないので、私はそれ[タグをタグ付けしています。 – smci