จะตีความผลลัพธ์ของ XGBoost ได้อย่างไร?


36

ฉันใช้โมเดล xgboost xgb.importanceผมไม่ทราบว่าวิธีการตีความการส่งออกของ

อะไรคือความหมายของการได้รับความคุ้มครองและความถี่และเราจะตีความมันได้อย่างไร

นอกจากนี้ Split, RealCover และ RealCover% หมายถึงอะไร ฉันมีพารามิเตอร์พิเศษบางอย่างที่นี่

มีพารามิเตอร์อื่น ๆ ที่สามารถบอกฉันเพิ่มเติมเกี่ยวกับคุณสมบัติการนำเข้า

จากเอกสาร R ฉันมีความเข้าใจว่าการได้รับนั้นคล้ายกับการรับข้อมูลและความถี่คือจำนวนครั้งที่มีการใช้คุณลักษณะในต้นไม้ทั้งหมด ฉันไม่รู้ว่า Cover คืออะไร

ฉันรันโค้ดตัวอย่างที่ให้ไว้ในลิงก์ (และพยายามทำเช่นเดียวกันกับปัญหาที่ฉันกำลังทำอยู่) แต่การแยกคำจำกัดความที่ให้ที่นั่นไม่ตรงกับตัวเลขที่ฉันคำนวณ

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

คำตอบ:


38

จากคำถามของคุณฉันสมมติว่าคุณกำลังใช้ xgboost เพื่อให้พอดีกับต้นไม้ที่ได้รับการปรับปรุงสำหรับการจำแนกเลขฐานสอง เมทริกซ์ความสำคัญเป็นจริงวัตถุ data.table กับคอลัมน์แรกที่แสดงชื่อของคุณสมบัติทั้งหมดที่ใช้จริงในต้นไม้เพิ่มขึ้น

ความหมายของตารางข้อมูลความสำคัญมีดังนี้:

  1. กำไรหมายถึงผลงานที่ญาติของคุณลักษณะที่สอดคล้องกับรูปแบบซึ่งคำนวณโดยการมีส่วนร่วมของแต่ละคุณลักษณะของต้นไม้แต่ละต้นในรูปแบบ มูลค่าที่สูงขึ้นของตัวชี้วัดนี้เมื่อเปรียบเทียบกับคุณลักษณะอื่นแสดงว่าเป็นสิ่งสำคัญสำหรับการสร้างการทำนาย
  2. ปกหมายถึงตัวชี้วัดจำนวนญาติของการสังเกตที่เกี่ยวข้องกับคุณลักษณะนี้ ตัวอย่างเช่นหากคุณมีการสังเกต 100 ครั้งคุณลักษณะ 4 อย่างและต้นไม้ 3 ต้นและสมมติว่าคุณสมบัติ 1 ใช้ในการตัดสินใจโหนดใบสำหรับการสังเกต 10, 5 และ 2 ใน Tree1, tree2 และ tree3 ตามลำดับ จากนั้นตัวชี้วัดจะนับความครอบคลุมของคุณลักษณะนี้เป็นข้อสังเกต 10 + 5 + 2 = 17 สิ่งนี้จะถูกคำนวณสำหรับฟีเจอร์ทั้ง 4 รายการและหน้าปกจะแสดงเป็น 17 เปอร์เซ็นต์สำหรับเมตริกการครอบคลุมของฟีเจอร์ทั้งหมด
  3. ความถี่ (/ 'ความถี่') คือเปอร์เซ็นต์คิดเป็นจำนวนญาติครั้งคุณลักษณะเฉพาะที่เกิดขึ้นในต้นไม้ของรูปแบบ ในตัวอย่างด้านบนหาก feature1 เกิดขึ้นใน 2 แยก 1 แบ่งและ 3 แยกในแต่ละ tree1, tree2 และ tree3; ดังนั้นน้ำหนักสำหรับ feature1 จะเป็น 2 + 1 + 3 = 6 ความถี่สำหรับ feature1 นั้นจะถูกคำนวณเป็นเปอร์เซ็นต์น้ำหนักมากกว่าน้ำหนักของฟีเจอร์ทั้งหมด

กำไรเป็นคุณลักษณะที่เกี่ยวข้องมากที่สุดในการตีความความสำคัญของแต่ละคุณสมบัติ

การวัดมีความสัมพันธ์กันและด้วยเหตุนี้ทั้งหมดรวมถึงหนึ่งตัวอย่างจากโมเดล xgboost ที่ติดตั้งใน R คือ:

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

1
ใบปะหน้าจะคำนวณเฉพาะตามโหนดปลายสุดหรือแยกทั้งหมดหรือไม่
fanfabbb

3

ขอบคุณ Sandeep สำหรับคำตอบโดยละเอียดของคุณ ฉันต้องการแก้ไขใบปะหน้าที่มีการคำนวณในการแยกทั้งหมดและไม่เพียงโหนดใบไม้

ลองมาดูตัวอย่างง่ายๆกับข้อมูลที่ได้รับจากห้องสมุด 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) จากการทิ้งต้นไม้

ปกของแต่ละส่วนแยกโดยที่ไม่มีกลิ่น = ไม่มีการใช้คือ 1628.2500 ที่ Node ID 0-0 และ 765.9390 ที่ Node ID 1-1

ปกรวมของการแยกทั้งหมด (รวมข้ามคอลัมน์ปกในการถ่ายโอนต้นไม้) = 1628.2500 * 2 + 786.3720 * 2

ปกกลิ่น = ไม่มีในเมทริกซ์ที่สำคัญ = (1628.2500 + 765.9390) / (1628.2500 * 2 + 786.3720 * 2)

ดังนั้นเราจึงมั่นใจได้ว่าการคำนวณความคุ้มครองครอบคลุมทุกเสี้ยว

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.