การตีความแผนผังการตัดสินใจในบริบทของคุณลักษณะสำคัญ


9

ฉันกำลังพยายามที่จะเข้าใจวิธีการทำความเข้าใจกระบวนการตัดสินใจของรูปแบบการจัดหมวดหมู่ต้นไม้การตัดสินใจที่สร้างขึ้นด้วยความเข้าใจ สิ่งสำคัญสองประการที่ฉันกำลังดูคือการนำเสนอกราฟวิซของต้นไม้และรายการของคุณลักษณะสำคัญ สิ่งที่ฉันไม่เข้าใจคือการกำหนดความสำคัญของคุณลักษณะในบริบทของต้นไม้ ตัวอย่างเช่นนี่คือรายการสำคัญของคุณลักษณะของฉัน:

การจัดอันดับคุณลักษณะ: 1. FeatureA (0.300237)

  1. FeatureB (0.166800)

  2. FeatureC (0.092472)

  3. FeatureD (0.075009)

  4. คุณสมบัติ E (0.068310)

  5. FeatureF (0.067118)

  6. FeatureG (0.066510)

  7. คุณสมบัติ H (0.043502)

  8. คุณสมบัติ I (0.040281)

  9. คุณสมบัติ J (0.039006)

  10. FeatureK (0.032618)

  11. FeatureL (0.008136)

  12. FeatureM (0.000000)

อย่างไรก็ตามเมื่อฉันดูที่ด้านบนของต้นไม้ดูเหมือนว่า:ตัวอย่างต้นไม้

ในความเป็นจริงแล้วฟีเจอร์บางอย่างที่มีการจัดอันดับว่า "สำคัญที่สุด" จะไม่ปรากฏขึ้นจนกว่าจะลงไปถึงต้นไม้และบนสุดของต้นไม้คือ FeatureJ ซึ่งเป็นหนึ่งในฟีเจอร์ที่มีอันดับต่ำที่สุด ข้อสันนิษฐานที่ไร้เดียงสาของฉันคือว่าฟีเจอร์ที่สำคัญที่สุดจะถูกจัดอยู่ใกล้กับส่วนบนสุดของต้นไม้เพื่อให้ได้ผลที่ดีที่สุด หากไม่ถูกต้องแล้วคุณสมบัติใดที่ทำให้ "สำคัญ"


1
มีตัวอย่างจำนวนเท่าใดที่กำหนดให้ทางซ้ายและขวาของโหนดแรก
oW_

คำตอบ:


4

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

นี่เป็นเพียงเพราะเกณฑ์ที่แตกต่างกัน (เช่น Gini Impurity, การรับข้อมูลแบบเอนโทรปี, MSE ฯลฯ ) อาจถูกนำมาใช้ในแต่ละกรณีเหล่านี้ (การแยกและความสำคัญ)

ตัวอย่างเช่นSkLearnคุณอาจเลือกที่จะทำการแยกโหนดที่แผนผังการตัดสินใจตามเกณฑ์การรับข้อมูลของเอนโทรปี (ดูcriterion& 'entropy'ที่SkLearn) ในขณะที่ความสำคัญของฟีเจอร์นั้นได้รับจาก Gini ความสำคัญซึ่งเป็นค่าเฉลี่ยลดลงของ Gini สิ่งเจือปนสำหรับตัวแปรที่กำหนดในต้นไม้ทั้งหมดของป่าสุ่ม (ดูfeature_importances_ที่SkLearnและที่นี่ )

ถ้าฉันพูดถูกก็SkLearnจะมีผลแม้ว่าคุณเลือกที่จะทำการแยกโหนดที่แผนผังการตัดสินใจตามเกณฑ์ของ Gini Impurity ในขณะที่ความสำคัญของฟีเจอร์นั้นได้รับจาก Gini Importance เพราะ Gini Impurity และ Gini สำคัญไม่เหมือนกัน (ดูสิ่งนี้และสิ่งนี้ใน Stackoverflow เกี่ยวกับความสำคัญของ Gini)


@oW_ ได้ให้คำตอบที่ถูกต้องกับคำถามต้นฉบับแล้ว แต่ฉันคิดว่ามันดีที่จะเขียนมันในทางที่กระชับและชัดเจนยิ่งขึ้นสำหรับผู้อ่าน
ถูกขับไล่

3

ใน scikit เรียนรู้คุณลักษณะที่สำคัญคือการลดลงของความไม่บริสุทธิ์ของโหนด กุญแจสำคัญคือมันวัดความสำคัญเฉพาะที่ระดับโหนด จากนั้นโหนดทั้งหมดจะถูกถ่วงน้ำหนักโดยจำนวนตัวอย่างถึงโหนดนั้น

ดังนั้นหากมีตัวอย่างเพียงไม่กี่ตัวอย่างเท่านั้นที่อยู่ในโหนดด้านซ้ายหลังจากการแยกครั้งแรกนี่อาจไม่ได้หมายความว่า J เป็นคุณลักษณะที่สำคัญที่สุดเพราะการเพิ่มขึ้นของโหนดด้านซ้ายอาจส่งผลกระทบต่อตัวอย่างเพียงเล็กน้อยเท่านั้น หากคุณพิมพ์จำนวนตัวอย่างในแต่ละโหนดเพิ่มเติมคุณอาจได้ภาพที่ดีขึ้นว่าเกิดอะไรขึ้น


2

เพียงเพราะโหนดที่ต่ำกว่าบนต้นไม้ไม่ได้แปลว่ามันสำคัญน้อยกว่า ความสำคัญของคุณลักษณะใน sci-kitlearn คำนวณโดยวิธีการแยกโหนดอย่างหมดจดคลาส (ดัชนี Gini) คุณจะสังเกตเห็นแม้ในต้นไม้ที่ถูกครอบตัดของคุณว่า A จะแยกสามครั้งเมื่อเทียบกับ J ครั้งเดียวและคะแนนเอนโทรปี

อย่างไรก็ตามหากคุณสามารถเลือกเพียงหนึ่งโหนดคุณจะต้องเลือก J เพราะจะทำให้การคาดการณ์ดีที่สุด แต่ถ้าคุณต้องมีตัวเลือกให้มีหลายโหนดในการตัดสินใจที่แตกต่างกันหลายอย่าง A จะเป็นตัวเลือกที่ดีที่สุด


ดังนั้นในแง่ของคนธรรมดาสมมติว่ามีการจำแนกประเภทที่เป็นไปได้เพียง 2 ประเภทเท่านั้น (เรียกพวกเขาว่า 0 และ 1) คุณลักษณะที่ฐานของต้นไม้จะเป็นสิ่งที่แยกตัวอย่างออกเป็น 2 กลุ่มได้ดีที่สุด (เช่นงานที่ดีที่สุดในการแยก 1 เข้าสู่อีกด้านหนึ่งของต้นไม้และ 0 เข้าสู่อีกด้านหนึ่ง) ถูกต้องหรือไม่ ฉันยังคงไม่ได้ทั้งหมดชัดเจนในสิ่งที่คุณลักษณะที่สำคัญมีการจัดอันดับถ้ามันไม่ดีที่สุดที่แยก 0s และ 1s ในบริบทนี้
ทิมลินด์เซ

-2

ความสำคัญของตัวแปรวัดจากการลดลงของความแม่นยำของโมเดลเมื่อตัวแปรถูกลบ แผนผังการตัดสินใจใหม่ที่สร้างด้วยโมเดลใหม่ที่ไม่มีตัวแปรอาจดูแตกต่างจากแผนผังดั้งเดิมมาก การแยกการตัดสินใจในไดอะแกรมของคุณเสร็จสิ้นแล้วในขณะที่พิจารณาตัวแปรทั้งหมดในแบบจำลอง

ตัวแปรใดที่จะแยกที่รูท (และโหนดอื่น ๆ ) วัดจากการปนเปื้อน ความบริสุทธิ์ที่ดี (เช่น: ทุกอย่างในสาขาด้านซ้ายมีค่าเป้าหมายเดียวกัน) ไม่รับประกันความถูกต้องที่ดี ข้อมูลของคุณอาจจะเบ้กิ่งขวาของคุณมีการตอบสนองมากกว่าสาขาซ้ายของคุณ ดังนั้นมันจึงไม่ดีเพียงจำแนกประเภทสาขาที่ถูกต้องเรายังต้องพิจารณาสาขาที่เหมาะสมด้วย ดังนั้นตัวแปรการแยกอาจจะใช่หรือไม่ใช่ตัวแปรสำคัญสำหรับความแม่นยำของโมเดลโดยรวม

ความสำคัญของตัวแปรเป็นตัววัดที่ดีกว่าสำหรับการเลือกตัวแปร


2
ฉันไม่คิดว่ามันจะถูกนำไปใช้ในการเรียนรู้ Scikit ที่นั่นความสำคัญของคุณลักษณะถูกวัดเป็น "ความสำคัญ gini" คือการลดลงทั้งหมดในโหนดปนเปื้อนที่ถ่วงน้ำหนักโดยสัดส่วนของกลุ่มตัวอย่างที่มาถึงโหนดนั้น
oW_

"ความสำคัญของฟีเจอร์นั้นคำนวณได้จากการลดเกณฑ์ทั้งหมด (ปกติ) โดยนำมาจากฟีเจอร์นั้นมันเป็นที่รู้จักกันในชื่อจีนีสำคัญ" - scikit-learn.org/stable/modules/generated/…
Afflatus
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.