6
อัลกอริทึมเคมีนคลัสเตอรริงแบบขนานที่มีประสิทธิภาพบนระบบคลัสเตอร An Efficient Parallel K-means Clustering Algorithm on a Cluster System นเรศ ผองสวัสดิ์กุล 1 และ จีรพร วีระพันธุ 2 สาขาวิชาวิทยาการคอมพิวเตอร คณะวิทยาศาสตร สถาบันเทคโนโลยีพระจอมเกลาเจาคุณทหารลาดกระบัง กรุงเทพฯ 10520 E-Mail: 1 [email protected] และ 2 [email protected] Abstract K-means clustering algorithm is applied to classify or to group objects into K groups by considering their attributes or features and can be used for developing applications in various fileds. However, the problem of those applications are time consuming and out of memory because the data are too large. In this research we present the efficient K- means clustering algorithm by introducing the new method for selecting initial cluster centers and applying a parallel method to solve the problem. To evaluate the performance of the proposed algorithm, a number of experiments were performed on a cluster system. The investigated results showed that the response time was improved and the system can support more data. Keyword: parallel clustering algorithm บทคัดยอ เคมีนคลัสเตอรริงเปนอัลกอริทึมสําหรับจัดกลุมวัตถุ ตางๆ ตามจํานวนกลุมที่ตองการ โดยพิจารณาจากคุณ ลักษณะของวัตถุเหลานั้นและถูกนําไปพัฒนาแอพพลิเคชัน จํานวนมากในหลากหลายสาขา แตการนําไปประยุกตใช ตางก็ประสบปญหาเดียวกันคือ เวลาและหนวยความจําทีตองใชในการประมวลผลมากเกินไป เนื่องจากขอมูลมี ขนาดใหญ งานวิจัยนี้เรานําเสนอวิธีการเพิ่มประสิทธิภาพ ของอัลกอริทึมเคมีนคลัสเตอรริงโดยนําเสนออัลกอริทึม สําหรับเลือกชุดของจุดศูนยกลางเริ่มตน และนําวิธีการ ประมวลผลแบบขนานบนระบบคลัสเตอรมาประยุกตใช ซึ่งผลการทดลองแสดงใหเห็นวาเวลาที่ตองใชสําหรับการ ประมวลลดลง และสามารถรองรับปญหาขนาดใหญได มากกวาเดิม คําสําคัญ: อัลกอริทึมเคมีนคลัสเตอรริงแบบขนาน 1. บทนํา อัลกอริทึมเคมีนคลัสเตอรริง (K-means Clustering Algorithm) เปนวิธีการแบงกลุมขอมูลของวัตถุทั้งหมด ออกตามจํานวนกลุมที่ตองการ K กลุม และคา K ตองนอย กวาจํานวนของวัตถุทั้งหมด (N) ซึ่งจํานวนกลุมตองเปน เลขจํานวนเต็มบวก และการจัดกลุมวัตถุตองอาศัยความ เหมือนของวัตถุ โดยวัดจากระยะหางที่นอยที่สุดระหวาง วัตถุกับจุดศูนยกลางของกลุมทั้งหมด เพื่อจัดวัตถุเขาสูกลุตางๆ ตามจํานวนกลุมที่ตองการ นิยมใชการวัดระยะแบบ ยูคลิด (Euclidean distance) และจุดศูนยกลางเหลานั้นเปน ตัวแทนของกลุมตางๆ สามารถคํานวณไดจากคาเฉลี่ยของ วัตถุที่อยูภายในกลุมเดียวกัน ซึ่งวัตถุเหลานั้นมีคุณลักษณะ เหมือนกัน สวนวัตถุที่อยูตางกลุมก็มีคุณลักษณะที่แตกตาง กัน และอัลกอริทึมเคมีนแบบลําดับ เมื่อใชหนึ่งหนวย ประมวลผลตองใชเวลาสําหรับการประมวลผลเทากับ O(RKN) และมีขั้นตอนยอยในการทํางาน ดังนี้[8] Proceedings of the Conference on Knowledge and Smart Technologies 2009 (July 24-25, 2009) 142

p26 - K-Means Clustering Algorithms

  • Upload
    sushike

  • View
    121

  • Download
    9

Embed Size (px)

DESCRIPTION

K-Means Clustering Algorithm

Citation preview

Page 1: p26 - K-Means Clustering Algorithms

อัลกอริทึมเคมีนคลัสเตอรริงแบบขนานท่ีมีประสิทธิภาพบนระบบคลัสเตอร An Efficient Parallel K-means Clustering Algorithm on a Cluster System

นเรศ ผองสวัสดิ์กุล1 และ จีรพร วีระพันธุ2

สาขาวิชาวิทยาการคอมพิวเตอร คณะวิทยาศาสตร สถาบันเทคโนโลยีพระจอมเกลาเจาคุณทหารลาดกระบัง กรุงเทพฯ 10520

E-Mail: [email protected] และ [email protected]

Abstract K-means clustering algorithm is applied to classify or to group objects into K groups by considering their attributes or features and can be used for developing applications in various fileds. However, the problem of those applications are time consuming and out of memory because the data are too large. In this research we present the efficient K-means clustering algorithm by introducing the new method for selecting initial cluster centers and applying a parallel method to solve the problem. To evaluate the performance of the proposed algorithm, a number of experiments were performed on a cluster system. The investigated results showed that the response time was improved and the system can support more data. Keyword: parallel clustering algorithm

บทคัดยอ

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

ประมวลผลแบบขนานบนระบบคลัสเตอรมาประยุกตใช ซึ่งผลการทดลองแสดงใหเห็นวาเวลาท่ีตองใชสําหรับการประมวลลดลง และสามารถรองรับปญหาขนาดใหญไดมากกวาเดิม

คําสําคัญ: อัลกอริทึมเคมีนคลัสเตอรริงแบบขนาน

1. บทนํา อัลกอริทึมเคมีนคลัสเตอรริง (K-means Clustering Algorithm) เปนวิธีการแบงกลุมขอมูลของวัตถุท้ังหมด ออกตามจํานวนกลุมท่ีตองการ K กลุม และคา K ตองนอยกวาจํานวนของวัตถุท้ังหมด (N) ซึ่งจํานวนกลุมตองเปนเลขจํานวนเต็มบวก และการจัดกลุมวัตถุตองอาศัยความเหมือนของวัตถุ โดยวัดจากระยะหางท่ีนอยท่ีสุดระหวางวัตถุกับจุดศูนยกลางของกลุมท้ังหมด เพื่อจัดวัตถุเขาสูกลุมตางๆ ตามจํานวนกลุมท่ีตองการ นิยมใชการวัดระยะแบบยูคลิด (Euclidean distance) และจุดศูนยกลางเหลานั้นเปนตัวแทนของกลุมตางๆ สามารถคํานวณไดจากคาเฉลี่ยของวัตถุท่ีอยูภายในกลุมเดียวกัน ซึ่งวัตถุเหลานั้นมีคุณลักษณะเหมือนกัน สวนวัตถุท่ีอยูตางกลุมก็มีคุณลักษณะท่ีแตกตางกัน และอัลกอริทึมเคมีนแบบลําดับ เ ม่ือใชหนึ่งหนวยประมวลผลตองใชเวลาสําหรับการประมวลผลเทากับ O(RKN) และมีข้ันตอนยอยในการทํางาน ดังนี้[8]

Proceedings of the Conference on Knowledge and Smart Technologies 2009 (July 24-25, 2009)

142

Page 2: p26 - K-Means Clustering Algorithms

รูปท่ี 1. อัลกอริทึมเคมีน แอพพลิเคชันจํานวนมากนําเอาอัลกอริทึมเคมีนมาประยุกตใชในหลากหลายสาขา โดยเฉพาะแอพพลิเคชันในการทําเหมืองขอมูล (Data Mining) ซึ่งตางก็ตองการอัลกอริทึมท่ีประมวลผลไดอยางรวดเร็วกับขอมูลขนาดใหญ ยกตัวอยางเชน ระบบสังเกตการณโลก (The Earth Observing System: EOS) ขององคการนาซา (NASA)[6] ระบบนี้สามารถสรางขอมูลจํานวนมหาศาล (หนวยเปนเทเรไบตตอวัน) ขอมูลเหลานั้นถูกนํามาใชในการระบุความผิดปกติท่ีเกิดข้ึนบนโลกของเรา ซึ่งการจัดกลุมของขอมูลสามารถทําไดโดยใชอัลกอริทึมคลัสเตอรริง อยางไรก็ตาม เม่ือขอมูลมีขนาดใหญจะสงผลกระทบตอเวลา และหนวยความจําท่ีจํา เปนตองใชสําหรับการประมวลผล ดังนั้นแอพพลิเคชันมากมายท่ีนําอัลกอริทึมเคมีนแบบลําดับมาใชตองประสบกับปญหาเรื่องเวลาและหนวยความจํา ท่ีตองใชในการประมวลผลมากเกินไป เนื่องจากขอมูลมีขนาดใหญ และเพื่อลดเวลาในการประมวลผล ไดมีงานวิจัยเกี่ยวกับอัลกอริทึมสําหรับเลือกชุดของจุดศูนยกลางเริ่มตน [1,5,10] ดังแสดงในรูปท่ี 1 (ข้ันตอนท่ี 2) กอนการจัดกลุมวัตถุดวยอัลกอริทึมเคมีน คลัสเตอรริง ซึ่งชวยใหการจัดกลุมวัตถุรวดเร็วยิ่งข้ึน เนื่องจากจํานวนรอบของการจัดกลุมวัตถุลดลง แตยังตอง

ประสบกับปญหาการมีหนวยความจําไมเพียงพอสําหรับการประมวลผล เนื่องจากอาศัยพื้นท่ีหนวยความจําบนคอมพิวเตอรเพียงเครื่องเดียวเทานั้น และเร็วๆ นี้มีงานวิจัยเกี่ ยวกับอัลกอริ ทึม เคมีนคลัสเตอรริ งแบบขนาน บนเครือขายของคอมพิวเตอร [3,4,6,8,11] ซึ่งชวยทําใหเวลาท่ีจําเปนตองใชสําหรับการประมวลผลลดลง และสามารถประมวลผลขอมูลท่ีมีขนาดใหญมากกวาคอมพิวเตอร เพียงเครื่องเดียวจะสามารถประมวลผลได เนื่องจากใชคอมพิวเตอรหลายเครื่องในการประมวลผล งานวิจัยนี้นํา เสนอวิธีการ เพิ่มประสิทธิภาพของอัลกอริทึมเคมีนดานความเร็วในการประมวลผล และสามารถประมวลผลขอมูลท่ีมีขนาดใหญ ข้ึนได โดยนําเสนออัลกอริทึมสําหรับเลือกชุดของจุดศูนยกลางเริ่มตนแบบใหม และนําวิธีการประมวลผลแบบขนานมาประยุกตใชรวมกัน หัวขอตอไปท่ีจะกลาวถึงคือ งานวิจัยท่ีเกี่ยวของ หัวขอท่ี 3 งานวิจัยท่ีนําเสนอ หัวขอท่ี 4 การวิเคราะหประสิทธิภาพของอัลกอริทึม หัวขอท่ี 5 การทดลองและหัวขอสุดทายคือ สรุปผล

2. งานวิจัยที่เกี่ยวของ งานวิจัยท่ีเกี่ยวของท่ีเราทําการศึกษาแบงออกเปน 2 สวนคือ งานวิจัยเกี่ยวกับอัลกอริทึมสําหรับเลือกชุดของจุดศูนยกลางเริ่มตน [1,10] และงานวิจัยเกี่ยวกับอัลกอริทึมเคมีนคลัสเตอรริงแบบขนาน [6,8,11] ซึ่งในงานวิจัย[10] แสดงวิธีการของลอยด (Lloyd-Type Methods) เลือกจุดศูนยกลาง 2 จุดแรก โดยเลือกคูของวัตถุ Xyx , ดวยคาความนาจะเปนดังนี้ |||| yx ² สวนจุดศูนยกลาง จุดถัดไปเลือกจากวัตถุ x ดวยคาความนาจะเปนดังนี้

||||min },...,1{ jij cx ² เ ม่ือ X เ ป น ชุด ข อ งข อ มู ลท้ังหมด สวน i คือ จํานวนของจุดศูนยกลางท่ีถูกเลือกไวแลว และ c คือจุดศูนยกลางของกลุม และงานวิจัย[1] เลือกจุดศูนยกลางจุดแรก โดยสุมจากวัตถุ ท้ังหมด และเลือกจุดศูนยกลางจุดถัดไปดวยคาความนาจะเปนดังนี้

Proceedings of the Conference on Knowledge and Smart Technologies 2009 (July 24-25, 2009)

143

Page 3: p26 - K-Means Clustering Algorithms

Slave Process

1. Receive a subset P and set C from master process. 2. Assign internal objects into internal clusters and count of objects moved. 3. Calculate sum and count of objects into internal cluster. 4. Broadcast sum, count of objects and count of objects moved to all slave processes. 5. Calculate new centers by using sum and counts. 6. Repeat step 2 if objects moved. 7. Send result set to master process.

2)(xD เม่ือ Xx และ )(xD คือ ระยะหางระหวางวัตถุกับจุดศูนยกลางของวัตถุนั้น ซึ่งถูกเรียกวา “D² Weighting” อัลกอริทึมสําหรับเลือกชุดของจุดศูนยกลางเริ่มตน มีความสําคัญมากตอการจัดกลุมวัตถุ เนื่องจากอัลกอริทึมเคมีนตองจัดกลุมวัตถุวนซ้ําไปเรื่อยๆ จนกวาวัตถุท้ังหมดจะไมมีการเปลี่ยนกลุม ซึ่งตองใชเวลาในการประมวลผลเทากับ O(RKN) [6] เม่ือ R คือ จํานวนรอบของการทํางานซ้ํา สวน K คือ จํานวนกลุมท่ีตองการ และ N คือ จํานวนของวัตถุ ท้ังหมด จากผลการทดลองพบวาอัลกอริทึมสําหรับเลือกชุดของจุดศูนยกลางเริ่มตนเหลานี้ชวยลดจํานวนรอบของการทํางานลง จึงสงผลใหเวลาท่ีจําเปนตองใชในการประมวลผลลดลงตามไปดวย สวนตอมาเปนงานวิจัยเกี่ยวกับอัลกอริทึมเคมีนคลัสเตอรริงแบบขนาน ซึ่งในงานวิจัย[6] ออกแบบใหแตละโปรเซสเซอรจัดกลุมวัตถุท่ีอยูกลุมเดียวกันเทานั้น งานวิจัย [11] ออกแบบใหแตละโปรเซสเซอรจัดกลุมวัตถุของทุกกลุม และกระบวนหลักทําหนาท่ีเลือกชุดของจุดศูนยกลางแลวกระจายไปยังทุกกระบวนการยอย ซึ่งโปรเซสเซอรหลักรับผิดชอบงานของท้ัง 2 กระบวนการ และงานวิจัย [8]ไดพัฒนาใหแตละกระบวนการทําหนาท่ีเลือกชุดของจุดศูนยกลางเอง ซึ่งวิธีการประมวลผลแบบขนานหรือแบบกระจายมีประโยชนเปนอยางมากในการเพิ่มประสิทธิภาพของอัลกอริทึมเคมีน โดยทําการแบงขอมูลไปยังหลายโปรเซสเซอร เพื่อใหโปรเซสเซอรเหลานั้นชวยกันจัดกลุมวัตถุพรอมๆ กันทําใหเวลาท่ีจําเปนตองใชสําหรับการประมวลผลลดลง และสามารถรองรับปญหาขนาดใหญมากกวาคอมพิวเตอรเครื่องเดียวจะสามารถประมวลผลได

3. งานวิจัยที่นําเสนอ 3.1 อัลกอริทึมสําหรับเลือกชุดของจุดศูนยกลาง เร่ิมตน แนวคิดของอัลกอริทึมท่ีนําเสนอสําหรับเลือกชุดของจุดศูนยกลางเริ่มตนแบบใหมคือ เลือกจุดศูนยกลาง 2 จุดแรกใหเปนขอบของขอมูลท้ังหมด สวนจุดศูนยกลางจุด

ถัดไปทําหนาท่ีแบงขอมูลออกทีละครึ่งหนึ่ง โดยเลือกจุดศูนยกลางของกลุมทีละจุดสลับกับการจัดกลุมวัตถุ ซึ่งอัลกอริทึมนี้ตองใชเวลาสําหรับการประมวลผลเทากับ O(KN) และมีข้ันตอนยอยในการทํางาน ดังนี ้ 3.2 อัลกอริทึมเคมีนแบบขนาน แนวคิดของอัลกอริทึมเคมีนแบบขนานท่ีนําเสนอคลายกับวิธีการในงานวิจัย[8] คือ ออกแบบใหแตละโปรเซสเซอรจัดกลุมวัตถุของทุกกลุม และกระบวนการหลัก (Master Process) ทําหนาท่ีเลือกจุดศูนยกลางเริ่มตน แบบใหม ซึ่งพัฒนาตามแบบจําลองการเขียนโปรแกรมเพียงโปรแกรมเดียว และใชโปรแกรมนี้ทํางานบนทุกโปรเซสเซอรกับชุดขอมูลท่ีตางกัน (SPMD) ดังนี้

Master Process

1. Read objects from file. 2. Randomly form equal subsets follow about number of processors. 3. Select initial centers. 4. Send each subset to each slave process. 5. Broadcast initial centers to all slave processes. 6. Receive result sets from all slave processes.

1. เลือกวัตถุที่มีระยะหางนอยที่สุดจากพิกัดศูนย 2. กําหนดจุดศูนยกลางจากวัตถุที่ถูกเลือกไว 3. จัดกลุมวัตถุทั้งหมดตามระยะหางที่นอยที่ สุด

ระหวางวัตถุกับจุดศูนยกลางที่ถูกกําหนดไว 4. เลือกวัตถุที่มีระยะหางมากที่สุดจากทุกกลุม 5. ทํางานซํ้าขั้นตอนที่ 2 จนกวาจุดศูนยกลางจะครบ K จุดศูนยกลาง 6. คํานวณคาเฉล่ียของแตละกลุมเพื่อกําหนดเปนชุด ของจุดศูนยกลางเร่ิมตน

Proceedings of the Conference on Knowledge and Smart Technologies 2009 (July 24-25, 2009)

144

Page 4: p26 - K-Means Clustering Algorithms

4. การวิเคราะหประสิทธิภาพของอัลกอริทึม การวิเคราะหเวลาท่ีเครื่องคอมพิวเตอรตองใชในการประมวลผลอัลกอริทึม (Time Complexity) แบงเปน 2 สวน คือ เวลาสําหรับการสื่อสารระหวางโปรเซสเซอร (Communication Time: Tcomm) และเวลาสําหรับการประมวลผล (Computation Time: Tcomp) ซึ่งอัลกอริทึมเคมีนแบบขนานท่ีนําเสนอมีเวลาสําหรับการสื่อสาร และเวลาสําหรับการประมวลผลท้ังหมด 10 ข้ันตอน ดังนี้ ข้ันตอน 1: กระบวนการหลักเลือกชุดของจุดศูนยกลางเริ่มตน

Tcomp1 = KN ข้ันตอน 2: กระบวนการหลักสงกลุมขอมูลไปยังแตละกระบวนการยอย

Tcomm1 = nProc(Tstartup + N/nProc Tdata)

ข้ันตอน 3: กระบวนการหลักกระจายชุดของจุดศูนยกลางเริ่มตนไปยังทุกกระบวนการยอย

Tcomm2 = Tstartup + |C| Tdata

ข้ันตอน 4: กระบวนการยอยนําขอมูลของวัตถุและชุดของจุดศูนยกลางเริ่มตนมาจัดกลุมและนับจํานวนวัตถุท่ีมีการเปลี่ยนกลุม

Tcomp2 = K|P| ข้ันตอน 5: กระบวนการยอยคํานวณผลรวมและนับจํานวนสมาชิกของแตละกลุม

Tcomp3 = |P| ข้ันตอน 6: แตละกระบวนการยอยกระจายผลรวมไปยังทุกกระบวนการยอย

Tcomm3 = Tstartup + |C| Tdata

ข้ันตอน 7: แตละกระบวนการยอยกระจายจํานวนสมาชิกไปยังทุกกระบวนการยอย

Tcomm4 = Tstartup + K Tdata

ข้ันตอน 8: แตละกระบวนการยอยกระจายจํานวนวัตถุท่ีมีการเปลี่ยนกลุมไปยังทุกกระบวนการยอย

Tcomm5 = Tstartup + Tdata

ข้ันตอน 9: กระบวนการยอยนําผลรวม และจํานวนสมาชิกของแตละกลุมมาคํานวณหาคาเฉลี่ย

Tcomp4 = |C|

ข้ันตอน 10: แตละกระบวนการยอยสงผลลัพธการจัดกลุมกลับไปยังกระบวนการหลัก

Tcomm6 = Tstartup + G Tdata

จากอัลกอริทึมเคมีนแบบขนานพบวากระบวนการยอยมีการทํางานซ้ําต้ังแตข้ันตอนท่ี 2 จนถึงข้ันตอนท่ี 5 ซึ่ง TCM เปนผลรวมของเวลาท่ีใชสําหรับการสื่อสาร และ TCP เปนผลรวมของเวลาท่ีใชสําหรับการประมวลผล ฉะนั้นเวลาท่ีเครื่องคอมพิวเตอรตองใชในการประมวลผลสามารถคํานวณไดจากสมการ ดังนี้ Total Time = TCM + TCP TCM = Tcomm1 + Tcomm2 + Tcomm3 + Tcomm4 + Tcomm5 + Tcomm6

= nProc (Tstartup + N/nProc Tdata) + Tstartup + |C| Tdata + R (Tstartup + |C| Tdata) + R (Tstartup + K Tdata) + R (Tstartup + Tdata) + Tstartup + G Tdata

= (nProc + 3R + 2) Tstartup + (N + |C| + R (|C| + K +1) + G) Tdata

= O(N + R|C|) TCP = Tcomp1 + Tcomp2 + Tcomp3 + Tcomp4

= KN + RK|P| + R|P| + R|C|

= KN + R (K|P| + |P| + |C|)

= O(KN + RK|P|) Total Time = O(N + R|C|) + O(KN + RK|P|)

= O(KN + RK|P|)

การวิเคราะหหนวยความจําท่ีเครื่องจําเปนตองใชในการประมวลผลอัลกอริทึม (Space Complexity) เนื่องจาก กระบวนการหลักทําการแบงขอมูลท้ังหมดไปยังทุกกระบวนยอยแบบสุม ซึ่งแตละโปรเซสเซอรทํางานอยูบนเครื่องคอมพิวเตอรตางเครื่องกัน และแตละเครื่องมีหนวย ความจําเปนของตัวเอง ดังนั้นอัลกอริทึมเคมีนแบบขนานจึงสามารถรองรับขอมูลท่ีมีขนาดใหญข้ึน และตองใชหนวยความจําท้ังหมดเทากับ O(N) [6] จากอัลกอริทึมเคมีนแบบขนาน Tstartup เปนเวลาสําหรับเตรียมการเริ่มตนในการสงขอมูลและ Tdata เปนเวลาสําหรับสงขอมูลไปยังโปรเซสเซอรหนวยอื่น ซึ่งเวลาท้ัง 2 เปนเวลาคงท่ีข้ึนอยูกับระบบ [6] สวน nProc คือ จํานวนของโปรเซสเซอรท้ังหมดท่ีใชในการประมวลผล

Proceedings of the Conference on Knowledge and Smart Technologies 2009 (July 24-25, 2009)

145

Page 5: p26 - K-Means Clustering Algorithms

0

0.05

0.1

0.15

0.2

0.25

0.3

0.35

0.4

0.45

10 20 30 40 50

Algo1

Algo2Algo3NewAlgoEx

ecut

ion

Tim

e(S

econ

d)

K

Time Comparison

เซต N คือ ขอมูลของวัตถุท้ังหมดท่ีตองการจัดกลุม เซต P คือ ขอมูลของวัตถุท่ีแตละโปรเซสเซอรรับผิดชอบ ดังนั้น |P| N/nProc เซต G คือ ผลลัพธของการจัดกลุมวัตถุในกระบวนการยอย และเซต C คือ ชุดของจุดศูนยกลาง ซึ่งประกอบดวยจุดศูนยกลางของทุกกลุม

5. การทดลอง การทดลองในงานวิจัยนี้ เปนการพัฒนาอัลกอริทึมสําหรับเลือกจุดศูนยกลางเริ่มตน และอัลกอริทึมเคมีนคลัสเตอรริงแบบขนานบนระบบคลัสเตอรแบบเนื้อ เดียว (Homogeneous Cluster System) ซึ่งใชระบบการสงผานขอความ (Message Passing Interface: MPI) เพื่อทําใหกลุมของคอมพิวเตอรสามารถติดตอสื่อสารและทํางานรวมกันได โดยใชภาษาซีในการพัฒนาโปรแกรม สวนไฟลขอมูลท่ีนํามาใชในการทดลองมีรายละเอียด ดังนี ้

ตาราง 1. ชุดขอมูลสําหรับการทดลอง Data set Quantity Attributes Size: KB Cloud 1,024 10 106 Spam 4,601 58 686

Intrusion 494,019 35 63,539

สว น แร ก คือ กา ร ทด ล อง วั ดป ร ะสิ ท ธิภ า พข อ งอัลกอริทึมเคมีนแบบลําดับ สําหรับหนึ่งหนวยประมวลผลโดยพิจารณาจากเวลาท่ีตองใชสําหรับการประมวลผล และจํานวนรอบของการทํางานซ้ํา ซึ่งนําอัลกอริทึมสําหรับเลือกชุดของจุดศูนยกลางเริ่มตนแบบตางๆ มาประยุกตใชกับอัลกอริทึมเคมีนแบบลําดับ ดังนี้ อัลกอริทึม 1: เลือกชุดของจุดศูนยกลางเริ่มตน โดยเลือกวัตถุท่ีอยูลําดับแรกจนถึงลําดับท่ี K จากวัตถุท้ังหมด [8] อัลกอริทึม 2: เลือกจุดศูนยกลาง 2 จุดแรก โดยเลือกคูของวัตถุท่ีมีระยะหางมากท่ีสุด และเลือกจุดศูนยกลางจุดถัดไปจากวัตถุท่ีมีระยะหางมากท่ีสุดระหวางวัตถุกับจุดศูนยกลางของวัตถุนั้น [10] อัลกอริทึม 3: เลือกจุดศูนยกลางจุดแรก โดยสุมจากวัตถุท้ังหมด และเลือกจุดศูนยกลางจุดถัดไปจากวัตถุท่ีมีระยะ หางมากท่ีสุดระหวางวัตถุกับจุดศูนยกลางของวัตถุนั้น [1]

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

ตาราง 2. เวลาท่ีตองใชสําหรับการประมวลผล K Algo1 Algo2 Algo3 NewAlgo 10 0.0469 0.1094 0.0262 0.0078 20 0.0859 0.1680 0.0625 0.0352 30 0.1953 0.1445 0.1055 0.0859 40 0.2500 0.1953 0.1016 0.0664 50 0.4258 0.1836 0.1133 0.0977

รูปท่ี 2. เปรียบเทียบเวลาท่ีตองใชสําหรับ การประมวลผล

ตาราง 3. จํานวนรอบของการทํางานซ้ํา K Algo1 Algo2 Algo3 NewAlgo 10 32 31 17 2 20 31 36 22 11 30 48 19 24 20 40 46 23 17 11 50 65 16 15 13

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

Proceedings of the Conference on Knowledge and Smart Technologies 2009 (July 24-25, 2009)

146

Page 6: p26 - K-Means Clustering Algorithms

0

0.05

0.1

0.15

0.2

0.25

0.3

10 20 30 40 50

ParK-meansNewK-means

Time Comparison

Exec

utio

n Ti

me

(Sec

ond)

K

สวนสุดทายคือ การทดลองวัดประสิทธิภาพของอัลกอริ ทึมเคมีนแบบขนาน โดย ทําการเปรียบเทียบประสิทธิภาพระหวางอัลกอริทึมเคมีนแบบขนานแบบเดิม ซึ่งใชอัลกอริทึมสําหรับเลือกชุดของจุดศูนยกลางเริ่มตนแบบแรก [8] กับอัลกอริทึมเคมีนแบบขนานแบบใหมท่ีนําเสนอ โดยใชหนวยประมวลผลจํานวน 2 หนวย ในการทดลองครั้งนี้

ตาราง 4. ผลการเปรียบเทียบประสิทธิภาพ อัลกอริทึมเคมีนแบบขนาน ParK-means NewK-means K

Itera Time Itera Time 10 32 0.0313 2 0.0039 20 31 0.0547 11 0.0234 30 48 0.1211 20 0.0508 40 46 0.1406 11 0.0430 50 65 0.2383 13 0.0586

รูปท่ี 3. ผลการเปรียบเทียบประสิทธิภาพ อัลกอริทึมเคมีนแบบขนาน

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

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

7. เอกสารอางอิง

[1] D. Arthur, and S. Vassilvitskii, “k-means++: The Advantages of Careful Seeding”, SODA, 2007.

[2] D. Arthur and S. Vassilvitskii, “K-means++ test code”,http://www.stanford.edu/_darthur/kMeanspp Test.zip.

[3] H. BISGIN, “Parallel Clustering Algorithm With Application to Climatology”, Computational Science and Engineering, December 2007.

[4] M. N. Joshi, “Parallel K - Means Algorithm on Distributed Memory Multiprocessors”, Computer Science Department University of Minnesota, Twin Cities, spring 2003.

[5] C. H. Jun, J. S. Lee, and H. S. Park, “A K-means-like Algorithm for K-medoids Clustering and Its Performance”, Proceedings of the 36th CIE Conference on Computers & Industrial Engineering, pp.1222-1231, Taipei, Taiwan, Jun. 20-23, 2006.

[6] S. Kantabutra, “Parallel K-Means Clustering Algorithm on NOW”, September 1999.

[7] S. Kantabutra, P. Kornpitak, and C. Naramittakapong , “Pipelined K-means Algorithm on COWs”, ISCIT , September 03-05, 2003, Hatyai, Songkhla, Thailand.

[8] W. Liao, “The Software Package of Parallel K-means”, http://www.ece.northwestern.edu/~wkliao/ Kmeans/index.html, 2005.

[9] J. Mao, L. Ou, Z. Xiong, and Y. Zhang, “The Study of Parallel K-Means Algorithm”, Proceedings of the 6th World Congress on Intelligent Control and Automation, June 21 - 23, 2006, Dalian, China.

[10] R. Ostrovsky, Y. Rabani, L. J. Schulman, and C. Swamy, The Effectiveness of Lloyd-Type Methods for the k-Means Problem”, IEEE, 2006.

[11] E. SÜLÜN, “Improvements in K-means Algorithm to Execute on Large Amounts of Data”, http://library.iyte.edu.tr/tezler/master/bilgisayaryaziliz/

T000441.pdf, October 2004.

Proceedings of the Conference on Knowledge and Smart Technologies 2009 (July 24-25, 2009)

147