ฟอเรสต์แบบสุ่มในข้อมูลที่มีโครงสร้างหลายระดับ / ลำดับชั้น


13

ฉันค่อนข้างใหม่กับการเรียนรู้ด้วยเครื่องจักรเทคนิคของ CART และสิ่งที่คล้ายกันและฉันหวังว่าไร้เดียงสาของฉันจะไม่ชัดเจนเกินไป

Random Forest จัดการโครงสร้างข้อมูลหลายระดับ / ลำดับชั้นได้อย่างไร (ตัวอย่างเช่นเมื่อการโต้ตอบข้ามระดับเป็นที่สนใจ)

นั่นคือชุดข้อมูลที่มีหน่วยการวิเคราะห์ในหลายระดับชั้น ( เช่นนักเรียนซ้อนกันภายในโรงเรียนพร้อมข้อมูลเกี่ยวกับทั้งนักเรียนและโรงเรียน)

ยกตัวอย่างเช่นพิจารณาชุดข้อมูลหลายระดับที่มีบุคคลในระดับแรก ( เช่นข้อมูลพฤติกรรมการลงคะแนนประชากร ฯลฯ ) ซ้อนกันภายในประเทศในระดับที่สอง (พร้อมข้อมูลระดับประเทศเช่นประชากร):

ID voted age female country population
1 1 19 1 1 53.01
2 1 23 0 1 53.01
3 0 43 1 1 53.01
4 1 27 1 1 53.01
5 0 67 0 1 53.01
6 1 34 1 2 47.54
7 0 54 1 2 47.54
8 0 22 1 2 47.54
9 0 78 0 2 47.54
10 1 52 0 2 47.54

ให้บอกว่าvotedเป็นตัวแปรตอบสนอง / ขึ้นอยู่กับและคนอื่น ๆ เป็นตัวแปรทำนาย / อิสระ ในประเภทนี้ในกรณีที่อัตรากำไรขั้นต้นและผลกระทบที่ขอบของตัวแปร (การพึ่งพาอาศัยบางส่วน) สำหรับบางตัวแปรระดับสูง ( เช่น , population) สำหรับตัวแปรแต่ละระดับที่แตกต่างกัน ฯลฯ อาจจะเป็นที่น่าสนใจมาก ในกรณีที่คล้ายกันนี้glmแน่นอนว่าเหมาะสมกว่า - แต่เมื่อมีตัวแปรจำนวนมากการโต้ตอบและ / หรือค่าที่หายไปและ / หรือชุดข้อมูลขนาดใหญ่มากเป็นต้นglmไม่น่าเชื่อถือ

คำถามย่อย: ฟอเรสต์แบบสุ่มสามารถจัดการโครงสร้างข้อมูลประเภทนี้ได้อย่างชัดเจนหรือไม่? หากนำไปใช้โดยไม่คำนึงถึงความลำเอียงประเภทใดที่นำเสนอ? หาก Random Forest ไม่เหมาะสมจะมีวิธีอื่นใดในกลุ่ม ensemble หรือไม่?

(คำถามฟอเรสต์แบบสุ่มในข้อมูลที่จัดกลุ่มอาจคล้ายกัน แต่ไม่ตอบคำถามนี้จริงๆ)


สวัสดี @MikaelAndersson คุณคิดวิธีแก้ปัญหาสำหรับคำถามที่คุณถามหรือไม่? ฉันกำลังเผชิญกับสถานการณ์ที่คล้ายกันและหวังว่าจะได้ยินประสบการณ์ของคุณ ขอบคุณ
NoviceProg

คำตอบ:


4

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

ในการรับการปรับแต่งและการประมาณค่าทั่วไปคุณต้องเข้าใจว่าอะไรคือคุณสมบัติของข้อมูลใหม่ที่คุณคาดหวัง หากคุณต้องการคาดการณ์ไปยังประเทศใหม่คุณจะต้องตั้งค่าการปรับจูนตามตัวอย่างอีกครั้ง (เช่นการตรวจสอบความถูกต้องข้ามแบบ k-fold) ที่ทำการสุ่มแบบแบ่งชั้นตามประเทศ

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


คุณช่วยขยายให้หน่อยได้ไหมว่าทำไมการประมาณการข้อผิดพลาด OOB จะมองในแง่ดีเกินไปหรือไม่
dmartin

2
ฉันคิดว่าการมองโลกในแง่ดีขึ้นอยู่กับข้อมูลใหม่ที่อาจมีหน้าตา หากข้อมูลใหม่มาจากมณฑลอื่น ๆ ฟอเรสต์แบบสุ่มนี้อาจไม่ทำงานเช่นเดียวกับข้อผิดพลาด OOB ที่ระบุ นี่เป็นเพราะข้อผิดพลาด OOB ยังคงมาจากตัวอย่างจากชุดของเขตเดียวกันเช่น
Shea Parkes

3

ฉันกำลังทำงานกับแพคเกจ R ที่รัน randomForest ในฐานะลักษณนามท้องถิ่นตามลำดับชั้นของคลาสที่กำหนดไว้ล่วงหน้า แพ็คเกจสามารถพบได้ใน R Forge ภายใต้ 'hie-ran-forest' แพ็คเกจนี้ใช้งานได้แล้วแม้ว่ามันจะล้มเหลวในการทดสอบ cran (สำหรับ MAC) แต่ฉันก็ไม่แน่ใจเหมือนกันว่าทำไม นอกเหนือจากการรัน randomForest จริง ๆ สำหรับโหนดพาเรนต์แต่ละลำดับชั้นแพคเกจยังประกอบด้วยฟังก์ชันการทำนายและฟังก์ชันประสิทธิภาพการทำงาน การวัดประสิทธิภาพอย่างใดอย่างหนึ่งจริงบัญชีสำหรับโครงสร้างคลาสลำดับชั้น

แพคเกจที่อยู่ข้ามการโต้ตอบระดับโดยการเรียกใช้ฟอเรสต์แบบสุ่มเป็นตัวแยกประเภทท้องถิ่นที่แต่ละโหนดหลักของลำดับชั้นของคลาส ถัดไปฟังก์ชั่นการคาดคะเนจะดึงสัดส่วนของคะแนนโหวตที่แต่ละกรณีได้รับในตัวจําแนกท้องถิ่นแต่ละตัว จากนั้นมีสองวิธีในการเปลี่ยนสัดส่วนของคะแนนเป็นหมวดหมู่ที่คมชัด: 1. กฎเสียงส่วนใหญ่แบบขั้นตอน - เริ่มต้นด้วยตัวจําแนกท้องถิ่นที่ใกล้กับรากต้นไม้และเลือกลูกของตัวจําแนกประเภทนี้ที่ได้รับคะแนนโหวตสูงสุด ถัดไปดูที่ลูกทั้งหมดของโหนดที่เลือกและเลือกเด็กที่ได้รับคะแนนสูงสุดในตัวแยกประเภทท้องถิ่นที่เกี่ยวข้อง ทำต่อไปจนกระทั่งถึงโหนดเทอร์มินัล 2

สัดส่วนทวีคูณของคะแนนโหวตเทียบได้กับสัดส่วนของคะแนนโหวตที่ผลิตโดยป่าสุ่ม


2
คุณช่วยอธิบายได้หรือไม่ว่าแพคเกจของคุณเน้นที่ "การโต้ตอบข้ามระดับ" และถ้าเป็นเช่นนั้นมันจะทำอย่างไร เพียงแค่บอกว่ามีแพ็คเกจอยู่ไม่ตอบมาก (ฉันไม่ได้ตั้งใจจะสำคัญเกินไปที่นี่ แต่ CV ต้องการสร้างที่เก็บถาวรสำหรับข้อมูล ML คุณภาพสูง & ความจริงที่ว่าแพ็กเกจนั้นไม่มีอยู่จริง ค่อนข้างเป็นไปตามมาตรฐานดังกล่าว)
gung - Reinstate Monica

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

เยี่ยมมากขอบคุณ @YoniGavish ทำไมไม่แก้ไขคำตอบของคุณและเพิ่มข้อมูลนั้นเข้าไป?
gung - Reinstate Monica

@gung นั้นดีกว่าไหม?
Yoni Gavish

ใช่นั่นจะทำเช่นนั้น @YoniGavish, +1 ยินดีต้อนรับสู่เว็บไซต์
gung - Reinstate Monica

3

ในแผนผังการจำแนกเดี่ยวกลุ่มเหล่านี้จะถูกเข้ารหัสเหมือนกับตัวแปรเด็ดขาดอื่น ๆ มักจะทำเช่นนี้เป็นการเข้ารหัสไบนารีหรือเพียงแค่ใช้จำนวนเต็ม มีข้อโต้แย้งต่าง ๆ สำหรับการใช้อย่างใดอย่างหนึ่ง ในฟอเรสต์สุ่มถ้าคุณใช้การเข้ารหัสแบบไบนารีบางกลุ่มจะถูกรวม / แยกสำหรับต้นไม้ที่กำหนด ดังนั้นคุณอาจจะมีตัวบ่งชี้สำหรับแต่ไม่country_2 country_3หากคุณปล่อยให้ตัวแปรกลุ่มเป็นจำนวนเต็มการเรียงลำดับอาจส่งผลต่อผลลัพธ์เช่นกัน มันหมายถึงอะไรcountry > 5และcountry < 12? มันจะเปลี่ยนแปลงอย่างไรถ้าคุณสุ่มป้ายกำกับประเทศด้วยจำนวนเต็มใหม่แบบสุ่ม?

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

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

ในกรณีของคุณcountryและpopulationcollinear อย่างสมบูรณ์แบบ ไม่มีข้อมูลที่ได้รับจากการใช้ตัวแปรทั้งสองในแบบจำลองของคุณ ดังนั้นคุณสามารถคิดได้ว่าแบบจำลองฟอเรสต์แบบสุ่มจะรักษาตัวแปรเหล่านี้ในข้อมูลของคุณอย่างไร

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