การวนซ้ำแบบ scipy kmeans หมายความว่าอย่างไร

ฉันใช้อัลกอริธึม kmeans2 ตั้งแต่สีพิกเซลแบบ scipy ไปจนถึงสีคลัสเตอร์ในรูปภาพ เพื่อให้ได้สีโดยเฉลี่ยอันดับต้นๆ ของรูปภาพ

http://docs.scipy.org/doc/scipy/reference/generated/scipy.cluster.vq.kmeans2.html#scipy.cluster.vq.kmeans2

ฉันสับสนกับความหมายของพารามิเตอร์นี้:

iter : int
Number of iterations of the k-means algrithm to run. Note that this differs in meaning from the iters parameter to the kmeans function.

ถ้าฉันต้องการให้อัลกอริทึม kmeans ทำงานจนกว่าคลัสเตอร์จะไม่เปลี่ยนแปลง ฉันจะตั้งค่า iter ให้สูงหรือไม่ มีวิธีหาค่า ดีที่สุด iter หรือไม่


person Michael Johnston    schedule 13.07.2013    source แหล่งที่มา


คำตอบ (1)


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

แก้ไข: ค่าการวนซ้ำสูงสุด ไม่ถูกต้อง ฉันคิดว่ามันจะวนซ้ำ iter ครั้งอย่างแท้จริง แม้ว่าค่าเริ่มต้น 10 จะเป็นค่า iter ทั่วไปก็ตาม

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

person seth    schedule 13.07.2013
comment
อ่า ตกลง ดังนั้นถ้าฉันตั้งค่า iter=9999 มันจะไม่ทำซ้ำ 9999 เสมอไป แต่จนกว่ามันจะมาบรรจบกัน - person Michael Johnston; 13.07.2013
comment
มีวิธีที่จะวนซ้ำอย่างไม่สิ้นสุดหรือไม่? ยังมีวิธีแสดงจำนวนการวนซ้ำที่เกิดขึ้นเมื่อมาบรรจบกันหรือไม่ - person Michael Johnston; 13.07.2013
comment
ฉันไม่แน่ใจเกี่ยวกับ scipy แต่ควรตรงไปตรงมาเพื่อนำ kmeans ไปใช้ใหม่ตามที่คุณต้องการ แต่ใช้โมดูล numpy และ scipy เพื่อรักษาความเร็ว - person seth; 13.07.2013