XGBoost महत्व के आउटपुट की व्याख्या कैसे करें?


37

मैंने एक xgboost मॉडल चलाया। मैं बिल्कुल नहीं जानता कि कैसे आउटपुट की व्याख्या करना है xgb.importance

लाभ, आच्छादन और आवृत्ति का अर्थ क्या है और हम उनकी व्याख्या कैसे करते हैं?

इसके अलावा, स्प्लिट, RealCover और RealCover% का क्या मतलब है? मेरे पास यहां कुछ अतिरिक्त पैरामीटर हैं

क्या कोई अन्य पैरामीटर है जो मुझे फीचर आयात के बारे में अधिक बता सकता है?

R दस्तावेज़ीकरण से, मुझे कुछ समझ है कि लाभ सूचना लाभ के समान है और आवृत्ति सभी पेड़ों में एक विशेषता का उपयोग करने की संख्या है। मुझे पता नहीं है कि कवर क्या है।

मैंने लिंक में दिए गए उदाहरण कोड को चलाया (और इस समस्या पर भी वही करने की कोशिश की, जिस पर मैं काम कर रहा हूं), लेकिन वहां दी गई विभाजन की परिभाषा उन संख्याओं से मेल नहीं खाती जिन्हें मैंने गणना की थी।

importance_matrix

आउटपुट:

           Feature         Gain        Cover    Frequence
  1:            xxx 2.276101e-01 0.0618490331 1.913283e-02
  2:           xxxx 2.047495e-01 0.1337406946 1.373710e-01
  3:           xxxx 1.239551e-01 0.1032614896 1.319798e-01
  4:           xxxx 6.269780e-02 0.0431682707 1.098646e-01
  5:          xxxxx 6.004842e-02 0.0305611830 1.709108e-02

214:     xxxxxxxxxx 4.599139e-06 0.0001551098 1.147052e-05
215:     xxxxxxxxxx 4.500927e-06 0.0001665320 1.147052e-05
216:   xxxxxxxxxxxx 3.899363e-06 0.0001536857 1.147052e-05
217: xxxxxxxxxxxxxx 3.619348e-06 0.0001808504 1.147052e-05
218:  xxxxxxxxxxxxx 3.429679e-06 0.0001792233 1.147052e-05

जवाबों:


40

आपके प्रश्न से, मैं मान रहा हूँ कि आप बाइनरी वर्गीकरण के लिए बूस्टेड पेड़ों को फिट करने के लिए xgboost का उपयोग कर रहे हैं। महत्व मैट्रिक्स वास्तव में एक डेटाटेबल ऑब्जेक्ट है जिसमें पहले कॉलम में सभी सुविधाओं के नाम सूचीबद्ध हैं जो वास्तव में बढ़े हुए पेड़ों में उपयोग किए जाते हैं।

महत्व डेटा तालिका का अर्थ इस प्रकार है:

  1. लाभ मॉडल मॉडल में हर एक पेड़ के लिए प्रत्येक सुविधा का योगदान निकालकर किया करने के लिए इसी सुविधा के रिश्तेदार योगदान निकलता है। एक अन्य विशेषता की तुलना में इस मीट्रिक का एक उच्च मूल्य का तात्पर्य है कि यह भविष्यवाणी पैदा करने के लिए अधिक महत्वपूर्ण है।
  2. कवर मीट्रिक साधन इस सुविधा से संबंधित टिप्पणियों के सापेक्ष संख्या। उदाहरण के लिए, यदि आपके पास 100 अवलोकन, 4 विशेषताएं और 3 पेड़ हैं, और मान लीजिए कि फीचर 1 का उपयोग क्रमशः 10, 5 और पेड़ 1, ट्री 2 और ट्री 3 में पत्ती नोड को तय करने के लिए किया जाता है; तब मीट्रिक इस सुविधा के लिए 10 + 5 + 2 = 17 टिप्पणियों के रूप में कवर करेगा। यह सभी 4 विशेषताओं के लिए गणना की जाएगी और कवर 17 को सभी विशेषताओं के कवर मेट्रिक्स के प्रतिशत के रूप में व्यक्त किया जाएगा।
  3. आवृत्ति (/ 'Frequence') प्रतिशत समय की सापेक्ष संख्या कोई विशेष सुविधा मॉडल के पेड़ में होता है प्रतिनिधित्व करता है। उपरोक्त उदाहरण में, अगर फीचर 1 2 विभाजन में हुआ, 1 विभाजन और प्रत्येक पेड़ 1, ट्री 2 और ट्री 3 में 3 विभाजन; तब फीचर 1 के लिए वेटेज 2 + 1 + 3 = 6. होगा। फीचर 1 की आवृत्ति की गणना सभी सुविधाओं के भार से अधिक प्रतिशत के रूप में की जाती है।

प्रत्येक फीचर के सापेक्ष महत्व की व्याख्या करने के लिए गेन सबसे अधिक प्रासंगिक विशेषता है।

उपाय सभी सापेक्ष हैं और इसलिए सभी एक से सम्‍मिलित हैं, आर में फिट किए गए xgboost मॉडल से एक उदाहरण है:

> sum(importance$Frequence)
[1] 1
> sum(importance$Cover)
[1] 1
> sum(importance$Gain)
[1] 1

1
कवर केवल पत्ती नोड्स या सभी विभाजन पर आधारित है?
10

3

धन्यवाद संदीप आपके विस्तृत उत्तर के लिए। मैं सही करना चाहूंगा कि कवर की गणना सभी बंटवारे में की जाती है, न कि केवल पत्ती नोड्स पर।

आइए xgboost लाइब्रेरी द्वारा उपलब्ध कराए गए डेटा के साथ एक सरल उदाहरण पर जाएं।

library('xgboost')

data(agaricus.train, package='xgboost')
data(agaricus.test, package='xgboost')

train <- agaricus.train
test <- agaricus.test

X = train$data

y = train$label

bst <- xgboost(data = X, label = y, max.depth = 2,
           eta = 1, nthread = 2, nround = 2,objective = "binary:logistic",
           reg_lambda = 0, reg_alpha = 0)

xgb.model.dt.tree(agaricus.train$data@Dimnames[[2]], model = bst)

xgb.importance(agaricus.train$data@Dimnames[[2]], bst)

आउटपुट -

पेड़ की डाल

महत्व मैट्रिक्स

आइए गंध के आवरण की गणना करने का प्रयास करें = पेड़ के डंप से महत्व मैट्रिक्स (0.495768965) में कोई नहीं।

प्रत्येक विभाजन का कवर जहां गंध = कोई भी उपयोग नहीं किया जाता है, नोड आईडी 0-0 पर 1628.2500 और नोड 1-1 पर 765.9390 है।

सभी बंटवारे का कुल कवर (पेड़ के डंप में कवर कॉलम के पार) = 1628.2500 * 2 + 786.3720 + 2

गंध का आवरण = महत्व मैट्रिक्स में कोई नहीं = (1628.2500 + 765.9390) / (1628.2500 * 2 + 786.3720 * 2)

इसलिए हमें यकीन है कि कवर की गणना सभी बंटवारे में की जाती है!

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.