การเริ่มต้น K-หมายถึงศูนย์โดยวิธีการของชุดย่อยแบบสุ่มของชุดข้อมูลหรือไม่


13

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

5 clustersตัวอย่างเช่นสมมติว่าผมต้องการ ฉัน5 random samplesพูดsize=20%ของชุดข้อมูลเดิม จากนั้นฉันจะใช้ค่าเฉลี่ยของตัวอย่างสุ่มทั้ง 5 เหล่านี้แล้วใช้ค่าเฉลี่ยเหล่านั้นเป็นศูนย์คลัสเตอร์เริ่มต้น 5 ศูนย์ของฉันได้หรือไม่ ฉันไม่รู้ว่าฉันอ่านตรงไหน แต่อยากรู้ว่าพวกคุณคิดอย่างไรกับแนวคิดนี้


UPDATE:โปรดดูหัวข้อนี้การเริ่มต้น K-หมายถึงการจัดกลุ่ม: วิธีการที่มีอยู่คืออะไร? สำหรับการสนทนาทั่วไปเกี่ยวกับวิธีการเริ่มต้นต่างๆ


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

2
@ttnphns นี่จะเป็นคำตอบที่ดี

2
ฉันคิดว่ามันจะเป็นการดีกว่าที่จะเลือกค่าเฉลี่ยโดยรวมเป็นจุดเดียวและเลือกผู้อื่นที่อยู่ห่างจากศูนย์กลางในทิศทางต่าง ๆ
Michael R. Chernick

1
มีเหตุผล. ฉันจะไปรอบ ๆ เกี่ยวกับการค้นหา 5 คะแนนเหล่านี้ซึ่งอยู่ห่างกันอย่างไร ขอขอบคุณ!
JEquihua

@Jequihua ฉันโพสต์ความคิดเห็นของฉันเป็นคำตอบและเพิ่มรายละเอียดที่คุณร้องขอ
ttnphns

คำตอบ:


16

หากคุณสุ่มแบ่งกลุ่มตัวอย่างออกเป็น 5 subsamples 5 ของคุณหมายความว่าเกือบจะเหมือนกัน ความรู้สึกของการทำจุดปิดดังกล่าวเป็นศูนย์คลัสเตอร์เริ่มต้นคืออะไร?

ในการใช้งาน K- หมายถึงการเลือกเริ่มต้นของศูนย์คลัสเตอร์เริ่มต้นขึ้นอยู่กับแนวคิดที่ตรงกันข้าม: เพื่อค้นหา 5 คะแนนซึ่งอยู่ไกลที่สุดและทำให้เป็นศูนย์เริ่มต้น คุณอาจถามว่าอะไรจะเป็นวิธีการค้นหาจุดที่ห่างไกลเหล่านั้น? นี่คือสิ่งที่ K-Mean 'ทำเพื่อ:

ใช้k cases (points) ใด ๆของชุดข้อมูลเป็นศูนย์เริ่มต้น กรณีส่วนที่เหลือทั้งหมดจะถูกตรวจสอบความสามารถในการเปลี่ยนเป็นศูนย์เริ่มต้นตามเงื่อนไขต่อไปนี้:

  • a) หากกรณีนั้นอยู่ห่างจากจุดศูนย์กลางที่อยู่ใกล้ที่สุดมากกว่าระยะห่างระหว่างสองจุดที่อยู่ใกล้กันมากที่สุดจุดกึ่งกลางของคดีจะเข้ามาแทนที่จุดกึ่งกลางของจุดสองหลังซึ่งอยู่ใกล้ที่สุด
  • b) หากกรณีนั้นอยู่ห่างจากจุดศูนย์กลางที่ 2 ซึ่งอยู่ใกล้ที่สุดไปกว่าระยะห่างระหว่างจุดกึ่งกลางที่อยู่ใกล้ที่สุดกับจุดกึ่งกลางที่อยู่ใกล้จุดหลังที่สุดกรณีนี้จะแทนที่จุดกึ่งกลางที่อยู่ใกล้ที่สุด

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

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


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

การใช้คะแนนสูงสุดเป็นศูนย์เริ่มต้นเมื่อไม่รับประกันว่าจะได้พาร์ทิชันที่ดีที่สุดในตอนท้ายคิดว่าพวกเขา (เมื่อเทียบกับศูนย์เริ่มต้นแบบสุ่ม) จะลดโอกาสในการติดกับ "ท้องถิ่นที่เหมาะสม" และพวกเขาเร่งกระบวนการรวม . ลำดับที่แตกต่างกันของกรณีทำทั้ง k- หมายถึงพาร์ทิชัน 2-5 ครั้งบันทึกศูนย์สุดท้ายที่ได้รับพวกเขาเฉลี่ยและอินพุตเป็นคนเริ่มต้นสำหรับการจัดกลุ่มสุดท้ายหนึ่ง พาร์ติชั่นนี้ดีที่สุดแน่นอน คุณไม่จำเป็นต้องมีสถิติพิเศษใด ๆ ในการตรวจสอบเว้นแต่ว่าคุณกำลังจะเปรียบเทียบส่วนที่มีค่าต่างกัน k
ttnphns

1
ฉันต้องการเปรียบเทียบพาร์ติชันของ k ที่ต่างกัน ฉันจะใช้อะไรได้บ้าง ความคิดที่ดีคืออะไร? ขอบคุณที่ช่วยฉันมาก @ttnphns
JEquihua

มีอยู่ที่ดีจำนวน"ภายใน" หลักเกณฑ์การจัดกลุ่ม หนึ่งในสิ่งที่เหมาะสมที่สุดสำหรับวิธี k คือ Calinski-Harabasz (ฟิชเชอร์หลายตัวแปร) Google เพื่อมันหรือเพื่อผู้อื่น
ttnphns

7

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

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

  • Arthur, D. และ Vassilvitskii, S. (2007)
    k-หมายถึง ++: ข้อดีของการเพาะอย่างระมัดระวัง ".
    การประชุมวิชาการ ACM-SIAM ประจำปีที่สิบแปดในอัลกอริทึมแบบแยก

สไลด์ผู้แต่ง: http://www.ima.umn.edu/~iwen/REU/BATS-Means.pdf


ฉันอ่านสิ่งนี้มันดูมีประโยชน์มาก แต่ฉันคิดว่ามันยังไม่ได้รับการพิสูจน์ว่ามันใช้งานได้ดีกว่าการใช้จุดเริ่มต้นแบบสุ่มจำนวนมาก ฉันพบรหัสง่าย ๆ นี้ในกรณีที่คุณต้องการลอง: kmpp <- function (X, k) {n <- nrow (X) C <- ตัวเลข (k) C [1] <- ตัวอย่าง (1: n, 1) สำหรับ (i ใน 2: k) {dm <- distmat (X, X [C,]) pr <- ใช้ (dm, 1, min); pr [C] <- 0 C [i] <- ตัวอย่าง (1: n, 1, prob = pr)} kmeans (X, X [C,])}
JEquihua

เป็นที่ทราบกันดีว่าลดจำนวนการวนซ้ำอย่างมีนัยสำคัญจนกว่าการบรรจบกันและสร้างผลลัพธ์ที่ดีกว่าโดยเฉลี่ย ฉันสามารถยืนยันได้ว่าในการทดสอบของฉันเอง kmeans ++ เป็นวิธีที่จะไป ฉันใช้การติดตั้งของ ELKI
มี QUIT - Anony-Mousse

การใช้งานของ ELKI คืออะไร ฉันจะหามันได้ที่ไหน ทักทาย!
JEquihua


4

การใช้วิธีการสุ่มตัวอย่างจะทำให้คุณได้สิ่งที่คุณต้องการตรงที่ ttnphns ชี้ให้เห็นในความคิดเห็นของเขา สิ่งที่เราต้องการคือวิธีหาจุดข้อมูลที่อยู่ห่างไกลกัน

เป็นการดีที่คุณสามารถทำซ้ำทุกจุดหาระยะทางระหว่างพวกเขากำหนดว่าระยะทางที่ใหญ่ที่สุด ...

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

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


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

2

k


ทำให้รู้สึกมาก ฉันขอถามคุณแบบเดียวกับที่ฉันถาม Aman ได้ไหม สมมติว่าฉันใช้จุดเริ่มต้นแบบสุ่ม zillion ฉันจะใช้อะไรได้บ้างเพื่อกำหนดว่าพาร์ทิชันที่ได้ผลดีที่สุดใด ทักทาย! @gmacfarlane
JEquihua

k

k
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.