- คำศัพท์ (A ถึง D)
- การควบคุมความสามารถของ AI
- AIOps
- อัลบั้ม
- ประสิทธิภาพของสินทรัพย์
- ตัวเข้ารหัสอัตโนมัติ
- การขยายพันธุ์หลัง
- ทฤษฎีบทเบย์
- ข้อมูลขนาดใหญ่
- Chatbot: คู่มือสำหรับผู้เริ่มต้น
- การคิดเชิงคำนวณ
- วิสัยทัศน์คอมพิวเตอร์
- เมทริกซ์ความสับสน
- เครือข่ายประสาทเทียม
- cybersecurity
- ผ้าข้อมูล
- การเล่าเรื่องข้อมูล
- ข้อมูลวิทยาศาสตร์
- คลังข้อมูล
- ต้นไม้ตัดสินใจ
- Deepfakes
- การเรียนรู้ลึก ๆ
- การเรียนรู้การเสริมแรงเชิงลึก
- devops
- DevSecOps
- แบบจำลองการแพร่กระจาย
- ดิจิตอลแฝด
- การลดขนาด
- คำศัพท์ (E ถึง K)
- เอดจ์ไอ
- อารมณ์ AI
- การเรียนรู้ทั้งมวล
- การแฮ็กอย่างมีจริยธรรม
- ETL
- AI ที่อธิบายได้
- สหพันธ์การเรียนรู้
- ฟินอ๊อฟ
- กำเนิด AI
- เครือข่ายผู้ให้กำเนิด
- กำเนิดเทียบกับการเลือกปฏิบัติ
- ไล่โทนสี
- โคตรไล่ระดับ
- การเรียนรู้ไม่กี่ช็อต
- การจำแนกรูปภาพ
- การดำเนินงานด้านไอที (ITOps)
- ระบบอัตโนมัติของเหตุการณ์
- วิศวกรรมอิทธิพล
- K-หมายถึงการจัดกลุ่ม
- K-เพื่อนบ้านที่ใกล้ที่สุด
- คำศัพท์ (L ถึง Q)
- คำศัพท์ (R ถึง Z)
- การเรียนรู้เสริมแรง
- AI ที่มีความรับผิดชอบ
- อาร์แอลเอชเอฟ
- ระบบอัตโนมัติของกระบวนการหุ่นยนต์
- มีโครงสร้าง vs ไม่มีโครงสร้าง
- การวิเคราะห์ความเชื่อมั่น
- อยู่ภายใต้การดูแล vs ไม่ได้รับการดูแล
- สนับสนุนเครื่องเวกเตอร์
- ข้อมูลสังเคราะห์
- สื่อสังเคราะห์
- การจัดประเภทข้อความ
- TinyML
- ถ่ายทอดการเรียนรู้
- เครือข่ายประสาทหม้อแปลง
- การทดสอบของทัวริง
- การค้นหาความคล้ายคลึงกันของเวกเตอร์
AI 101
K-Mean Clustering คืออะไร?
สารบัญ
การจัดกลุ่ม K-mean คือ การเรียนรู้โดยไม่ได้รับการดูแล อัลกอริธึม และจากอัลกอริธึมการเรียนรู้แบบไม่มีผู้ดูแลทั้งหมด การจัดกลุ่ม K-mean อาจมีการใช้กันอย่างแพร่หลายมากที่สุด เนื่องจากมีประสิทธิภาพและความเรียบง่าย การจัดกลุ่ม K-means ทำงานอย่างไรกันแน่?
คำตอบสั้น ๆ คือการจัดกลุ่ม K-mean ทำงานโดย การสร้างจุดอ้างอิง (เซนทรอยด์) ตามจำนวนชั้นที่ต้องการ จากนั้น การกำหนดจุดข้อมูลให้กับคลัสเตอร์คลาส โดยอ้างอิงจากจุดอ้างอิงที่ใกล้เคียงที่สุด แม้ว่าจะเป็นคำนิยามสั้นๆ สำหรับการจัดกลุ่มค่าเฉลี่ย K แต่มาใช้เวลาสักครู่เพื่อเจาะลึกลงไปในการจัดกลุ่มค่าเฉลี่ย K และรับสัญชาตญาณที่ดีขึ้นเกี่ยวกับวิธีการทำงานของมัน
การกำหนดคลัสเตอร์
ก่อนที่เราจะตรวจสอบอัลกอริทึมที่ใช้ในการจัดกลุ่มค่า K-mean เรามาใช้เวลาสักเล็กน้อยเพื่อกำหนดการจัดกลุ่มโดยทั่วไป
คลัสเตอร์เป็นเพียงกลุ่มของรายการ และการจัดกลุ่มเป็นเพียงการใส่รายการลงในกลุ่มเหล่านั้น ในแง่วิทยาศาสตร์ข้อมูล อัลกอริทึมการจัดกลุ่ม มุ่งมั่นที่จะทำสองสิ่ง:
- ตรวจสอบให้แน่ใจว่าจุดข้อมูลทั้งหมดในคลัสเตอร์มีความคล้ายคลึงกันมากที่สุดเท่าที่จะเป็นไปได้
- ตรวจสอบให้แน่ใจว่าจุดข้อมูลทั้งหมดในคลัสเตอร์ต่างๆ แตกต่างกันมากที่สุดเท่าที่จะเป็นไปได้
อัลกอริทึมการทำคลัสเตอร์จะจัดกลุ่มรายการต่างๆ เข้าด้วยกันตามเมตริกของความคล้ายคลึงกัน ซึ่งมักทำได้โดยการค้นหา "ศูนย์กลาง" ของกลุ่มที่เป็นไปได้ต่างๆ ในชุดข้อมูล แต่ไม่ใช่เฉพาะ มีอัลกอริธึมการจัดกลุ่มที่แตกต่างกันมากมาย แต่เป้าหมายของอัลกอริทึมการจัดกลุ่มทั้งหมดนั้นเหมือนกัน เพื่อกำหนดกลุ่มภายในชุดข้อมูล
K-หมายถึงการจัดกลุ่ม
K-Means Clustering เป็นหนึ่งในอัลกอริทึมการจัดกลุ่มที่เก่าแก่และใช้บ่อยที่สุดประเภทหนึ่ง และทำงานโดยยึดตาม การหาปริมาณเวกเตอร์. มีจุดในอวกาศถูกเลือกเป็นจุดกำเนิด จากนั้นเวกเตอร์จะถูกดึงจากจุดกำเนิดไปยังจุดข้อมูลทั้งหมดในชุดข้อมูล
โดยทั่วไป การแบ่งกลุ่มของค่าเฉลี่ย K สามารถแบ่งออกเป็นห้าขั้นตอน:
- วางอินสแตนซ์ทั้งหมดเป็นชุดย่อย โดยที่จำนวนชุดย่อยเท่ากับ K
- ค้นหาจุดเฉลี่ย/ศูนย์กลางของพาร์ติชันคลัสเตอร์ที่สร้างขึ้นใหม่
- ตาม centroids เหล่านี้ กำหนดแต่ละจุดให้กับคลัสเตอร์เฉพาะ
- คำนวณระยะทางจากทุกจุดไปยังเซนทรอยด์ และกำหนดจุดให้กับกลุ่มที่มีระยะห่างจากเซนทรอยด์น้อยที่สุด
- หลังจากกำหนดจุดให้กับกลุ่มแล้ว ให้หาจุดศูนย์กลางใหม่ของกลุ่ม
ขั้นตอนข้างต้นซ้ำจนกว่ากระบวนการฝึกอบรมจะเสร็จสิ้น
อีกทางหนึ่ง หลังจากวางเซนทรอยด์แล้ว เราสามารถเข้าใจการจัดกลุ่มค่าเฉลี่ย K ว่าเป็นการสลับไปมาระหว่างสองเฟสที่แตกต่างกัน: การติดป้ายจุดข้อมูลและการอัปเดตเซนทรอยด์
ในขั้นตอนการติดป้ายจุดข้อมูล จุดข้อมูลทุกจุดจะได้รับป้ายชื่อที่วางไว้ในคลัสเตอร์ที่เป็นของเซนทรอยด์ที่ใกล้ที่สุด เซนทรอยด์ที่ใกล้ที่สุดมักจะกำหนดโดยใช้ระยะทางแบบยุคลิดกำลังสอง แม้ว่าเมตริกระยะทางอื่นๆ เช่น ระยะทางแมนฮัตตัน ระยะทางโคไซน์ และระยะทางแจ็กการ์ดจะสามารถใช้ได้ ขึ้นอยู่กับประเภทของข้อมูลที่ป้อนเข้าสู่อัลกอริทึมการจัดกลุ่ม
ในขั้นตอนการอัพเดตเซนทรอยด์ เซนทรอยด์จะคำนวณโดยการหาระยะห่างเฉลี่ยระหว่างจุดข้อมูลทั้งหมดที่มีอยู่ภายในคลัสเตอร์
วิธีเลือกค่าที่ถูกต้องสำหรับ “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 สำหรับงานตรวจจับความผิดปกติ โดยเน้นถึงกรณีของการฉ้อโกงหรือสินค้าที่มีข้อบกพร่องที่อาจเกิดขึ้น
บล็อกเกอร์และโปรแกรมเมอร์ที่มีความเชี่ยวชาญด้าน เครื่องเรียนรู้ และ การเรียนรู้ลึก ๆ หัวข้อ Daniel หวังว่าจะช่วยให้ผู้อื่นใช้พลังของ AI เพื่อประโยชน์ทางสังคม