ใน scipy อะไรคือจุดสำคัญของฟังก์ชันระยะทางสองฟังก์ชันที่แตกต่างกันที่ใช้ในการจัดกลุ่มแบบลำดับชั้น?

มีฟังก์ชันระยะทางหนึ่งที่ฉันสามารถส่งผ่านไปยัง pdist ใช้เพื่อสร้างเมทริกซ์ระยะทางที่กำหนดให้กับ linkage มีฟังก์ชันระยะทางที่สองที่ฉันสามารถส่งผ่านไปยัง linkage เป็นหน่วยเมตริกได้

เหตุใดจึงมีฟังก์ชันระยะทางที่เป็นไปได้สองฟังก์ชัน

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


person Ghopper21    schedule 17.08.2015    source แหล่งที่มา
comment
docs.scipy.org/doc/scipy/ อ้างอิง/สร้าง/ จากส่วนพารามิเตอร์ ดูเหมือนว่า pdist เป็นฟังก์ชันระยะทางเริ่มต้น และให้ตัวเลือกแก่คุณในการระบุของคุณเอง ซึ่งสามารถถ่วงน้ำหนักตามมิติได้ เป็นต้น   -  person Charlie Haley    schedule 18.08.2015
comment
ขอบคุณ @CharlieHaley อย่างไรก็ตาม คำถามของฉันเกี่ยวกับความจริงที่ว่าคุณสามารถระบุฟังก์ชันแบบกำหนดเองได้สองครั้ง ครั้งแรกเมื่อสร้างเมทริกซ์ระยะทาง และอีกครั้งเมื่อทำการเชื่อมโยง -- ทำไมสองครั้ง   -  person Ghopper21    schedule 18.08.2015


คำตอบ (1)


เคยใช้ฟังก์ชันระยะทางเพียงฟังก์ชันเดียวเท่านั้น

หากคุณส่งเมทริกซ์ระยะทางควบแน่น 1D (เช่น เอาต์พุตของ pdist) ไปที่ linkage ดังนั้น linkage จะไม่สนใจพารามิเตอร์ metric ของมัน (ดู ซอร์สโค้ดที่นี่ โดยที่ scipy เรียกใช้ฟังก์ชันการเชื่อมโยง Cython ที่เกี่ยวข้องโดยไม่เคยใช้พารามิเตอร์ metric)

ในทางกลับกัน หากคุณส่งผ่านเมทริกซ์ 2 มิติ linkage จะถือว่าเมทริกซ์นี้เป็นการสังเกตและเรียกใช้ pdist บนเมทริกซ์นี้ให้คุณ โดยใช้พารามิเตอร์ metric เป็นฟังก์ชันระยะทาง (ดูซอร์สโค้ดที่นี่)

person Ghopper21    schedule 18.08.2015