2015-12-11 25 views
11

कमांड xgb.importanceएफ स्कोर द्वारा मापा गया विशेषता महत्व का एक ग्राफ देता है।XGBoost पैकेज में फीचर स्कोर (/ महत्व) की गणना कैसे की जाती है?

यह एफ स्कोर का प्रतिनिधित्व करता है और इसकी गणना कैसे की जाती है?

आउटपुट: Graph of feature importance Graph of feature importance

+0

सवाल भाषा-तटस्थ तो मैं यह [टैग टैगिंग कर रहा हूँ है। – smci

उत्तर

8

यह एक मीट्रिक कि बस का सार कितनी बार प्रत्येक सुविधा पर विभाजित किया जाता है। यह आर संस्करण में आवृत्ति मीट्रिक के समान है। https://cran.r-project.org/web/packages/xgboost/xgboost.pdf

यह उतना ही महत्वपूर्ण है जितना आप प्राप्त कर सकते हैं।

i.e. इस चर को कितनी बार विभाजित किया गया था?

इस विधि के लिए कोड दिखाता है कि यह केवल सभी पेड़ों में दी गई सुविधा की उपस्थिति को जोड़ रहा है। xgboost के शीर्ष -2 भाषा उपयोगकर्ताओं को उन के बाद से अजगर] कर रहे हैं: आर], [टैग:

[यहाँ .. 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 
+0

हाय, आपके उत्तर के लिए धन्यवाद। मुझे स्रोत कोड को समझने में परेशानी हो रही है। क्या आप मुझे यह समझा सकते हैं कि उस समारोह में वास्तव में क्या हो रहा है? – ishido

+0

मैं वास्तव में समझ में आया है। मैं कोर फ़ाइल में गया और xbg.plot_importance का उपयोग करते समय लाइन वैरिएबल प्रिंट था। फिर यह प्रत्येक पंक्ति को केवल फीचर नाम निकालने के लिए विभाजित करता है और प्रत्येक को विभाजित करने की संख्या की गणना करता है? – ishido

+0

@ishido आपको मिल गया .. कुछ टिप्पणियां जोड़ दी गईं .. पेड़ के पाठ डंप को देखे बिना यह कहना मुश्किल है कि सभी स्टिंग ऑपरेशन वास्तव में क्या कर रहे हैं, लेकिन बड़ी योजना स्पष्ट है –

संबंधित मुद्दे