การเลือกคุณสมบัติสำหรับ Support Vector Machines


9

คำถามของฉันคือสามเท่า

ในบริบทของ "Kernelized" รองรับเครื่องเวกเตอร์

  1. การเลือกตัวแปร / คุณสมบัติเป็นสิ่งที่ต้องการ - โดยเฉพาะอย่างยิ่งเมื่อเราทำการปรับพารามิเตอร์ C เพื่อป้องกันการ overfitting และแรงจูงใจหลักที่อยู่เบื้องหลังการนำเมล็ดไปยัง SVM คือการเพิ่มมิติของปัญหาในกรณีเช่นนี้การลดขนาดโดยการลดพารามิเตอร์
  2. หากคำตอบของคำถามที่ 1 คือ "ไม่" ดังนั้นคำตอบของคำถามที่ควรคำนึงถึงคืออะไร?
  3. มีวิธีการที่ดีที่พยายามลดคุณสมบัติสำหรับ SVM ในห้องสมุด scikit-Learn ของ python หรือไม่ฉันได้ลองใช้วิธี SelectFpr แล้วและกำลังมองหาคนที่มีประสบการณ์ด้วยวิธีการที่แตกต่างกัน

1
การเลือกคุณสมบัติจะช่วยได้ตลอดเวลาเว้นแต่ว่าคุณสมบัติเริ่มต้นของคุณจะมีคุณภาพสูงเป็นพิเศษตั้งแต่เริ่มต้น Sklearn มีไลบรารีการเลือกคุณลักษณะที่แตกต่างกันมากมาย ( scikit-learn.org/stable/modules/feature_selection.html ) ฉันเป็นส่วนหนึ่งของ RFE
David

1
คุณไม่ได้กล่าวถึงบริบทของคุณ - โปรดทราบว่าหากอยู่ในบริบททางธุรกิจคุณลักษณะทุกอย่างที่ยังคงอยู่ในแบบจำลองจะต้องมีการบำรุงรักษาในระดับหนึ่ง - มีค่าใช้จ่ายที่แท้จริงหากคุณมีตัวแปรมากขึ้นในแง่ที่ว่า ตัวอย่างเช่นต้องการความพยายามในการรวบรวมข้อมูลเวลา DBA และเวลาการเขียนโปรแกรมที่มากขึ้น การพิจารณานี้เห็นได้ชัดว่าไม่ได้ใช้หากเป็นของ Kaggle comp หรือสิ่งที่คล้ายกันและหากใช้คุณสมบัติเพิ่มเติม 200 รายการในชุดข้อมูลจะช่วยให้คุณได้รับประสิทธิภาพที่เพิ่มขึ้น 0.01% เมื่อเทียบกับเงินจริง
Robert de Graaf

คำตอบ:


3

ส่วนตัวผมชอบแบ่งการเลือกคุณสมบัติในสอง:

  • การเลือกคุณสมบัติที่ไม่ได้รับการสนับสนุน
  • การเลือกคุณสมบัติที่อยู่ภายใต้การดูแล

การเลือกคุณสมบัติที่ไม่ได้รับการสำรองคือสิ่งต่าง ๆ เช่นการทำคลัสเตอร์หรือ PCA ซึ่งคุณเลือกช่วงของคุณสมบัติที่ซ้ำซ้อนน้อยที่สุด (หรือสร้างคุณลักษณะที่มีความซ้ำซ้อนเล็กน้อย) การเลือกคุณสมบัติที่อยู่ภายใต้การดูแลคือสิ่งที่เหมือน Lasso ที่คุณเลือกคุณสมบัติที่มีพลังในการทำนายมากที่สุด

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

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

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

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