เรายังต้องเลือกคุณสมบัติในขณะใช้อัลกอริทึม


20

ฉันมีคำถามหนึ่งข้อที่ต้องใช้วิธีการเลือกคุณลักษณะ (สุ่มป่าคุณลักษณะค่าความสำคัญหรือวิธีการเลือกคุณสมบัติแบบไม่รวมตัวแปร) ก่อนใช้อัลกอริทึมการเรียนรู้เชิงสถิติ

เรารู้ว่าเพื่อหลีกเลี่ยงการ overfitting เราสามารถแนะนำการปรับความสม่ำเสมอในเวกเตอร์น้ำหนัก

ดังนั้นถ้าฉันต้องการทำการถดถอยเชิงเส้นจากนั้นฉันสามารถแนะนำ L2 หรือ L1 หรือแม้แต่พารามิเตอร์การทำให้เป็นมาตรฐานสุทธิยืดหยุ่น ในการรับโซลูชันที่กระจัดกระจายการลงโทษ L1 จะช่วยในการเลือกคุณลักษณะ

ถ้าอย่างนั้นก็ยังต้องเลือกคุณสมบัติก่อนใช้การถดถอยปกติของ L1 เช่น Lasso? ในทางเทคนิค Lasso ช่วยฉันลดฟีเจอร์ด้วยการลงโทษ L1 แล้วทำไมต้องเลือกฟีเจอร์ก่อนใช้งาน algo?

ฉันอ่านบทความวิจัยที่บอกว่าการทำ Anova จากนั้น SVM ให้ประสิทธิภาพที่ดีกว่าการใช้ SVM เพียงอย่างเดียว ตอนนี้คำถามคือ: SVM ทำการทำให้เป็นมาตรฐานโดยใช้ L2 เป็นประจำ เพื่อให้ได้มาร์จิ้นที่มากที่สุดก็คือการลดขนาดของเวกเตอร์น้ำหนัก ดังนั้นมันจึงทำให้เป็นมาตรฐานในฟังก์ชันวัตถุประสงค์ ถ้าเช่นนั้นอัลกอริทึมทางเทคนิคเช่น SVM ไม่ควรกังวลเกี่ยวกับวิธีการเลือกคุณสมบัติหรือไม่ แต่รายงานยังคงกล่าวว่าการเลือกคุณลักษณะ Univariate ก่อน SVM ปกติจะมีประสิทธิภาพมากกว่า

ใครที่มีความคิด


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

คำตอบ:


17

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

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

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

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


คุณหมายถึงอะไรด้วยการซ้อนข้ามแบบหลายระดับ? มันใช้การตรวจสอบไขว้แบบ k-fold N ครั้งหรือไม่?
yasin.yazici

5

Jβ^J=0001β^J=0

อย่างไรก็ตามยังมีเหตุผลในการลบตัวแปรทั้งหมด

  1. บางครั้งเป้าหมายไม่ใช่ความแม่นยำในการทำนาย แต่เป็นการอธิบายปรากฏการณ์โลก บางครั้งคุณต้องการทราบว่าตัวแปรทำอะไรและไม่ส่งผลกระทบต่อตัวแปรตาม ในสถานการณ์ประเภทนี้แบบจำลองที่เป็นทางเลือกเป็นวิธีที่ต้องการทำความเข้าใจและตีความ
  2. β^J
  3. เหตุผลในการคำนวณ - รุ่นที่มีตัวแปรน้อยกว่าจะทำงานได้เร็วขึ้นและคุณไม่จำเป็นต้องจัดเก็บข้อมูลสำหรับตัวแปรภายนอกเหล่านั้น

2
สวัสดี TrynnaDoStat ฉันเห็นด้วยกับจุดที่ 1 และ 3 ของคุณทั้งหมด แต่ข้อโต้แย้งที่ 2 ไม่ได้เป็นประเด็น หากคุณเลือกคุณสมบัติด้วยชุดข้อมูลเดียวกันคุณมีความเสี่ยงที่จะเลือกชุดคุณลักษณะที่ไม่ถูกต้อง เนื่องจากดูเหมือนว่าตัวแปรสุ่มตัวหนึ่งอาจมีความสัมพันธ์ที่ดีกับตัวแปรเป้าหมายในข้อมูล
gstar2002

β^J

0

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

ฉันอยากจะบอกว่าการเลือกคุณสมบัตินั้นเป็นขั้นตอนก่อนการประมวลผลสำหรับรุ่นที่ไม่มีอำนาจในการกำหนดความสำคัญของคุณสมบัติด้วยตนเองหรือสำหรับอัลกอริทึมที่มีประสิทธิภาพน้อยกว่ามากหากต้องทำการลดน้ำหนักด้วยตัวเอง .

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

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

ในที่สุดดูเครือข่ายประสาท อีกครั้งนี่คือรูปแบบที่มีอำนาจในการละเว้นคุณสมบัติที่ไม่เกี่ยวข้องและการฝึกอบรมโดย backpropagation มักจะมาบรรจบกันเพื่อใช้คุณสมบัติที่น่าสนใจ อย่างไรก็ตามเป็นที่ทราบกันดีว่าอัลกอริธึมการฝึกอบรมมาตรฐานมาบรรจบกันได้เร็วขึ้นหากอินพุตเป็น "สีขาว" เช่นปรับสัดส่วนให้เป็นความแปรปรวนของหน่วยและมีการลบข้ามสหสัมพันธ์(LeCun et al, 1998)1998) ดังนั้นแม้ว่าคุณไม่จำเป็นต้องทำการเลือกคุณสมบัติอย่างเคร่งครัด แต่ก็สามารถชำระเป็นเงื่อนไขบริสุทธิ์เพื่อทำการประมวลผลข้อมูลอินพุตล่วงหน้า

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


3
(1) ฉันไม่เห็นด้วยกับข้อเสนอแรกของคุณ การเลือกคุณสมบัติไม่ลดปริมาณข้อมูล แต่ลดจำนวนคุณสมบัติ จำนวนอินสแตนซ์ (ตัวอย่าง) ยังคงเหมือนเดิมและสามารถช่วยในการ overfitting เนื่องจากตัวจําแนกต้องการพารามิเตอร์น้อยลง (ถ้าเป็นโมเดลพารามิเตอร์) เพื่อให้พอดีกับข้อมูล พารามิเตอร์ที่น้อยลงหมายถึงพลังการเป็นตัวแทนที่น้อยลง (2) อัลกอริธึมการเลือกคุณลักษณะประเภทใดที่คุณกล่าวถึงการใช้งานก่อน KNN มันรู้ได้อย่างไรว่าฟีเจอร์ใดจะมีประสิทธิภาพมากกว่า
yasin.yazici

@ yasin.yazici: สมมติว่าคุณกำลังจัดหมวดหมู่ตัวเลขด้วยลายมือและคุณละทิ้งทุกอย่างยกเว้นพิกเซลบนซ้ายสุด คุณไม่ลดปริมาณข้อมูลที่คุณมีลงหรือเปล่า
cfh

@chf ไม่มันลดจำนวนคุณสมบัติเท่านั้น เพื่อบอกว่าชุดข้อมูลเป็น MNIST มี 784 ฟีเจอร์สำหรับแต่ละตัวอย่างและ 60000 ตัวอย่าง หากคุณทิ้งคุณสมบัติบางส่วนไปคุณก็ยังมีตัวอย่าง 60000 ตัวอย่าง
yasin.yazici

@ yasin.yazici: จุดของฉันคือจำนวนตัวอย่างไม่เหมือนกับจำนวนข้อมูล Data เป็นเมทริกซ์ทั้งหมดของ "ตัวอย่างคุณสมบัติ x"
cfh

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

0

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

นอกจากนี้อาจมีคุณสมบัติบางอย่างที่คุณไม่ต้องการในแบบจำลองของคุณตามความเข้าใจในธุรกิจซึ่งคุณอาจต้องการลบ


0

ในกรณีของ Lasso การประมวลผลข้อมูลล่วงหน้าเพื่อลบคุณลักษณะที่น่ารำคาญนั้นเป็นเรื่องปกติ สำหรับกระดาษที่ผ่านการหารือวิธีที่จะทำนี้โปรดดูที่การตรวจคัดกรอง Xiang et al, สำหรับปัญหาเชือก แรงจูงใจทั่วไปที่กล่าวถึงในเอกสารที่ฉันเคยเห็นคือการลดภาระการคำนวณของการคำนวณโซลูชัน

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