ทำไม Random Forest ไม่จัดการค่าที่ขาดหายไปในตัวทำนาย?


42

อะไรคือเหตุผลทางทฤษฎีที่จะไม่จัดการกับค่าที่ขาดหายไป? เครื่องเร่งการไล่ระดับสีต้นไม้การถดถอยจัดการค่าที่ขาดหายไป ทำไม Random Forest ถึงไม่ทำเช่นนั้น?


3
พวกเขาได้รับการจัดการในpartyแพ็คเกจ R บทความหนึ่งในบล็อกที่นี่: exegetic.biz/blog/2013/05/…
Stéphane Laurent

คำตอบ:


34

ต้นไม้ที่ไล่ระดับสีไล่ระดับใช้ต้นไม้ CART (ในการตั้งค่ามาตรฐานตามที่เสนอโดยผู้เขียน) ต้นไม้ CART ยังใช้ในป่าสุ่ม สิ่งที่ @ user777 พูดนั้นเป็นความจริงต้นไม้ RF จัดการค่าที่ขาดหายไปไม่ว่าจะโดยการใส่เข้าไปโดยเฉลี่ยทั้งโดยเฉลี่ย / โหมดคร่าวๆไม่ว่าจะโดยค่าเฉลี่ย / โหมดขึ้นอยู่กับความใกล้เคียง วิธีการเหล่านี้ถูกเสนอโดย Breiman และ Cutler และใช้สำหรับ RF นี่คือการอ้างอิงจากผู้เขียนที่ขาดหายไปค่าในชุดการฝึกอบรม

อย่างไรก็ตามหนึ่งสามารถสร้าง GBM หรือ RF ด้วยต้นไม้การตัดสินใจประเภทอื่น การทดแทนปกติสำหรับ CART คือ C4.5 ที่ Quinlan เสนอให้ ใน C4.5 ค่าที่หายไปจะไม่ถูกแทนที่ในชุดข้อมูล ฟังก์ชันการคำนวณที่ไม่บริสุทธิ์คำนวณโดยคำนึงถึงค่าที่หายไปโดยการลงโทษคะแนนที่ไม่บริสุทธิ์ด้วยการปันส่วนของค่าที่หายไป ในการทดสอบการตั้งค่าการประเมินผลในโหนดที่มีการทดสอบที่มีค่าที่หายไปการคาดการณ์ถูกสร้างขึ้นสำหรับโหนดลูกแต่ละคนและรวมในภายหลัง (โดยน้ำหนัก)

ตอนนี้ในการใช้งานหลาย C4.5 จะใช้แทนรถเข็น เหตุผลหลักคือเพื่อหลีกเลี่ยงการคำนวณที่มีราคาแพง (รถเข็นมีวิธีการทางสถิติที่เข้มงวดมากขึ้นซึ่งต้องใช้การคำนวณมากขึ้น) ผลลัพธ์ที่ได้จะคล้ายกันต้นไม้ผลมักจะเล็กกว่า (เนื่องจากรถเข็นเป็นไบนารีและ C4.5 ไม่) ฉันรู้ว่า Weka ใช้วิธีนี้ ฉันไม่รู้จักห้องสมุดอื่น แต่ฉันคาดหวังว่ามันจะไม่ใช่สถานการณ์ที่แปลกประหลาด หากเป็นเช่นนั้นกับการติดตั้ง GBM ของคุณจะเป็นคำตอบ


ขอให้เรายังคงอภิปรายนี้ในการแชท
ศาสดา 60091

คุณแตะที่ "การลงโทษคะแนนความไม่บริสุทธิ์ด้วยการปันส่วนของค่าที่หายไป" สิ่งนี้ส่งผลโดยตรงต่อการเลือกค่ามิติที่ดีที่สุดที่เลือกในระดับ / สาขาของต้นไม้โดยเฉพาะอย่างไร
javadba

16

"อะไรคือเหตุผลทางทฤษฎี [สำหรับ] [RF] ที่จะไม่จัดการกับค่าที่หายไป? เครื่องไล่ระดับสีไล่ระดับต้นไม้ถดถอยจะจัดการกับค่าที่หายไปทำไมป่าสุ่มจึงไม่ทำเช่นนั้น"

RF ไม่จับค่าที่หายไปเพียงแค่ไม่ได้อยู่ในลักษณะเดียวกับที่รถเข็นและต้นไม้ตัดสินใจอื่นที่คล้ายคลึงกันขั้นตอนวิธีการทำ User777 อธิบายวิธีการที่ RF ใช้ในการจัดการข้อมูลที่ขาดหายไปอย่างถูกต้อง (การป้อนค่ามัธยฐานและ / หรือการวัดตามความใกล้เคียง) ในขณะที่ Frank Harrell อธิบายวิธีจัดการค่าที่หายไปใน CART ได้อย่างถูกต้อง สำหรับข้อมูลเพิ่มเติมโปรดดูที่การเชื่อมโยงกับข้อมูลที่ขาดหายไปยกรถเข็น (หรือเป็นญาติ FOSS: RPART ) และRF

คำตอบของคุณคำถามที่เกิดขึ้นจริงได้รับการคุ้มครองอย่างชัดเจน IMHO ใน Ishwaran et al, 2008 กระดาษสิทธิสุ่มป่าอยู่รอด พวกเขาให้คำอธิบายที่เป็นไปได้ต่อไปนี้สำหรับเหตุผลที่ RF ไม่จัดการกับข้อมูลที่ขาดหายไปในลักษณะเดียวกับ CART หรือตัวแยกประเภทต้นไม้ตัดสินใจเดี่ยวที่คล้ายกัน:

"ถึงแม้ว่าการแยกตัวแทนจะทำงานได้ดีสำหรับต้นไม้ แต่วิธีนี้อาจไม่เหมาะสมสำหรับป่าไม้ความเร็วเป็นปัญหาหนึ่งการค้นหาการแยกตัวแทนจะเข้มข้นอย่างมีการคำนวณและอาจกลายเป็นสิ่งที่ไม่สามารถทำได้เมื่อปลูกต้นไม้จำนวนมากโดยเฉพาะต้นไม้ที่อิ่มตัว forest. ยิ่งไปกว่านั้นการแยกตัวแทนอาจไม่ได้มีความหมายในกระบวนทัศน์ของป่า RF สุ่มเลือกตัวแปรเมื่อทำการแยกโหนดและเช่นนี้ตัวแปรภายในโหนดอาจไม่เกี่ยวข้องกันและการแยกตัวแทนที่สมเหตุสมผลอาจไม่มีอยู่ข้อกังวลอีกอย่างคือ การแยกตัวแทนจะเปลี่ยนแปลงการตีความของตัวแปรซึ่งมีผลต่อการวัดเช่น [ความสำคัญของตัวแปร]

ด้วยเหตุผลเหล่านี้จึงจำเป็นต้องใช้กลยุทธ์ที่แตกต่างกันสำหรับ RF "

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

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


แก้ไข : ในบันทึกด้านข้างของฉันซึ่งไม่เกี่ยวข้องกับคำถามจริงที่ถามฉันระบุว่า "ฉันไม่เคยเห็นข้อความดังกล่าวมาจากข้อความที่เชื่อถือได้ใน RF" ปรากฎว่า Breiman DIDระบุว่าแผนผังการตัดสินใจของ CART นั้นใช้ในอัลกอริทึม RF ดั้งเดิม:

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

ที่มา: p.9 ของป่าสุ่ม Breiman (2001)

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


11

ฟอเรสต์แบบสุ่มจะจัดการกับข้อมูลที่หายไปและมีสองวิธีที่แตกต่างกันดังนี้:

1) ไม่มีการใส่ข้อมูลที่ขาดหายไป แต่ให้การอนุมาน 2) การใส่ข้อมูล ข้อมูลที่ส่งเข้ามาจะถูกใช้สำหรับการอนุมาน

ทั้งสองวิธีมีการใช้งานใน R-package randomForestSRCของฉัน (เขียนร่วมกับ Udaya Kogalur) ประการแรกเป็นสิ่งสำคัญที่ต้องจำไว้ว่าเนื่องจากการสุ่มฟอเรสต์ใช้การเลือกคุณสมบัติแบบสุ่มวิธีการข้อมูลแบบดั้งเดิมที่ขาดหายไปซึ่งใช้โดยต้นไม้เดี่ยว (CART และอื่น ๆ ) จึงไม่มีผลบังคับใช้ จุดนี้สร้างขึ้นในIshwaran และคณะ (2008), "ป่าสุ่มเพื่อการเอาชีวิตรอด", บันทึกสถิติประยุกต์ , 2 , 3 , และได้รับการกล่าวขานโดยหนึ่งในผู้แสดงความคิดเห็น

วิธีการ (1) เป็นวิธีการ "บนแมลงวัน" (OTFI) วิธีการ ก่อนที่จะแยกโหนดข้อมูลที่ขาดหายไปสำหรับตัวแปรจะถูกกำหนดโดยการสุ่มดึงค่าจากข้อมูลในถุงที่ไม่หายไป วัตถุประสงค์ของข้อมูลที่ถูกใส่ข้อมูลนี้คือเพื่อให้สามารถกำหนดเคสให้กับโหนดลูกในกรณีที่โหนดถูกแบ่งบนตัวแปรที่มีข้อมูลที่ขาดหายไป ข้อมูลที่ใส่เข้าไปไม่ได้ถูกใช้เพื่อคำนวณสถิติแยกซึ่งใช้ข้อมูลที่ไม่สูญหายเท่านั้น หลังจากการแบ่งโหนดข้อมูลที่ถูกสอดแทรกจะถูกรีเซ็ตเป็นหายไปและกระบวนการจะทำซ้ำจนกว่าจะถึงโหนดเทอร์มินัล OTFI รักษาความสมบูรณ์ของข้อมูลนอกกระเป๋าและดังนั้นค่าประสิทธิภาพเช่นความสำคัญของตัวแปร (VIMP) จึงยังคงไม่ลำเอียง อัลกอริทึม OTFI ได้รับการอธิบายใน Ishwaran และคณะ (2008) และนำไปใช้ในแพ็คเกจ randomSurvivalForest ที่เลิกใช้แล้ว

วิธีการ (2) จะดำเนินการโดยใช้ฟังก์ชั่น "impute" ใน randomForestSRC มีวิธีการแยกแบบไม่สุ่มตัวอย่างแบบสุ่มและหลายตัวแปรสำหรับข้อมูลที่มีอยู่ ตัวอย่างเช่นการแบ่งหลายตัวแปรทำให้วิธีการใส่ความผิดพลาดของ missForest ประสบความสำเร็จอย่างสูง ( Stekhoven & Bühlmann (2012), "MissForest - การใส่ค่าที่หายไปแบบไม่มีพารามิเตอร์สำหรับข้อมูลประเภทผสม", ชีวสารสนเทศศาสตร์ , 28 , 1 ) การเรียกใช้ฟังก์ชั่น Impute กับข้อมูลที่หายไปจะส่งคืนเฟรมข้อมูลที่ใส่เข้าไปซึ่งสามารถใช้ฟังก์ชั่นฟอเรสต์หลัก "rfsrc" ได้

การเปรียบเทียบรายละเอียดของขั้นตอนวิธีการข้อมูลป่าหายไปแตกต่างกันดำเนินการโดยใช้ "ใส่ร้าย" ได้อธิบายไว้ในกระดาษที่ผ่านมากับเฟถัง"ป่าสุ่มหายไปอัลกอริทึมข้อมูล" 2017 ฉันขอแนะนำให้ปรึกษาไฟล์ช่วยเหลือของ "rfsrc" และ "impute" จาก randomForestSRC สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับการใส่ข้อมูลและ OTFI


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

1
ขอบคุณสำหรับคำตอบที่น่าสนใจ (+1) ฉันใช้เสรีภาพในการเพิ่มการอ้างอิงและลิงก์แบบเต็มสำหรับเอกสารสองเรื่องที่อ้างถึง แต่ไม่พบ Tang & Ishwaran (2015), "อัลกอริธึมข้อมูลที่ขาดหายไปจากป่า" มีการเผยแพร่หรือยัง
Scortchi - Reinstate Monica

9

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


7

Random Forest มีสองวิธีในการจัดการกับค่าที่หายไปตาม Leo Breiman และ Adele Cutler ผู้คิดค้นมันขึ้นมา

ประการแรกคือการที่รวดเร็วและสกปรก: ก็แค่เติมในค่าเฉลี่ยของตัวแปรต่อเนื่องหรือค่าที่ไม่ใช่หายไปที่พบมากที่สุดโดยระดับ

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


ขอบคุณสำหรับคำตอบ! แต่ทั้งสองวิธีนี้จะแทนที่ค่าที่หายไป แต่ใน GBM หรือต้นไม้การถดถอยค่าที่หายไปจะไม่แทนที่สิ่งใด อะไรคือความแตกต่างทางทฤษฎีระหว่างเช่น GBM และ RF ในแง่นี้
Fedorenko Kristina

ฉันไม่ได้เป็นผู้เชี่ยวชาญใน GBM แต่การจัดการ RF ของค่าที่ขาดหายไปดูเหมือนจะหยั่งรากลึกในความคิดของการใส่ร้าย, en.wikipedia.org/wiki/Imputation_(statistics)ในกรณีที่ค่าที่ขาดหายไปจะไม่ได้หายไปที่สุ่มของคุณ ผลลัพธ์สามารถลำเอียงเนื่องจากการขาดหายไป การใส่ความพยายามที่จะกู้คืนค่าที่หายไปนี้และลดอคติ
Reinstate Monica

2

แทนที่จะใช้ค่ามัธยฐาน ฯลฯ ฉันขอแนะนำให้ดูแพ็คเกจmissRanger (กำลังพัฒนาบน Github) หรือแพ็คเกจ missForest R แพคเกจทั้งสองนี้ใช้ฟอเรสต์แบบสุ่มเพื่อใส่ข้อมูลของคุณเป็นอันดับแรกโดยใช้วิธีที่คล้ายกับการใส่หลาย ๆ ครั้งผ่านสมการที่ถูกล่ามโซ่ (MICE) นี่จะเป็นวิธีการที่เหมาะสมในการใช้เนื่องจากสอดคล้องกับรูปแบบการวิเคราะห์ที่แท้จริงของคุณ จากนั้นคุณสามารถใช้ข้อมูลทั้งหมดของคุณโดยไม่ต้องกังวลกับการทิ้งแถวแต่ละแถวเนื่องจากการสังเกตที่ขาดหายไป นอกจากนี้ค่าที่กำหนดจะมีความสมจริงมากกว่าการเลือกค่ามัธยฐานหรือโหมด

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


0

สำหรับรถเข็นคุณสามารถใช้วิธีที่ขาดหายไป (MIA) นั่นคือสำหรับตัวทำนายเชิงหมวดหมู่คุณต้องระบุรหัสที่หายไปเป็นหมวดหมู่แยกต่างหาก สำหรับตัวทำนายเชิงตัวเลขคุณสร้างตัวแปรใหม่สองตัวสำหรับตัวแปรทุกตัวที่มี missings: หนึ่งในที่ที่คุณใช้รหัส missings เป็น -Inf และอีกหนึ่งตัวแปรที่คุณใช้ missings เป็น + Inf จากนั้นคุณใช้ฟังก์ชันฟอเรสต์แบบสุ่มตามปกติกับข้อมูลของคุณ

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

ฟังก์ชั่นctree()และcforest()จากแพคเกจปาร์ตี้อนุญาตให้ใช้ MIA โดยผ่านctree_control(MIA = TRUE)ไปยังcontrolข้อโต้แย้งของพวกเขา

โปรแกรม RuleFit เจอโรมของฟรีดแมนจะปรากฏขึ้นเพื่อใช้ MIA สำหรับการรับมือกับ missings ดูhttps://statweb.stanford.edu/~jhf/r-rulefit/rulefit3/RuleFit_help.html#xmiss

คำอธิบายของวิธีการ MIA สามารถพบได้ใน Twala และคณะ (2008):

Twala, BETH, Jones, MC, และ Hand, DJ (2008) วิธีการที่ดีในการจัดการกับข้อมูลที่ขาดหายไปในแผนผังการตัดสินใจ ตัวอักษรการจดจำรูปแบบ, 29 (7), 950-956

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