คำเตือน libsvm“ ถึงจำนวนสูงสุดของการวนซ้ำ” และการตรวจสอบความถูกต้องข้าม


20

ฉันกำลังใช้ libsvm ในโหมด C-SVC กับเคอร์เนลโพลิโนเมียลระดับ 2 และฉันต้องฝึก SVM หลายตัว ชุดฝึกอบรมแต่ละชุดมี 10 คุณสมบัติและ 5,000 เวกเตอร์ ในระหว่างการฝึกอบรมฉันได้รับคำเตือนนี้สำหรับ SVM ส่วนใหญ่ที่ฉันฝึก:

WARNING: reaching max number of iterations
optimization finished, #iter = 10000000

มีคนช่วยอธิบายอธิบายคำเตือนนี้ได้อย่างไรและอาจจะหลีกเลี่ยงได้อย่างไร

ฉันต้องการใช้การตรวจสอบข้ามสำหรับรุ่นของฉันเพื่อกำหนดตัวเลือกที่ดีที่สุดสำหรับแกมม่าและ C แผนของฉันคือลองใช้การรวมกันของค่า 10 ค่าเหล่านี้: 0.00001, 0.0001, 0.001, 0.01, 0.1, 1, 10, 100, 1,000, 10,000, 10,000 สำหรับพารามิเตอร์ทั้งสองและดูว่าชุดค่าผสมใดให้ความแม่นยำที่ดีที่สุดระหว่างการตรวจสอบ เพียงพอหรือไม่ ฉันควรใช้ค่ามากขึ้นในช่วงเวลานี้หรือฉันควรเลือกช่วงเวลาที่กว้างขึ้น?


ลองใช้โหมด NU_SVC ซึ่งน่าจะแก้ปัญหาของคุณได้
Hosein Bitaraf

คำตอบ:


20

WWW

มีสาเหตุหลายประการที่อาจเกิดขึ้นได้ฉันขอแนะนำให้คุณทำสิ่งต่อไปนี้:

  • ทำให้ข้อมูลของคุณเป็นปกติ
  • ตรวจสอบให้แน่ใจว่าคลาสของคุณมีความสมดุลมากหรือน้อย (มีขนาดใกล้เคียงกัน) หากไม่มีให้ใช้พารามิเตอร์ -w เพื่อกำหนดน้ำหนักต่างกัน
  • γ
    γยู'โวลต์+coeff0 ระดับ

โปรดทราบว่า LIBSVM แบบกระจายสำหรับ Windows ควรมีสคริปต์ Python ชื่อ grid.py ซึ่งสามารถทำการเลือกพารามิเตอร์ให้คุณได้ (ตามการตรวจสอบความถูกต้องไขว้และช่วงการค้นหาที่ระบุ) นอกจากนี้ยังสามารถสร้างโครงร่างเพื่อความแม่นยำของ SVM เครื่องมือนี้อาจมีประโยชน์มาก

คำถามต่อไปนี้ใน StackOverflow และคำถามที่เกี่ยวข้องอาจช่วยได้: libsvm การลดขนาดฮิวริสติก


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