การจัดกลุ่มสูตรความเฉื่อยใน scikit เรียนรู้


9

ฉันต้องการรหัสการจัดกลุ่ม kmeans ใน python โดยใช้ pandas และ scikit เรียนรู้ ในการเลือก k ที่ดีฉันต้องการรหัสสถิติ Gap จาก Tibshirani และ al 2001 ( pdf )

ฉันต้องการทราบว่าฉันสามารถใช้ผลเฉื่อยจาก scikit และปรับสูตรสถิติช่องว่างโดยไม่ต้องคำนวณการคำนวณระยะทางทั้งหมดอีกครั้ง

ไม่มีใครรู้สูตรความเฉื่อยที่ใช้ใน scikit / รู้วิธีที่ง่ายในการถอดรหัสสถิติช่องว่างโดยใช้ฟังก์ชั่นระยะทางระดับสูง?


ฉันคิดว่าคำถามนี้มีเนื้อหาทางสถิติเพียงพอที่จะเป็นหัวข้อสำหรับ CV แต่โปรดทราบว่ามันต้องมีความรู้ด้านการเขียนโปรแกรมและ Python ที่ค่อนข้างซับซ้อนเช่นกัน มันอาจเป็นเรื่องยากที่จะได้รับคำตอบที่ดี คุณอาจต้องการ / เต็มใจที่จะชำระให้กับpseudocodeเช่นกัน & / หรือคุณอาจต้องแบ่งคำถามนี้ออกเป็น 2 ส่วนโดยที่นี่เกี่ยวกับแง่มุมทางสถิติและส่วนที่ 1 ในStack Overflowเกี่ยวกับแง่มุมการเขียนโปรแกรม Python (หรืออาจจะไม่ใช่ฉันไม่รู้แน่ชัด แต่ฉันแค่ต้องการเตือนคุณอย่างเป็นธรรมเราจะดูว่ามันจะเป็นอย่างไร)
gung - Reinstate Monica

1
คำถามนี้ต้องการคำว่า "ความเฉื่อย" ที่จะถูกกำหนด pythonดูเหมือนว่ามันประกาศเกียรติคุณภายใน
ttnphns

คำตอบ:


6

ฉันเดาว่าฉันพบคำตอบของฉันสำหรับการจัดกลุ่ม kmeans:

จากการดูซอร์สโค้ด git ฉันพบว่าสำหรับการเรียนรู้ scikit ความเฉื่อยจะถูกคำนวณเป็นผลรวมของระยะห่างกำลังสองสำหรับแต่ละจุดจนถึงเซนทรอยด์ที่ใกล้ที่สุดนั่นคือคลัสเตอร์ที่ได้รับมอบหมาย ดังนั้นโดยที่คือเซนทรอยด์ของคลัสเตอร์ที่กำหนดและคือระยะทางกำลังสอง I=i(d(i,cr))crd

ตอนนี้สูตรของสถิติช่องว่างเกี่ยวข้องกับ ที่คือผลรวมของระยะทางระหว่างจุด Squared ทั้งหมดในคลัสเตอร์R

Wk=r=1k1(2nr)Dr
Drr

ด้วยการแนะนำ ,ในสูตรระยะทางยกกำลังสอง (เป็น centroid ของพิกัดของคลัสเตอร์) ฉันมีคำที่สอดคล้องกับความเฉื่อย (ใน scikit) + คำที่หายไปถ้าแต่ละตัวเป็น barycentre ของแต่ละกลุ่ม (ซึ่งควรอยู่ใน kmeans) ดังนั้นฉันเดาว่าเป็นจริง scikit Inertia+cccrcWk

ฉันยังมีสองคำถาม:

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

2
เป็นการดีที่สุดที่จะไม่ตั้งคำถามในคำตอบของคุณ หากนี่ไม่ใช่คำตอบที่แท้จริงสำหรับคำถามของคุณ แต่เป็นเพียงวิธีแก้ปัญหาบางส่วนเพื่อชี้แจงคำถามที่แท้จริงคุณควรแก้ไขคำถามของคุณและวางข้อมูลนี้ใน
gung - Reinstate Monica

1
@Scratch คุณเคยใช้ python ของสถิติ gap เพื่อทำงานกับชุดข้อมูล Iris หรือไม่? ฉันกำลังดิ้นรนกับปัญหาเดียวกัน
Zelazny7

ใช่ฉันเขียนโค้ดเมื่อไม่กี่เดือนที่ผ่านมา ฉันจะส่งสิ่งนั้นให้คุณได้อย่างไร
ขีดข่วน

1
ไม่ควรเป็นสูตรนี้ ?
Wk=r=1kDr(2nr)
Biswanath
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.