มันเหมาะสมหรือไม่ที่จะทำ PCA ก่อนที่จะทำการจำแนกป่าแบบสุ่ม?
ฉันกำลังจัดการกับข้อมูลข้อความมิติสูงและฉันต้องการลดฟีเจอร์เพื่อช่วยหลีกเลี่ยงการสาปแช่งของมิติ แต่ไม่ป่าสุ่มไปแล้วเพื่อลดขนาด
มันเหมาะสมหรือไม่ที่จะทำ PCA ก่อนที่จะทำการจำแนกป่าแบบสุ่ม?
ฉันกำลังจัดการกับข้อมูลข้อความมิติสูงและฉันต้องการลดฟีเจอร์เพื่อช่วยหลีกเลี่ยงการสาปแช่งของมิติ แต่ไม่ป่าสุ่มไปแล้วเพื่อลดขนาด
คำตอบ:
ลีโอ Brieman เขียนว่า "มิติสามารถเป็นพร" โดยทั่วไปฟอเรสต์แบบสุ่มสามารถทำงานบนชุดข้อมูลขนาดใหญ่ได้โดยไม่มีปัญหา ข้อมูลของคุณมีขนาดใหญ่แค่ไหน? สาขาที่แตกต่างกันจัดการสิ่งต่าง ๆ ในรูปแบบที่แตกต่างกันขึ้นอยู่กับความรู้ในสาระการเรียนรู้ ยกตัวอย่างเช่นในการศึกษาการแสดงออกของยีนยีนมักจะถูกกำจัดทิ้งโดยอาศัยความแปรปรวนต่ำ สิ่งนี้สามารถช่วยในเวลาทำงานบนฟอเรสต์แบบสุ่ม แต่มันไม่จำเป็น
การยึดติดกับตัวอย่างการแสดงออกของยีนบางครั้งนักวิเคราะห์ใช้คะแนน PCA เพื่อแสดงการวัดการแสดงออกของยีน ความคิดคือการแทนที่โปรไฟล์ที่คล้ายกันด้วยหนึ่งคะแนนที่อาจยุ่งน้อยลง ฟอเรสต์แบบสุ่มสามารถเรียกใช้ได้ทั้งกับตัวแปรดั้งเดิมหรือคะแนน PCA (ตัวแทนสำหรับตัวแปร) บางคนรายงานผลลัพธ์ที่ดีขึ้นด้วยวิธีนี้ แต่ไม่มีการเปรียบเทียบความรู้ของฉันที่ดี
โดยสรุปไม่จำเป็นต้องทำ PCA ก่อนใช้งาน RF แต่คุณทำได้. การตีความอาจเปลี่ยนแปลงได้ขึ้นอยู่กับเป้าหมายของคุณ หากสิ่งที่คุณต้องการทำคือการทำนายการตีความอาจมีความสำคัญน้อยกว่า
ฉันต้องการเพิ่มสองเซ็นต์ของฉันเพราะฉันคิดว่าคำตอบที่มีอยู่ไม่สมบูรณ์
การแสดง PCA นั้นมีประโยชน์อย่างยิ่งก่อนการฝึกอบรมฟอเรสต์แบบสุ่ม (หรือ LightGBM หรือวิธีการตัดสินใจแบบต้นไม้อื่น ๆ ) ด้วยเหตุผลหนึ่งข้อที่ฉันแสดงในรูปด้านล่าง
โดยพื้นฐานแล้วมันสามารถทำให้กระบวนการค้นหาขอบเขตการตัดสินใจที่สมบูรณ์แบบง่ายขึ้นโดยจัดแนวการฝึกอบรมของคุณตามทิศทางที่มีความแปรปรวนสูงสุด
ต้นไม้การตัดสินใจมีความอ่อนไหวต่อการหมุนของข้อมูลเนื่องจากขอบเขตการตัดสินใจที่พวกเขาสร้างนั้นเป็นแนวตั้ง / แนวนอนเสมอ (เช่นตั้งฉากกับแกนใดแกนหนึ่ง) ดังนั้นหากข้อมูลของคุณดูเหมือนรูปซ้ายมันจะต้องใช้ต้นไม้ใหญ่กว่ามากเพื่อแยกกลุ่มสองกลุ่มนี้ (ในกรณีนี้คือต้นไม้ 8 ชั้น) แต่ถ้าคุณจัดแนวข้อมูลของคุณตามส่วนประกอบหลัก (เช่นในรูปที่ถูกต้อง) คุณสามารถแยกได้อย่างสมบูรณ์แบบด้วยเลเยอร์เดียว!
แน่นอนว่าไม่ใช่ชุดข้อมูลทั้งหมดที่มีการกระจายเช่นนี้ดังนั้น PCA อาจไม่ได้ช่วยเสมอไป แต่ก็ยังมีประโยชน์ในการลองและดูว่ามีประโยชน์หรือไม่ อย่าลืมที่จะทำให้ชุดข้อมูลของคุณเป็นแบบปกติกับความแปรปรวนของหน่วยก่อนทำการ PCA!
ป.ล. : สำหรับการลดขนาดผมจะเห็นด้วยกับคนอื่น ๆ ที่มักจะไม่เป็นปัญหาใหญ่สำหรับป่าสุ่ม ๆ สำหรับอัลกอริธึมอื่น ๆ แต่ถึงกระนั้นก็อาจช่วยเร่งการฝึกอบรมของคุณเพียงเล็กน้อย เวลาฝึกอบรมการตัดสินใจต้นไม้คือ O (n m log (m)) โดยที่ n คือจำนวนอินสแตนซ์การฝึกอบรม m - จำนวนมิติ และถึงแม้ว่าป่าสุ่มจะสุ่มเลือกชุดย่อยของมิติสำหรับต้นไม้แต่ละต้นที่จะได้รับการฝึกอบรมส่วนล่างของจำนวนมิติทั้งหมดที่คุณเลือกน้อยลงต้นไม้ที่คุณต้องฝึกเพื่อให้ได้ประสิทธิภาพที่ดี
PCA ก่อนฟอเรสต์แบบสุ่มจะมีประโยชน์ไม่ใช่เพื่อการลดขนาด แต่เพื่อให้ข้อมูลของคุณมีรูปร่างที่ฟอเรสต์แบบสุ่มสามารถทำงานได้ดีขึ้น
ฉันเงียบแน่นอนว่าโดยทั่วไปถ้าคุณแปลงข้อมูลของคุณด้วย PCA รักษามิติเดิมของข้อมูลเดิมคุณจะมีการจำแนกที่ดีขึ้นด้วยฟอเรสต์แบบสุ่ม
mtry
พารามิเตอร์) เพื่อสร้างต้นไม้แต่ละต้น นอกจากนี้ยังมีเทคนิคการกำจัดคุณลักษณะแบบเรียกซ้ำที่สร้างขึ้นบนอัลกอริทึม RF (ดูแพ็คเกจ varSelRF R และการอ้างอิงในนั้น) อย่างไรก็ตามเป็นไปได้อย่างแน่นอนที่จะเพิ่มรูปแบบการลดข้อมูลเริ่มต้นถึงแม้ว่ามันควรจะเป็นส่วนหนึ่งของกระบวนการตรวจสอบข้าม ดังนั้นคำถามคือคุณต้องการใส่การผสมผสานเชิงเส้นของคุณสมบัติของคุณไปยัง RF หรือไม่?