PCA และฟอเรสต์แบบสุ่ม


12

สำหรับการแข่งขัน Kaggle เมื่อเร็ว ๆ นี้ฉัน (กำหนดเอง) กำหนดคุณสมบัติเพิ่มเติมอีก 10 รายการสำหรับชุดการฝึกอบรมของฉันซึ่งจะใช้ในการฝึกอบรมตัวจําแนกป่าแบบสุ่ม ฉันตัดสินใจเรียกใช้ PCA บนชุดข้อมูลด้วยคุณสมบัติใหม่เพื่อดูว่าพวกเขาเปรียบเทียบกันอย่างไร ฉันพบว่าประมาณ 98% ของความแปรปรวนดำเนินการโดยองค์ประกอบแรก (eigenvector แรก) จากนั้นฉันฝึกตัวจําแนกหลายครั้งเพิ่มคุณสมบัติทีละรายการและใช้การตรวจสอบข้ามและข้อผิดพลาด RMS เพื่อเปรียบเทียบคุณภาพของการจําแนก ฉันพบว่าการจัดหมวดหมู่ได้รับการปรับปรุงด้วยคุณสมบัติเพิ่มเติมแต่ละรายการและผลลัพธ์สุดท้าย (พร้อมคุณสมบัติใหม่ทั้ง 10 รายการ) นั้นดีกว่าการเรียกใช้ครั้งแรกด้วย (พูด) คุณสมบัติ 2 อย่าง

  • เนื่องจาก PCA อ้างว่า ~ 98% ของความแปรปรวนอยู่ในองค์ประกอบแรกของชุดข้อมูลของฉันทำไมคุณภาพของการจำแนกประเภทจึงพัฒนาขึ้นมาก

  • สิ่งนี้จะเป็นจริงสำหรับตัวแยกประเภทอื่นหรือไม่ RF ปรับข้ามหลายคอร์ดังนั้นจึงเร็วกว่าในการฝึกอบรม (พูด) SVM

  • ถ้าฉันแปลงชุดข้อมูลไปเป็นพื้นที่ "PCA" แล้วเรียกใช้ตัวจําแนกในพื้นที่แปลง ผลลัพธ์ของฉันจะเปลี่ยนแปลงอย่างไร


2
คุณทำให้ข้อมูลของคุณเป็นปกติก่อนเรียกใช้ PCA หรือไม่ ถ้าฉันต้องเดาว่าฉันคิดว่าหนึ่งในฟีเจอร์ของคุณมีขนาดใหญ่กว่าฟีเจอร์อื่น ๆ ...
Marc Shivers

1
ฟังก์ชั่น PCA จะทำให้ทุกอย่างเป็นปกติโดยอัตโนมัติเมื่อทำการคำนวณ
Vishal

1
อาจเป็นเพียงฉัน แต่คุณสามารถอธิบายได้ดังต่อไปนี้: ขั้นตอนแรกของคุณประกอบด้วยการเพิ่มคุณสมบัติ 10 รายการ (ดิบ) ทีละรายการหรือคุณทำงานกับส่วนประกอบ PCA โดยตรงหรือไม่ ตามที่ระบุไว้ฉันเข้าใจว่านี่เป็นกรณีแรกและคุณสงสัยว่าคุณสามารถทำงานกับผลลัพธ์โดยตรงจาก PCA ได้หรือไม่ ไม่ว่าในกรณีใดคุณใช้ PCA กับตัวแปรทั้งหมดรวมถึงคุณสมบัติใหม่หรือในภายหลังหรือไม่?
chl

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

คำตอบ:


7

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

สิ่งนี้มักถูกอธิบายว่าเป็นความแตกต่างระหว่างการถดถอยส่วนประกอบหลักแทนที่จะเป็นสี่เหลี่ยมจัตุรัสน้อยบางส่วน


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

1
ตรรกะเดียวกันยังคงสามารถใช้งานได้ ฟีเจอร์ใหม่นั้นมีความโดดเด่นเป็นอย่างมากเมื่อเทียบกับฟีเจอร์ก่อนหน้านี้ยังคงสามารถนำมาซึ่งพลังการทำนายได้มากขึ้น โดยเฉพาะสำหรับ randomForest: หากคุณลักษณะที่ซ้ำกันใกล้มีความสำคัญโดยทั่วไปแล้วจะมีการเลือกรุ่นหนึ่งหรืออีกรุ่นหนึ่งเป็นผู้สมัครแยก
Shea Parkes

นี่จะเป็นคำถามติดตามผลคุณจะเลือกคุณลักษณะเบื้องต้นอย่างไรสำหรับตัวจําแนกฟอเรสต์แบบสุ่มของคุณเพื่อปรับปรุงการจัดประเภทโดยไม่ต้องใช้ตัวจําแนกจริง ๆ มีกระบวนการคัดกรองไหม? คุณจะทำอย่างไรมันได้หรือไม่? :)
Vishal

ฉันไม่ทราบวิธีการเลือก a-Priori ที่เป็นประโยชน์ คุณสามารถทำลูปซ้อนกันมากที่มีความสำคัญและการเลือกแพคเกจผ่าน R Borutaบางอย่างเช่น ฉันไม่พบว่ามีประโยชน์เช่นกัน ฉันคิดว่ามันไม่มีเหตุผลที่จะเชื่อว่าคุณลักษณะที่กำหนดไว้จะไม่มีผลกระทบใด ๆ ฉันเชื่อว่าการเน้นคุณสมบัติบางอย่างเหนือผู้อื่นอาจมีประโยชน์ แต่อัลกอริธึมพื้นฐานแบบสุ่มป่าไม้ทำสิ่งนี้ได้ค่อนข้างดีอยู่แล้ว หากคุณเป็นคนที่ลึกซึ้งในการสร้างแบบจำลองและต้องการประสิทธิภาพที่มากขึ้นฉันขอแนะนำให้วางอัลกอริทึมอื่น ๆ บางอย่างเป็นต้นไม้ที่ได้รับการสนับสนุนด้วยป่าสุ่มของคุณ
Shea Parkes

1
คุณสามารถคำนวณการวัดความสามารถแยกย่อยสำหรับคลาสของคุณตามคุณสมบัติของคุณ (ระยะทาง Jeffries-Matusita, Divergence, ฯลฯ ) สิ่งนี้จะช่วยให้คุณทราบโดยทั่วไปว่าคุณลักษณะใดช่วยให้คุณแยกแยะความแตกต่างระหว่างคลาสได้ แต่เนื่องจากการทำงานของ RF จึงไม่ใช่เรื่องง่ายที่จะเลือกจากที่นี่ซึ่งคุณลักษณะนี้มีชุดที่ดีที่สุดสำหรับการจำแนกประเภท สิ่งกีดขวางที่ชัดเจนอย่างหนึ่งที่นี่ก็คือ RF ค้นหาการโต้ตอบของตัวแปรด้วยตัวเอง
JEquihua

6

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

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


3
"ในความเป็นจริงเราได้พูดคุยเกี่ยวกับประวัติย่อของ CV ที่ PCA" คุณมีลิงก์ไปยังสิ่งนี้หรือไม่? ฉันสนใจมาก :)
603

ฉันจะมองหาการสนทนา
Michael R. Chernick

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