กรณีการใช้ RBF SVM (เทียบกับการถดถอยโลจิสติกและฟอเรสต์แบบสุ่ม)


10

สนับสนุนเครื่องเวกเตอร์ที่มีเคอร์เนลฟังก์ชั่นพื้นฐานเป็นตัวจําแนกภายใต้การดูแลทั่วไป

ในขณะที่ฉันรู้พื้นฐานทางทฤษฎีสำหรับ SVM เหล่านี้และจุดแข็งของพวกเขาฉันไม่ทราบถึงกรณีที่พวกเขาเป็นวิธีที่ต้องการ ดังนั้นจึงมีปัญหาหลายระดับที่ RBF SVMs เหนือกว่าเทคนิค ML อื่น ๆ หรือไม่? (ทั้งในแง่ของคะแนนหรืออื่น ๆ - เช่นความแข็งแกร่งความง่ายในการเริ่มต้นการตีความ ฯลฯ )

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

คำตอบ:


8

ฉันจะพยายามตอบคำถามนี้พร้อมหลักฐานที่ตีพิมพ์ประสบการณ์ส่วนตัวและการเก็งกำไร

A) หลักฐานที่เผยแพร่

บทความเดียวที่ฉันรู้ว่าช่วยตอบคำถามคือDelgado et al 2014 - เราต้องการลักษณนามนับร้อยในการแก้ปัญหาการจำแนกโลกแห่งความจริงหรือไม่? - JMLRซึ่งรันอัลกอริธึมและการใช้งานที่แตกต่างกันหลายร้อยชุดบนชุดข้อมูล 121 ชุดจาก UCI พวกเขาพบว่าแม้ว่า RBF SVM ไม่ใช่อัลกอริทึม "ดีที่สุด" (มันเป็นฟอเรสต์แบบสุ่มถ้าฉันจำได้อย่างถูกต้อง) แต่ก็เป็นหนึ่งใน 3 อันดับแรก (หรือ 5)

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

ข้อ จำกัด ในการสรุปผลที่ได้คือชุดข้อมูลมีความสูงและผอมเกือบทั้งหมด (n >> p) ไม่กระจัดกระจายมาก - ซึ่งฉันเดาว่าควรจะมีปัญหามากขึ้นสำหรับ RF และไม่ใหญ่มาก (ทั้ง n และ p)

ในที่สุดยังคงอยู่บนหลักฐานที่เผยแพร่ฉันขอแนะนำสองไซต์ที่เปรียบเทียบการใช้งานที่แตกต่างกันของป่าสุ่ม:

B) ประสบการณ์ส่วนตัว

ฉันเชื่อว่าเอกสารเช่น Delgado และสำคัญมากสำหรับชุมชนการเรียนรู้ของเครื่องดังนั้นฉันจึงพยายามจำลองผลลัพธ์ของพวกเขาภายใต้เงื่อนไขที่แตกต่างกัน ฉันใช้อัลกอริธึมที่แตกต่างกัน 15 ตัวในชุดข้อมูลไบนารีมากกว่า 100+ ชุด (จากชุดข้อมูลของ Delgado) ฉันยังคิดว่าฉันระมัดระวังในการเลือกพารามิเตอร์หลายมิติมากกว่านั้น

ผลลัพธ์ของฉันคือ SVM เป็น "อัลกอริทึมที่ดีที่สุด" (หมายถึงอันดับที่ 4.9) สิ่งที่ฉันใช้คือ SVM ผ่าน RF เพราะชุดข้อมูลดั้งเดิมมีปัญหาหลายคลาสซึ่งฉันจะกล่าวถึงในส่วนเก็งกำไร - ควรเป็นปัญหาสำหรับ SVM

แก้ไข (มิ.ย. / 16):

แต่ RF เป็นวิธีวิธีที่เร็วขึ้นและมันก็เป็นขั้นตอนวิธีการที่ดีที่สุดที่ 2 (หมายถึงอันดับ 5.6) ตามด้วย GBM (5.8) nnets (7.2) และอื่น ๆ ) ฉันไม่ได้ลองการถดถอยโลจิสติกมาตรฐานในปัญหาเหล่านี้ แต่ฉันลองใช้ net elastic (L1 และ L2 normalized LR) แต่มันทำงานได้ไม่ดี (หมายถึงระดับ 8.3) ~

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

บทความมีอยู่ที่http://arxiv.org/abs/1606.00930ปรากฎว่าหลังจากการวิเคราะห์แบบเต็ม RF และ SVM เกือบเทียบเท่าในแง่ของอัตราความผิดพลาดที่คาดหวังและ SVM นั้นเร็วที่สุด (เพื่อความประหลาดใจของฉัน !!) ฉันไม่ได้เน้นเรื่องการแนะนำ RF อีกต่อไป

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

นอกจากนี้สำหรับปัญหาที่ใหญ่ขึ้นมันอาจเป็นไปไม่ได้ที่จะใช้ตัวแก้ SVM แบบกลุ่ม (ฉันไม่เคยใช้ตัวแก้แบบ SVM ออนไลน์เช่นLASVMหรืออื่น ๆ )

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

C) การเก็งกำไร

ฉันไม่เคยทำงานเกี่ยวกับปัญหาหลายคลาสอย่างจริงจัง แต่ความรู้สึกของฉันคือ SVM ไม่ดีสำหรับพวกเขา ปัญหาไม่ใช่ปัญหาระหว่างโซลูชัน one-vs-one หรือ one-vs-all ทั้งหมด แต่การติดตั้งใช้งานทั้งหมดที่ฉันรู้จะใช้ไฮเปอร์พารามิเตอร์เดียวกันสำหรับตัวแยกประเภท (OVO หรือ OVA) ทั้งหมด การเลือกไฮเปอร์พารามิเตอร์ที่ถูกต้องสำหรับ SVM นั้นมีค่าใช้จ่ายสูงซึ่งการใช้งานแบบไม่มีชั้นวางที่ฉันรู้จะทำการค้นหาตัวแยกประเภทแต่ละตัว ฉันคาดการณ์ว่านี่เป็นปัญหาสำหรับ SVM (แต่ไม่ใช่ปัญหาสำหรับ RF !!)

จากนั้นอีกครั้งสำหรับปัญหาแบบหลายคลาสฉันจะไปที่ RF


คำตอบที่ดี! คุณมีโพสต์บล็อกสมุดบันทึกหรือสคริปต์ในการจำลอง Delgado et al ของคุณหรือไม่ (พารามิเตอร์การปรับแต่งตัวแปรการปรับขนาดมักมีความสำคัญเท่ากับตัวเลือกของอัลกอริทึมดังนั้นโดยที่ไม่ยากที่จะทำการอ้างสิทธิ์ที่รัดกุมเกี่ยวกับความเหนือกว่าของอัลกอริทึม)
Piotr Migdal

2-5,20,25,210,2152-15,2-10.5,2-6,2-1.5,230.5,1,2* * * *พี

0

ฉันไม่มีสิทธิ์เพียงพอที่จะสามารถเขียนความคิดเห็นได้ดังนั้นฉันจะให้คำตอบ / ข้อสังเกตของฉันที่นี่

จากประสบการณ์ของฉัน Support Vector Classifiers (SVC) มีแนวโน้มที่จะเสมอหรือดีกว่าวิธีอื่นเมื่อคลาสไบนารีมีความสมดุล สำหรับคลาสที่ไม่สมดุล SVC มีแนวโน้มที่จะทำงานได้ไม่ดี

ฉันไม่ได้จัดการกับปัญหาหลายคลาส แต่ฉันเห็นผลลัพธ์ที่ดีกับ SVC สำหรับปัญหาหลายคลาสเช่นกัน

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

หนึ่งในปัญหาที่ฉันมีกับ SVC คือมันไม่ได้ให้การวัดโดยนัย (เช่นความน่าจะเป็นที่คาดการณ์) เพื่อให้สามารถจัดลำดับการสังเกตได้ คุณสามารถใช้ Platt Scaling (นำไปใช้ในแพ็คเกจ sklearn.svm ใน Python) แต่ฉันเห็นความไม่สอดคล้องกันบางอย่าง (ฉันสามารถแบ่งปันรายละเอียดหากใครสนใจ)

ไม่แน่ใจว่าสิ่งนี้ตอบคำถามของคุณจริงหรือไม่ หวังว่าจะช่วย


0

RF และ (RBF) SVM มีทฤษฎีต่าง ๆ อยู่เบื้องหลัง แต่ถ้าคุณมีข้อมูลเพียงพอก็จะทำงานได้ดีเช่นเดียวกัน พวกเขาทั้งสองสามารถเรียนรู้ฟังก์ชั่นที่ซับซ้อนและจัดการกับตัวแปรและค่าผิดปกติ

หากคุณพยายามที่จะได้รับผลลัพธ์ที่ดีที่สุดสำหรับสิ่งที่ชอบ kaggle คุณจะรวมหลายรุ่นรวมถึง RF และ SVM ต่อไป

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

SVM (RBF เชิงเส้นหรือเป็นมาตรฐานสูง) จะเป็นที่ต้องการแน่นอนถ้าคุณมีข้อมูลจำนวนน้อยหรือคุณกำลังเผชิญกับมิติข้อมูล มีเหตุผลสองประการข้อหนึ่งคือดีกว่าที่จะมองหาไฮเปอร์แม็กซ์ขอบแทนที่จะเป็นซีรีย์ที่ดีที่สุดบนฟีเจอร์ของคุณและยังไม่จำเป็นต้องมีขอบเขตที่ซับซ้อนเพราะในพื้นที่มิติสูงจะมีไฮเปอร์เพลนบางอัน สามารถแยกข้อมูลได้อยู่ดี อีกปัญหาหนึ่งคือ RF ปรับแต่งยากขึ้น (มีพารามิเตอร์ปรับแต่งเพิ่มเติม) ดังนั้นคุณต้องการข้อมูลเพิ่มเติม

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

นอกจากนี้อาจมีราคาถูกกว่าในการจัดเก็บการสนับสนุนเวกเตอร์กว่าต้นไม้เต็ม

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

ทรัพยากรเพิ่มเติมบางอย่างที่ฉันพบมีความน่าสนใจ: https://www.quora.com/What-are-the-advantage-of-different-classification-algorithms http://videolectures.net/solomon_caruana_wslmw/

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