Di scipy, apa gunanya dua fungsi jarak berbeda yang digunakan dalam pengelompokan hierarki?

Ada satu fungsi jarak yang bisa saya teruskan ke pdist gunakan untuk membuat matriks jarak yang diberikan ke linkage. Ada fungsi jarak kedua yang bisa saya teruskan ke linkage sebagai metrik.

Mengapa ada dua kemungkinan fungsi jarak?

Jika berbeda, bagaimana cara penggunaannya? Misalnya, apakah linkage menggunakan jarak dalam matriks jarak untuk iterasi awalnya, yaitu untuk melihat apakah ada dua pengamatan asli yang harus digabungkan menjadi sebuah cluster, dan kemudian menggunakan fungsi metrik untuk kombinasi lebih lanjut, misalnya dua cluster atau satu cluster dengan pengamatan asli?


person Ghopper21    schedule 17.08.2015    source sumber
comment
docs.scipy.org/doc/scipy/ reference/generated/ Dari bagian parameter, sepertinya pdist adalah fungsi jarak default, dan ini memberi Anda opsi untuk menentukan sendiri, yang misalnya dapat diberi bobot dimensi.   -  person Charlie Haley    schedule 18.08.2015
comment
Terima kasih @CharlieHaley. Namun, pertanyaan saya adalah tentang fakta bahwa Anda dapat menentukan fungsi khusus dua kali, sekali saat membuat matriks jarak dan sekali saat melakukan tautan -- mengapa dua kali?   -  person Ghopper21    schedule 18.08.2015


Jawaban (1)


Hanya satu fungsi jarak yang pernah digunakan.

Jika Anda meneruskan matriks jarak kental 1D (yaitu keluaran pdist) ke linkage, maka linkage akan mengabaikan parameter metric-nya. (Lihat kode sumber di sini di mana scipy memanggil fungsi tautan Cython yang mendasarinya tanpa pernah menggunakan parameter metric.)

Di sisi lain, jika Anda meneruskan matriks 2D, linkage akan memperlakukan matriks ini sebagai observasi dan memanggil pdist pada matriks ini untuk Anda, menggunakan parameter metric sebagai fungsi jarak. (Lihat kode sumber di sini.)

person Ghopper21    schedule 18.08.2015