ฉันเพิ่งเริ่มเรียนรู้ที่จะทำงานกับsklearn
และเพิ่งเจอผลลัพธ์ที่แปลกประหลาดนี้
ฉันใช้digits
ชุดข้อมูลที่มีอยู่sklearn
เพื่อลองแบบจำลองต่างๆและวิธีการประมาณค่า
เมื่อฉันทดสอบโมเดลเครื่อง Vector สนับสนุนบนข้อมูลฉันพบว่ามีสองคลาสที่แตกต่างกันsklearn
สำหรับการจัดหมวดหมู่ SVM: SVC
และLinearSVC
ที่ซึ่งอดีตใช้วิธีแบบหนึ่งต่อหนึ่งและอีกวิธีหนึ่งใช้กับวิธีส่วนที่เหลือ
ฉันไม่รู้ว่าจะมีผลกระทบอะไรกับผลลัพธ์ดังนั้นฉันจึงลองทั้งสองอย่าง ฉันทำการประมาณสไตล์ Monte Carlo ที่ฉันวิ่งทั้งสองรุ่น 500 ครั้งแต่ละครั้งแบ่งตัวอย่างแบบสุ่มเป็นการฝึกอบรม 60% และทดสอบ 40% และคำนวณข้อผิดพลาดของการทำนายในชุดทดสอบ
ตัวประมาณ SVC ปกติสร้างฮิสโตแกรมของข้อผิดพลาดต่อไปนี้: ในขณะที่ตัวประมาณ SVC เชิงเส้นสร้างฮิสโตแกรมต่อไปนี้:
อะไรที่ทำให้เกิดความแตกต่างอย่างสิ้นเชิง? เหตุใดตัวแบบเชิงเส้นจึงมีความแม่นยำสูงขึ้นเกือบตลอดเวลา
และที่เกี่ยวข้องอะไรที่อาจทำให้เกิดโพลาไรเซชันโดยสิ้นเชิงในผลลัพธ์ ทั้งความแม่นยำใกล้กับ 1 หรือความแม่นยำใกล้กับ 0 ไม่มีอะไรในระหว่าง
สำหรับการเปรียบเทียบการจำแนกแผนภูมิการตัดสินใจทำให้เกิดอัตราการผิดพลาดแบบกระจายที่มากกว่าปกติด้วยความแม่นยำประมาณ 0.85
Similar to SVC with parameter kernel=’linear’, but implemented in terms of liblinear rather than libsvm, so it has more flexibility in the choice of penalties and loss functions and should scale better (to large numbers of samples).