การจำแนกประเภทที่มีข้อมูลไขมันสูง


15

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

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

"Pegasos: Primal Estlated Sub-GrAdient SOlver สำหรับ SVM" Shai Shalev-Shwartz, Yoram นักร้อง, Nathan Srebro, Andrew Cotter "การเขียนโปรแกรมคณิตศาสตร์, Series B, 127 (1): 3-30, ปี: 2007"

ฉันทามตินี้หรือไม่ ฉันควรมองไปในทิศทางอื่นไหม?


1
คุณเคยคิดที่จะใช้วิธีการลดขนาดบ้างไหม? ฟีเจอร์หลายพันรายการต้องการการลดขนาดดู: en.wikipedia.org/wiki/Dimension_reduction
Dov

คำถามนี้สามารถปรับปรุงได้ด้วยความพยายามวิจัย คุณมีเทคนิคในใจไหม?
Tamzin Blake

@Thom Blake: ฉันได้แก้ไขคำถามเล็กน้อยด้วยความคิดของฉัน
carlosdc

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

2
tall = หลายแต้ม fat = คุณสมบัติมากมาย? คำศัพท์มาตรฐานนี้ใช้ที่ใดก็ได้ในการอ้างอิงบางแห่ง

คำตอบ:


6

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

หากคุณกำลังใช้ Matlab มีกล่องเครื่องมือที่ดีจริงๆที่เรียกว่าความเชื่อโดยฟราน Orabona ซึ่งมีช่วงของขั้นตอนวิธีการเรียนรู้ออนไลน์และคุณสามารถประเมินวิธีการที่แตกต่างกันไม่กี่ที่ใช้ ฉันเคยใช้สิ่งนี้ในการวิจัยของฉันและพบว่ามันมีประโยชน์มาก (โปรดทราบว่าเท่าที่ฉันจำได้ว่ามันคาดว่าข้อมูลเป็น [คุณสมบัติ x ตัวอย่าง] ดังนั้นคุณอาจต้องเปลี่ยนมัน)

ดังที่คนอื่น ๆ พูดถึงคุณอาจต้องการลองลดขนาด PCA อาจไม่ใช่ตัวเลือกที่ดีเช่นนี้เนื่องจากคุณต้องคำนวณเมทริกซ์ความแปรปรวนร่วมซึ่งจะมีราคาแพงมาก คุณอาจจะลองมองหาที่ประมาณการสุ่ม ทฤษฎีนั้นแข็งแกร่ง แต่หลักการนั้นง่ายมาก มันขึ้นอยู่กับจอห์นสัน Lindenstrauss แทรกหากคุณสนใจ แต่ความคิดพื้นฐานคือว่าถ้าคุณสุ่มโครงการไปยังพื้นที่ที่ต่ำกว่ามิติแล้วระยะทางระหว่างจุดที่จะถูกเก็บไว้ได้ถึงบางε หากคุณกำลังใช้เคอร์เนล RBF ระยะทาง2ทั้งหมดที่คุณสนใจ!2ϵ2


7

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

ฉันแนะนำให้คุณลองตัวแยกประเภทที่แตกต่างกันหลายตัวและสังเกตข้อผิดพลาดในการทำนาย

หากหน่วยความจำไม่เพียงพอลดขนาดโดยใช้PCA


2
ขอบคุณ ฉันกำลังคิดเกี่ยวกับวิธีจัดการกับปัญหา ฉันต้องการเริ่มต้นด้วยการทำเชิงเส้นเพราะมันง่ายกว่า ฉันคิดว่าคุณแนะนำวิธีการใช้เคอร์เนล ขอผมชี้ให้เห็นว่าถ้าฉันมี 750000 ดาต้าพอยน์เคอร์เนลเมทริกซ์จะมีขนาด 540 GB ดังนั้นคำตอบจึงไม่สามารถ: เสียบเข้ากับ LIBSVM / SVMLight / etc รับ C และแกมมาที่ดีและดูสิ่งที่คุณได้รับ
carlosdc

2
(-1) คำตอบคือ a) บางส่วนทั่วไปมันสามารถนำไปใช้กับคำถามการจำแนกประเภท b) มันไม่ได้อธิบายว่าทำไมแนะนำ PCA (มากกว่าเทคนิคการลดขนาดอื่น ๆ )
steffen

3

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

นี่คือกระดาษที่อธิบาย (แต่ฉันขอแนะนำให้ทำการค้นหาของคุณเอง): http://users.ics.tkk.fi/oja/Oja1982.pdfและนี่คือลิงค์ไปยัง somethings ที่อาจจะใช้งาน matlab: http :


1

ตามที่ jb แนะนำฉันคิดว่าเป็นการดีกว่าที่จะใช้วิธี "การลดขนาด" การวิเคราะห์องค์ประกอบหลัก (PCA) เป็นตัวเลือกยอดนิยม นอกจากนี้คุณสามารถลองใช้เทคนิคการเรียนรู้คุณสมบัติที่ไม่มีผู้ดูแลได้เช่นกัน สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการเรียนรู้คุณสมบัติที่ไม่ได้รับอนุญาตสามารถดูได้ที่http://ufldl.stanford.edu/wiki/index.php/UFLDL_Tutorial


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