(สมมติว่าคุณกำลังพูดถึงการเรียนรู้แบบมีผู้สอน)
ฟีเจอร์ที่สัมพันธ์กันจะไม่ทำให้แบบจำลองของคุณแย่ลง แต่จะไม่ทำให้ดีขึ้นเสมอ
มีเหตุผลหลักสามประการที่คุณจะลบคุณลักษณะที่เกี่ยวข้อง:
- ทำให้อัลกอริทึมการเรียนรู้เร็วขึ้น
เนื่องจากคำสาปของขนาดมิติคุณสมบัติที่น้อยลงมักจะหมายถึงการปรับปรุงความเร็วสูง
หากความเร็วไม่ใช่ปัญหาอาจไม่ลบคุณลักษณะเหล่านี้ทันที (ดูประเด็นต่อไป)
คำหลักเป็นอันตราย หากคุณมีคุณสมบัติที่สัมพันธ์กัน แต่มีความสัมพันธ์กับเป้าหมายคุณต้องการเก็บไว้ คุณสามารถดูคุณสมบัติต่างๆเป็นคำใบ้เพื่อคาดเดาได้ดีหากคุณมีคำใบ้สองคำที่เหมือนกัน แต่โดยพื้นฐานแล้วมันเป็นคำใบ้ที่ดี
อัลกอริทึมบางอย่างเช่น Naive Bayes ได้รับประโยชน์โดยตรงจากคุณสมบัติที่มีความสัมพันธ์ "บวก" และคนอื่น ๆ เช่นป่าสุ่มอาจได้รับประโยชน์ทางอ้อมจากพวกเขา
ลองนึกภาพว่าการมี 3 คุณลักษณะ A, B และ C A และ B นั้นมีความสัมพันธ์อย่างมากกับเป้าหมายและต่อกันและกันและ C ก็ไม่ได้เป็นเช่นนั้น หากคุณสุ่มจาก 3 ฟีเจอร์คุณมีโอกาส 2/3 ในการรับฟีเจอร์ "ดี" ในขณะที่ถ้าคุณลบ B เช่นโอกาสนี้จะลดลงเหลือ 1/2
แน่นอนว่าถ้าคุณสมบัติที่มีความสัมพันธ์กันนั้นไม่ได้ให้ข้อมูลมากนักในตอนแรกอัลกอริทึมอาจไม่ประสบปัญหามากนัก
ดังนั้นเรื่องคุณธรรมการลบคุณสมบัติเหล่านี้อาจจำเป็นเนื่องจากความเร็ว แต่โปรดจำไว้ว่าคุณอาจทำให้อัลกอริทึมของคุณแย่ลงในกระบวนการ นอกจากนี้อัลกอริทึมบางอย่างเช่นต้นไม้ตัดสินใจมีการเลือกคุณสมบัติที่ฝังอยู่ในนั้น
วิธีที่ดีในการจัดการกับสิ่งนี้คือการใช้วิธีการห่อหุ้มสำหรับการเลือกคุณสมบัติ มันจะลบคุณสมบัติที่ซ้ำซ้อนเฉพาะในกรณีที่ไม่ได้มีส่วนร่วมโดยตรงกับประสิทธิภาพ หากมีประโยชน์เช่นเดียวกับในอ่าวไร้เดียงสาพวกเขาจะถูกเก็บไว้ (แม้ว่าจะจำได้ว่าวิธีการห่อหุ้มมีราคาแพงและอาจนำไปสู่การ overfitting)
หากโมเดลของคุณจำเป็นต้องตีความได้คุณอาจถูกบังคับให้ทำให้มันง่ายขึ้น ตรวจสอบให้แน่ใจว่าได้จดจำมีดโกนของ Occam ด้วย หากโมเดลของคุณไม่ "แย่ลง" มากไปกว่านี้ด้วยฟีเจอร์ที่ลดลงคุณควรใช้ฟีเจอร์ที่น้อยลง