ต้นขั้ว K-Mean Clustering คืออะไร? - Unite.AI
เชื่อมต่อกับเรา
มาสเตอร์คลาส AI:

AI 101

K-Mean Clustering คืออะไร?

mm
วันที่อัพเดท on

การจัดกลุ่ม K-mean คือ การเรียนรู้โดยไม่ได้รับการดูแล อัลกอริธึม และจากอัลกอริธึมการเรียนรู้แบบไม่มีผู้ดูแลทั้งหมด การจัดกลุ่ม K-mean อาจมีการใช้กันอย่างแพร่หลายมากที่สุด เนื่องจากมีประสิทธิภาพและความเรียบง่าย การจัดกลุ่ม K-means ทำงานอย่างไรกันแน่?

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

การกำหนดคลัสเตอร์

ก่อนที่เราจะตรวจสอบอัลกอริทึมที่ใช้ในการจัดกลุ่มค่า K-mean เรามาใช้เวลาสักเล็กน้อยเพื่อกำหนดการจัดกลุ่มโดยทั่วไป

คลัสเตอร์เป็นเพียงกลุ่มของรายการ และการจัดกลุ่มเป็นเพียงการใส่รายการลงในกลุ่มเหล่านั้น ในแง่วิทยาศาสตร์ข้อมูล อัลกอริทึมการจัดกลุ่ม มุ่งมั่นที่จะทำสองสิ่ง:

  • ตรวจสอบให้แน่ใจว่าจุดข้อมูลทั้งหมดในคลัสเตอร์มีความคล้ายคลึงกันมากที่สุดเท่าที่จะเป็นไปได้
  • ตรวจสอบให้แน่ใจว่าจุดข้อมูลทั้งหมดในคลัสเตอร์ต่างๆ แตกต่างกันมากที่สุดเท่าที่จะเป็นไปได้

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

K-หมายถึงการจัดกลุ่ม

K-Means Clustering เป็นหนึ่งในอัลกอริทึมการจัดกลุ่มที่เก่าแก่และใช้บ่อยที่สุดประเภทหนึ่ง และทำงานโดยยึดตาม การหาปริมาณเวกเตอร์. มีจุดในอวกาศถูกเลือกเป็นจุดกำเนิด จากนั้นเวกเตอร์จะถูกดึงจากจุดกำเนิดไปยังจุดข้อมูลทั้งหมดในชุดข้อมูล

โดยทั่วไป การแบ่งกลุ่มของค่าเฉลี่ย K สามารถแบ่งออกเป็นห้าขั้นตอน:

  • วางอินสแตนซ์ทั้งหมดเป็นชุดย่อย โดยที่จำนวนชุดย่อยเท่ากับ K
  • ค้นหาจุดเฉลี่ย/ศูนย์กลางของพาร์ติชันคลัสเตอร์ที่สร้างขึ้นใหม่
  • ตาม centroids เหล่านี้ กำหนดแต่ละจุดให้กับคลัสเตอร์เฉพาะ
  • คำนวณระยะทางจากทุกจุดไปยังเซนทรอยด์ และกำหนดจุดให้กับกลุ่มที่มีระยะห่างจากเซนทรอยด์น้อยที่สุด
  • หลังจากกำหนดจุดให้กับกลุ่มแล้ว ให้หาจุดศูนย์กลางใหม่ของกลุ่ม

ขั้นตอนข้างต้นซ้ำจนกว่ากระบวนการฝึกอบรมจะเสร็จสิ้น

ในระยะเริ่มต้น centroids จะถูกวางไว้ที่ใดที่หนึ่งในจุดข้อมูล
รูปถ่าย: Weston.pace ผ่านวิกิมีเดียคอมมอนส์, ใบอนุญาตเอกสาร GNU ฟรี (https://commons.wikimedia.org/wiki/File:K_Means_Example_Step_1.svg)

อีกทางหนึ่ง หลังจากวางเซนทรอยด์แล้ว เราสามารถเข้าใจการจัดกลุ่มค่าเฉลี่ย K ว่าเป็นการสลับไปมาระหว่างสองเฟสที่แตกต่างกัน: การติดป้ายจุดข้อมูลและการอัปเดตเซนทรอยด์

ในขั้นตอนที่สอง การวัดระยะทาง เช่น ระยะทางแบบยุคลิด จะถูกใช้เพื่อคำนวณว่าจุดที่กำหนดนั้นอยู่ใกล้เซนทรอยด์ใดมากที่สุด จากนั้นจึงกำหนดจุดให้กับคลาสของเซนทรอยด์นั้น รูปถ่าย: Weston.pace ผ่าน Wikimedia Commons, GNU Free Doc License (https://commons.wikimedia.org/wiki/File:K_Means_Example_Step_2.svg)

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

ในขั้นตอนที่สาม เซนทรอยด์จะถูกย้ายไปยังค่าเฉลี่ยของจุดข้อมูลทั้งหมด จากนั้นชั้นเรียนจะถูกกำหนดใหม่ รูปถ่าย: Weston.pace ผ่าน Wikiemedia Commons, CC SA 3.0 (https://commons.wikimedia.org/wiki/File:K_Means_Example_Step_3.svg)

ในขั้นตอนการอัพเดตเซนทรอยด์ เซนทรอยด์จะคำนวณโดยการหาระยะห่างเฉลี่ยระหว่างจุดข้อมูลทั้งหมดที่มีอยู่ภายในคลัสเตอร์

วิธีเลือกค่าที่ถูกต้องสำหรับ “K”

เมื่อพิจารณาว่าการจัดกลุ่ม K-mean เป็นอัลกอริทึมที่ไม่มีการควบคุมและไม่ทราบจำนวนคลาสล่วงหน้า คุณจะตัดสินใจเลือกจำนวนคลาสที่เหมาะสม/ค่าที่เหมาะสมสำหรับ K ได้อย่างไร

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

คำว่า "เทคนิคข้อศอก" มาจากข้อเท็จจริงที่ว่าเมื่อคุณพล็อต SSE โดยคำนึงถึงค่าต่างๆ ของ K พล็อตเส้นที่ได้มักจะมีรูปร่างเป็น "ข้อศอก" โดยที่ SSE จะลดลงอย่างรวดเร็วสำหรับค่าสองสามค่าแรกของ K แต่แล้วก็ลดระดับลง ในสภาวะดังกล่าว ค่า K ที่ข้อศอกเป็นค่าที่ดีที่สุดสำหรับ K เนื่องจากค่า K จะลดลงอย่างรวดเร็วหลังจากค่านี้

การทำคลัสเตอร์ K-Means แบบมินิแบทช์

เมื่อชุดข้อมูลมีขนาดใหญ่ขึ้น เวลาในการคำนวณก็เพิ่มขึ้นตามไปด้วย การทำคลัสเตอร์ค่าเฉลี่ย K พื้นฐานอาจใช้เวลานานกว่าจะเสร็จสมบูรณ์เมื่อรันบนชุดข้อมูลขนาดใหญ่ และด้วยเหตุนี้ จึงมีการปรับแต่งการจัดกลุ่มค่า K-mean เพื่อลดต้นทุนเชิงพื้นที่และชั่วคราวของอัลกอริทึม

Mini-Batch K- หมายถึงการจัดกลุ่ม เป็นตัวแปรในการจัดกลุ่ม K-mean โดยที่ขนาดของชุดข้อมูลที่กำลังพิจารณาถูกจำกัดไว้ การทำคลัสเตอร์ K-mean แบบปกติจะดำเนินการกับชุดข้อมูลทั้งหมด/ชุดพร้อมกัน ในขณะที่การทำคลัสเตอร์ K-mean แบบ Mini-batch แบ่งชุดข้อมูลออกเป็นส่วนย่อย. ชุดย่อยจะถูกสุ่มตัวอย่างจากชุดข้อมูลทั้งหมด และสำหรับการวนซ้ำใหม่แต่ละครั้ง จะมีการเลือกตัวอย่างสุ่มใหม่และใช้เพื่ออัปเดตตำแหน่งของเซนทรอยด์

ในการทำคลัสเตอร์ K-Means แบบมินิแบทช์ คลัสเตอร์จะได้รับการอัปเดตด้วยการผสมผสานระหว่างค่าแบบมินิแบทช์และอัตราการเรียนรู้ อัตราการเรียนรู้จะลดลงเมื่อวนซ้ำ และจะกลับกันกับจำนวนจุดข้อมูลที่อยู่ในคลัสเตอร์หนึ่งๆ ผลกระทบของการลดอัตราการเรียนรู้คือผลกระทบของข้อมูลใหม่จะลดลงและการบรรจบกันจะเกิดขึ้นเมื่อหลังจากการวนซ้ำหลายครั้ง ไม่มีการเปลี่ยนแปลงในคลัสเตอร์

ผลการศึกษาเกี่ยวกับประสิทธิผลของการทำคลัสเตอร์ K-mean แบบ Mini-batch บ่งชี้ว่าสามารถลดเวลาในการคำนวณได้สำเร็จโดยเสียคุณภาพของคลัสเตอร์เพียงเล็กน้อย

การประยุกต์ใช้ K-Means Clustering

การจัดกลุ่มค่าเฉลี่ย K สามารถใช้ได้อย่างปลอดภัยในทุกสถานการณ์ที่สามารถแบ่งจุดข้อมูลออกเป็นกลุ่ม/คลาสที่แตกต่างกันได้ ต่อไปนี้เป็นตัวอย่างกรณีการใช้งานทั่วไปสำหรับการจัดกลุ่มค่า K-mean

การแบ่งกลุ่ม K-mean สามารถนำไปใช้กับการจำแนกประเภทเอกสาร การจัดกลุ่มเอกสารตามคุณลักษณะต่างๆ เช่น หัวข้อ แท็ก การใช้คำ ข้อมูลเมตา และคุณลักษณะอื่นๆ ของเอกสาร นอกจากนี้ยังสามารถใช้เพื่อจำแนกผู้ใช้ว่าเป็นบ็อตหรือไม่ใช่บ็อตตามรูปแบบของกิจกรรม เช่น โพสต์และความคิดเห็น นอกจากนี้ยังสามารถใช้การจัดกลุ่ม K-mean เพื่อจัดกลุ่มบุคคลตามระดับความกังวลเมื่อติดตามสุขภาพ โดยพิจารณาจากคุณลักษณะต่างๆ เช่น โรคประจำตัว อายุ ประวัติผู้ป่วย เป็นต้น

นอกจากนี้ยังสามารถใช้การจัดกลุ่ม K-mean สำหรับงานปลายเปิด เช่น การสร้างระบบคำแนะนำ ผู้ใช้ระบบเช่น Netflix สามารถจัดกลุ่มเข้าด้วยกันตามรูปแบบการรับชมและแนะนำเนื้อหาที่คล้ายกัน สามารถใช้การจัดกลุ่ม K-mean สำหรับงานตรวจจับความผิดปกติ โดยเน้นถึงกรณีของการฉ้อโกงหรือสินค้าที่มีข้อบกพร่องที่อาจเกิดขึ้น