เอาต์พุตของ Scikit SVM ในการจัดประเภทแบบหลายคลาสจะให้ฉลากเหมือนกันเสมอ


10

ฉันกำลังใช้ Scikit เรียนรู้ด้วยรหัสต่อไปนี้:

clf = svm.SVC(C=1.0, tol=1e-10, cache_size=600, kernel='rbf', gamma=0.0, 
              class_weight='auto')

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

ฉันพยายามที่พารามิเตอร์อื่น ๆ บางคนรวมทั้งคนเริ่มต้นเล่ม ( svm.SVC()) แต่ตราบใดที่การใช้วิธีการที่ฉันเคอร์เนลrbfแทนpolyหรือlinearมันก็จะไม่ทำงานในขณะที่มันทำงานจริงๆดีสำหรับการและpolylinear

นอกจากนี้ฉันได้ลองทำนายข้อมูลรถไฟแทนข้อมูลการตรวจสอบแล้วและมันก็พอดี

ไม่มีใครเห็นปัญหาแบบนี้มาก่อนและรู้ว่าเกิดอะไรขึ้นที่นี่?

ฉันไม่เคยดูรายละเอียดชั้นเรียนของฉัน แต่ฉันรู้ว่ามันควรจะประมาณ 30% ของพวกเขาคือ 7, 14% คือ 4

ฉันลองใช้การปรับใช้ 1-vs-rest ด้วยตนเองและยังไม่เป็นประโยชน์


ข้อมูลของคุณมีสัดส่วนเท่าใดในแต่ละชั้นเรียน?
gung - Reinstate Monica

ในข้อมูลของฉันมี "7" มากกว่า แต่ไม่มาก ประมาณ 30% ของพวกเขาคือ 7 @gung
Tamaki Sakura

คำตอบ:


10

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

scikit การเรียนรู้มีการ จำกัด การค้นหาสิ่งอำนวยความสะดวก hyperparameter แต่คุณสามารถใช้ร่วมกับห้องสมุดการปรับแต่งเช่นOptunity ตัวอย่างเกี่ยวกับการปรับแต่ง scikit เรียนรู้ SVC กับ Optunity สามารถใช้ได้ที่นี่

ข้อจำกัดความรับผิดชอบ: ฉันเป็นผู้พัฒนาหลักของ Optunity


จริง ๆ แล้วฉันได้ลองแบบผสมของ C และแกมม่าที่เป็นพลังงาน 10 จาก 0 ถึง 4 แต่ทุกอย่างให้เต็ม 7 ฉันเริ่มสงสัยถ้าฉันรวบรวม scikit เรียนรู้ในวิธีที่ถูกต้อง
Tamaki Sakura

8

ปัญหาไม่ได้เป็นการทดสอบพารามิเตอร์ ฉันไม่ได้ลองเมื่อgammaอยู่ระหว่าง 0.0 (ซึ่งคือ 1 / n_feature) และ 1 ในข้อมูลของฉันgammaควรหันไปหาสิ่งที่อยู่รอบ ๆ1e-8


4
ทำให้รู้สึกที่สมบูรณ์แบบ ค่าที่มากเกินไปของนำไปสู่เคอร์เนลเมทริกซ์ที่อยู่ใกล้กับเมทริกซ์หน่วย การคาดการณ์ทุกครั้งจะจบลงด้วยการเป็นคำอคติ (เนื่องจากการประเมินเคอร์เนลทั้งหมดใกล้เคียงกับศูนย์มาก) ซึ่งเกิดขึ้นเพื่อนำไปสู่คลาส 7 ในกรณีของคุณ γ
Marc Claesen
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.