การจัดประเภทแบบหลายคลาส

เสร็จสมบูรณ์เมื่อ

หมายเหตุ

ดูแท็บ ข้อความและรูปภาพ สําหรับรายละเอียดเพิ่มเติม!

การจัดประเภทแบบหลายคลาส ใช้เพื่อคาดเดาว่าคลาสใดที่เป็นไปได้หลายชั้นที่มีการสังเกต เป็นเทคนิคการเรียนรู้ของเครื่องที่ได้รับการดูแลจะเป็นไปตามรถไฟวนซ้ําเดียวกัน ตรวจสอบและประเมิน กระบวนการเป็นการถดถอยและการจําแนกประเภทไบนารีซึ่งชุดย่อยของข้อมูลการฝึกจะถูกเก็บไว้เพื่อตรวจสอบแบบจําลองที่ได้รับการฝึก

ตัวอย่าง - การจัดประเภทแบบหลายประเภท

อัลกอริทึมการจัดประเภทแบบหลายคลาสจะใช้ในการคํานวณค่าความน่าจะเป็นสําหรับป้ายชื่อหลายชั้น ซึ่งทําให้สามารถคาดการณ์ระดับชั้น ที่น่าจะเป็นมากที่สุด สําหรับการสังเกตการณ์ที่กําหนด

ลองสํารวจตัวอย่างที่เรามีข้อสังเกตบางอย่างของนกเพนกวินซึ่งความยาวครีบ (x) ของนกเพนกวินแต่ละตัวถูกบันทึกไว้ สําหรับการสังเกตการณ์แต่ละครั้งข้อมูลรวมถึงนกเพนกวินสายพันธุ์ (y) ซึ่งมีการเข้ารหัสดังนี้:

  • 0: อเดลี่
  • 1: เจนทู
  • 2: ชินสเตรป

หมายเหตุ

เช่นเดียวกับตัวอย่างก่อนหน้านี้ในโมดูลนี้ สถานการณ์จริงจะรวมค่าคุณลักษณะ (x) หลายค่า เราจะใช้คุณลักษณะเดียวเพื่อทําให้สิ่งต่างๆ เป็นเรื่องง่าย

แผนภาพของไม้บรรทัดการวัด แผนภาพของนกเพนกวินสามตัว
ความยาวของ Flipper (x) สปีชี่ส์ (y)
167 0
172 0
225 2
197 1
189 1
232 2
158 0

การฝึกแบบจําลองการจัดประเภทแบบหลายคลาส

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

  • อัลกอริทึมหนึ่ง vs-Rest (OvR)
  • อัลกอริทึมแบบหลายมิติ

อัลกอริทึมหนึ่ง vs-Rest (OvR)

อัลกอริทึมหนึ่ง vs-Rest จะฝึกฟังก์ชันการจัดประเภทไบนารีสําหรับแต่ละคลาส โดยแต่ละคลาสจะคํานวณความน่าจะเป็นที่การสังเกตการณ์เป็นตัวอย่างของคลาสเป้าหมาย แต่ละฟังก์ชันจะคํานวณความน่าจะเป็นของการสังเกตการณ์เป็นคลาสเฉพาะเมื่อเทียบกับคลาสอื่น สําหรับแบบจําลองการจัดประเภทนกเพนกวินชนิดนี้ อัลกอริทึมจะสร้างฟังก์ชันการจัดประเภทไบนารีสามอย่างเป็นหลัก:

  • f0(x) = P(y=0 | x)
  • f1(x) = P(y=1 | x)
  • f2(x) = P(y=2 | x)

อัลกอริทึมแต่ละอันจะสร้างฟังก์ชัน sigmoid ที่คํานวณค่าความน่าจะเป็นระหว่าง 0.0 และ 1.0 แบบจําลองที่ได้รับการฝึกโดยใช้อัลกอริทึมชนิดนี้ทํานายคลาสสําหรับฟังก์ชันที่สร้างเอาต์พุตความน่าจะเป็นสูงสุด

อัลกอริทึมแบบหลายมิติ

อีกวิธีหนึ่งคือการใช้อัลกอริทึมแบบหลายมิติ ซึ่งสร้างฟังก์ชันเดียวที่แสดงผลลัพธ์แบบหลายค่า ผลลัพธ์คือ เวกเตอร์ (อาร์เรย์ของค่า) ที่ประกอบด้วย การแจกแจงความน่าจะเป็น สําหรับคลาสที่เป็นไปได้ทั้งหมด โดยมีคะแนนความน่าจะเป็นสําหรับแต่ละคลาสซึ่งรวมยอดแล้วเพิ่มขึ้นเป็น 1.0:

f(x) =[P(y=0|x), P(y=1|x), P(y=2|x)]

ตัวอย่างของฟังก์ชันชนิดนี้คือฟังก์ชัน softmax ซึ่งสามารถสร้างเอาต์พุตเช่นตัวอย่างต่อไปนี้:

[0.2, 0.3, 0.5]

องค์ประกอบของเวกเตอร์แสดงถึงความน่าจะเป็นสําหรับคลาส 0, 1 และ 2 ตามลําดับ ดังนั้นในกรณีนี้ คลาสที่มีความน่าจะเป็นสูงสุดคือ 2

โดยไม่คํานึงถึงชนิดของอัลกอริทึมที่ใช้ แบบจําลองจะใช้ฟังก์ชันผลลัพธ์เพื่อกําหนดคลาสที่น่าจะเป็นไปได้มากที่สุดสําหรับชุดคุณลักษณะ (x) ที่กําหนดและคาดการณ์ป้ายชื่อระดับชั้นที่สอดคล้องกัน (y)

การประเมินแบบจําลองการจัดประเภทแบบหลายคลาส

คุณสามารถประเมินตัวจําแนกประเภทแบบหลายคลาสโดยการคํานวณเมตริกการจัดประเภทไบนารีสําหรับแต่ละคลาส อีกวิธีหนึ่งคือ คุณสามารถคํานวณเมตริกรวมที่คํานึงถึงทุกชั้นเรียน

สมมติว่าเราได้ตรวจสอบตัวจัดประเภทแบบหลายคลาสของเราแล้ว และได้รับผลลัพธ์ดังต่อไปนี้:

ความยาวของ Flipper (x) เผ่าพันธุ์จริง (y) ชนิดที่ทํานาย (ŷ)
165 0 0
171 0 0
205 2 1
195 1 1
183 1 1
221 2 2
214 2 2

เมทริกซ์ความสับสนสําหรับตัวจําแนกประเภทแบบหลายคลาสนั้นคล้ายกับของตัวจําแนกประเภทไบนารี เว้นแต่ว่าจะแสดงจํานวนการคาดการณ์สําหรับแต่ละการรวมกันของ การคาดการณ์ (ŷ) และป้ายชื่อระดับชั้น จริง (y):

แผนภาพของเมทริกซ์ความสับสนแบบหลายคลาส

จากเมทริกซ์ความสับสนนี้ เราสามารถกําหนดเมตริกสําหรับแต่ละคลาสได้ดังนี้:

คลาส บวกที่แท้จริง ลบจริง ผลบวกเท็จ ลบเท็จ ความถูกต้อง การจดจำได้ ความแม่นยำ F1-Score
0 2 5 0 0 1.0 1.0 1.0 1.0
1 2 4 1 0 0.86 1.0 0.67 0.8
2 2 4 0 1 0.86 0.67 1.0 0.8

หากต้องการคํานวณความแม่นยําโดยรวม การเรียกใช้และเมตริกความแม่นยํา คุณต้องใช้ผลรวมของเมตริก TP, TN, FP และ FN :

  • ความแม่นยําโดยรวม = (13+6)÷(13+6+1+1) = 0.90
  • การเรียกคืนโดยรวม = 6÷(6+ 1) = 0.86
  • ความแม่นยําโดยรวม = 6÷(6+ 1) = 0.86

F1-score โดยรวมจะถูกคํานวณโดยใช้เมตริกการเรียกคืนและความแม่นยําโดยรวม:

  • โดยรวม F1 คะแนน = (2x0.86x0.86)÷(0.86 + 0.86) = 0.86