K หมายถึงการทำคลัสเตอร์ Matlab [ด้วยซอร์สโค้ด]

เผยแพร่แล้ว: 2020-12-09

K-means clustering เป็นหนึ่งในเทคนิคที่ใช้กันมากที่สุดโดยผู้เชี่ยวชาญด้านข้อมูล เนื่องจากประสิทธิภาพของอัลกอริธึม เป็นที่ต้องการของอุตสาหกรรมจำนวนมากในการใช้งานที่หลากหลาย

งานของนักวิทยาศาสตร์ข้อมูลต้องมีการนำ Clustering ไปใช้ในหลายขั้นตอน โครงการขนาดใหญ่หลายแห่งในปัจจุบันใช้อัลกอริทึมการจัดกลุ่มและได้ยกระดับความต้องการผู้เชี่ยวชาญด้านวิทยาศาสตร์ข้อมูลอย่างมาก

หนึ่งในอัลกอริธึมเหล่านั้นคือการจัดกลุ่ม K-mean ซึ่งเป็นแนวคิดพื้นฐานของบทความนี้และการใช้งานกับซอร์สโค้ด MATLAB

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

สารบัญ

การทำคลัสเตอร์คืออะไร?

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

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

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

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

มาดู อัลกอริธึม K-Means ซึ่งเป็นหนึ่งในอัลกอริธึมการจัดกลุ่มที่ง่ายที่สุดและนำไปใช้มากที่สุด

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

ที่มาของภาพ

การจัดกลุ่ม K-means เป็นหนึ่งในอัลกอริธึมการเรียนรู้ของเครื่องที่ไม่มีผู้ดูแลที่ต้องการมากที่สุด

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

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

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

K-Means Clustering ทำงานอย่างไร

เนื่องจากกระบวนการจัดกลุ่มหมายถึงต้องทำซ้ำหลายครั้ง อัลกอริธึม K-Means จึงมีวิธีการทำงานที่ไม่เหมือนใคร นี่คือคำอธิบายทีละขั้นตอนเกี่ยวกับวิธีการทำงาน:

ที่มาของภาพ

ขั้นตอนที่ 1: เริ่มแรก กำหนดจำนวนคลัสเตอร์ ' ขั้นตอนที่ 2: เริ่มต้นจุดข้อมูล K แบบสุ่มเป็นเซนทรอยด์สำหรับแต่ละคลัสเตอร์

หากมี 2 คลัสเตอร์ ค่าของ 'K' จะเป็น 2

ขั้นตอนที่ 3: ทำซ้ำหลาย ๆ ครั้งจนกว่าจุดข้อมูลที่กำหนดไปยังคลัสเตอร์จะไม่เปลี่ยนแปลง

ขั้นตอนที่ 4: คำนวณผลรวมของระยะห่างกำลังสองระหว่างจุดข้อมูลกับเซนทรอยด์

ขั้นตอนที่ 5: จัดสรรจุดข้อมูลแต่ละจุดไปยังคลัสเตอร์ที่ใกล้ที่สุด (เซนทรอยด์) เพื่อลดระยะห่าง

ขั้นตอนที่ 6: หาค่าเฉลี่ยของเซนทรอยด์ของกลุ่มที่เป็นของกันและกัน

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

ตัวอย่างภาพประกอบที่แสดงให้เห็นการนำ K-Means Clustering ไปปฏิบัติ

คำชี้แจง: หนึ่งในเครือข่ายอาหารที่มีชื่อเสียง McDonald's ต้องการเปิดสาขาทั่วแคลิฟอร์เนียและต้องการหาสถานที่ตั้งที่จะดึงรายได้สูงสุดให้พวกเขา

สิ่งที่ McDonald's มีอยู่แล้ว?

Ø สถานะอีคอมเมิร์ซที่แข็งแกร่ง

Ø ข้อมูลลูกค้าออนไลน์สำหรับวิเคราะห์สถานที่ที่มีการสั่งซื้อบ่อย

ความท้าทายที่อาจเกิดขึ้นได้

  • การวิเคราะห์พื้นที่ที่มีการสั่งซื้อบ่อยครั้ง
  • ทำความเข้าใจจำนวนสาขาที่จะเปิดในพื้นที่
  • หาที่ตั้งของร้านค้าภายในพื้นที่ทั้งหมด เพื่อรักษาระยะห่างขั้นต่ำระหว่างร้านค้ากับจุดจัดส่ง

ประเด็นทั้งหมดเหล่านี้ต้องการการวิเคราะห์และคณิตศาสตร์อย่างมากในการทำงาน

K-means Clustering Method สามารถใช้ที่นี่ได้อย่างไร

ด้วยค่าที่กำหนดไว้ล่วงหน้าของ K อัลกอริทึม K-means สามารถนำไปใช้ในขั้นตอนต่อไปนี้:

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

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

อัลกอริธึม K-Means ถูกใช้งานโดยใช้ภาษาต่างๆ เช่น R , Python, MATLAB เป็นต้น ในหัวข้อถัดไป เราจะมาดูกันว่า K-Means Clustering MATLAB ถูกนำไปใช้อย่างไร

อ่าน: ประเภทของฟังก์ชันใน Matlab

อัลกอริทึม K-Means โดยใช้ MATLAB

K-Means เป็นอัลกอริธึมที่ใช้กันมากซึ่งใช้โดยผู้เชี่ยวชาญหลายคนที่เกี่ยวข้องกับวิทยาศาสตร์ข้อมูล การเรียนรู้ของเครื่อง ปัญญาประดิษฐ์ การเข้ารหัส และความปลอดภัยทางไซเบอร์

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

การทำคลัสเตอร์ MATLAB

รหัส:

rng ค่าเริ่มต้น; % สำหรับการทำซ้ำ

X = [แรนด์(100,2)*0.75+อัน(100,2);

randn(100,2)*0.5-ones(100,2)];

opts=statset('แสดงผล','สุดท้าย');

[idx,C]=kmeans(X,4,'Distance','cityblock','Replicates',5,'Options',opts);

พล็อต(X(idx==1,1),X(idx==1,2),'r.','MarkerSize',12);

เดี๋ยว;

พล็อต(X(idx==2,1),X(idx==2,2),'b.','MarkerSize',12);

พล็อต(X(idx==3,1),X(idx==3,2),'g.','MarkerSize',12);

พล็อต(X(idx==4,1),X(idx==4,2),'y.','MarkerSize',12);

พล็อต (C(:,1),C(:,2),'Kx','MarkerSize',15,'LineWidth',3);

ตำนาน ('คลัสเตอร์ 1', 'คลัสเตอร์ 2', 'คลัสเตอร์ 3', 'คลัสเตอร์ 4', 'เซนทรอยด์', 'ตำแหน่ง', 'NW');

title('การกำหนดคลัสเตอร์และเซนทรอยด์');

ออกจาก;

สำหรับผม=1:ขนาด(C, 1)

display(['Centroid', num2str(i), ': X1 = ', num2str(C(i, 1)), '; X2 = ', num2str(C(i, 2))]);

จบ

เอาท์พุท:

หน้าต่าง MATLAB แสดงสี่คลัสเตอร์และเซ็นทรอยด์ที่เกี่ยวข้อง

ที่มาของภาพ

ผล:

เซนทรอยด์ที่ได้รับมีดังนี้:

  1. ค่าของ X1 & X2 สำหรับ Centroid 1: 1.3661; 1.7232
  2. ค่าของ X1 & X2 สำหรับ Centroid 2: -1.015; -1.053
  3. ค่าของ X1 & X2 สำหรับ Centroid 3: 1.6565; 0.36376
  4. ค่าของ X1 & X2 สำหรับ Centroid 4: 0.35134; 0.85358

บางพื้นที่ธุรกิจที่สามารถดำเนินการคลัสเตอร์ K-Means ได้

การจัดกลุ่ม K-means เป็นอัลกอริธึมที่ใช้งานได้หลากหลายและสามารถใช้ได้กับกรณีการใช้งานทางธุรกิจจำนวนมากสำหรับการจัดกลุ่มประเภทใดก็ได้ ตัวอย่างบางส่วน ได้แก่ :

Ø การแยกพฤติกรรม:

  • กองโดยใช้ประวัติการซื้อ
  • การแบ่งส่วนการใช้งานแอพพลิเคชั่น เว็บไซต์ หรือกิจกรรมแพลตฟอร์ม
  • ระบุภาพลักษณ์ของลูกค้าตามความสนใจ
  • การสร้างโปรไฟล์ด้วยกิจกรรมการตรวจสอบ

Ø การปรับขนาดภาพ

  • การบีบอัดภาพโดยใช้ Python

Ø การวัดเซนเซอร์:

  • ตรวจจับประเภทกิจกรรมของเซ็นเซอร์ตรวจจับความเคลื่อนไหว
  • ภาพหมู่
  • แบ่งเสียง
  • กลุ่มตรวจสุขภาพเฉพาะจุด

Ø ตรวจสอบบอทหรือความผิดปกติ:

  • แยกกลุ่มกิจกรรมออกจากบอท
  • สร้างกลุ่มของกิจกรรมที่ถูกต้องเพื่อล้างการตรวจจับค่าผิดปกติ

Ø การจำแนกประเภทสินค้าคงคลัง:

  • สร้างกลุ่มสินค้าคงคลังตามกิจกรรมการขาย
  • สร้างกลุ่มสินค้าคงคลังตามเมตริกการผลิต

ข้อดีของการจัดกลุ่ม K-Means

มีเหตุผลว่าทำไมผู้เชี่ยวชาญชั้นนำถึงเลือกใช้อัลกอริทึมการจัดกลุ่ม K-Means ประโยชน์บางประการที่มีให้:

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

ต้องอ่าน: MATLAB ประเภทข้อมูล

บทสรุป

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

เราหวังว่าจะมีบทความนี้ เราสามารถแนะนำให้คุณรู้จักกับเทคนิคการวิเคราะห์นี้ สำหรับข้อสงสัยใด ๆ เกี่ยวกับอัลกอริทึม K-means โปรดแสดงความคิดเห็นด้านล่าง

นอกจากนี้ หากสาขาวิชานี้สนใจ คุณลองดู หลักสูตร PG Diploma in Machine Learning และ AI ซึ่งได้รับการดูแลจัดการเป็นพิเศษสำหรับมืออาชีพด้านการทำงาน โดยเสนอกรณีศึกษาและการมอบหมายงานมากกว่า 30 รายการ เซสชันการให้คำปรึกษามากกว่า 25 รายการจากผู้เชี่ยวชาญในอุตสาหกรรม 10 มือเชิงปฏิบัติ ในโครงการ Capstone ความช่วยเหลือด้านการเรียนรู้และการจัดตำแหน่งมากกว่า 450 ชั่วโมง

K หมายถึงการจัดกลุ่มในการเรียนรู้ของเครื่องคืออะไร?

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

อัลกอริทึมการจัดกลุ่ม K หมายถึงมีข้อจำกัดอย่างไร

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

ข้อดีของการจัดกลุ่ม K หมายถึงคืออะไร?

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