Skor jarak dan kesamaan Euclidean

13

Saya hanya bekerja dengan buku Collective Intelligence (oleh Toby Segaran) dan menemukan skor jarak Euclidean. Dalam buku ini penulis menunjukkan bagaimana menghitung kesamaan antara dua array rekomendasi (yaitu skor .person×moviescore)

Dia menghitung jarak Euclidean untuk dua orang, dan p 2 dengan d ( p 1 , p 2 ) = p1p2

d(p1,p2)=i  item(sp1sp2)2

Ini masuk akal bagi saya. Apa yang saya tidak benar-benar mengerti adalah mengapa ia menghitung pada akhirnya yang berikut untuk mendapatkan "kesamaan berdasarkan jarak":

11+d(p1,p2)

Jadi, saya mendapatkan bahwa ini pasti konversi dari jarak ke kesamaan (kan?). Tetapi mengapa formular terlihat seperti ini? Adakah yang bisa menjelaskannya?

navige
sumber
Mungkin ada banyak cara untuk mengubah ketidaksamaan dan kesamaan menjadi satu sama lain - formula spesifik tergantung pada apa yang masuk akal bagi Anda dan untuk analisis di masa depan. Dalam buku teks itu, penulis lebih menyukai formula yang Anda tunjukkan karena alasan tertentu; orang lain dalam situasi yang berbeda mungkin memilih formula lain. Cara yang paling geometris benar untuk mengubah jarak euclidean menjadi kesamaan akan mengikuti dari teorema kosinus di bawah kondisi data-berpusat dan dijelaskan di sini pada par. 1.
ttnphns
Baik! Tetapi jika saya mengerti benar Anda tidak benar-benar mengubah jarak euclidean menjadi kesamaan, tetapi Anda hanya menggunakan fungsi berbeda yang mengembalikan nilai Anda dalam 0 dan 1 (karena kosinus), bukan? Maksud saya tampaknya berbeda bagi saya daripada menghitung semua jarak dan kemudian mengubahnya menjadi kesamaan dengan misalnya interpolasi antara jarak terkecil dan terbesar. Baik?
navige
Jika Anda memiliki matriks simetris kuadrat dari jarak euclide kuadrat dan Anda melakukan operasi "pemusatan ganda" di atasnya maka Anda mendapatkan matriks produk skalar yang akan diamati ketika Anda meletakkan asal ruang euclidean di tengah konfigurasi Anda benda. Produk skalar ini adalah kesamaan tipe sudut. Mereka seperti kovarian . Mereka tidak terikat dalam kisaran 0-1, mereka bisa elemen negatif, positif, dan diagonal tidak harus 1. Namun, mereka adalah kesamaan.
ttnphns

Jawaban:

12

Kebalikannya adalah untuk mengubah dari jarak ke kesamaan.

Angka 1 dalam penyebutnya adalah untuk membuatnya sehingga nilai maksimum adalah 1 (jika jaraknya 0).

Akar kuadrat - saya tidak yakin. Jika jarak biasanya lebih besar dari 1, root akan membuat jarak besar kurang penting; jika jarak kurang dari 1, itu akan membuat jarak besar lebih penting.

Peter Flom - Pasang kembali Monica
sumber
Maaf! Akar kuadratnya salah. Penulis benar-benar memasukkannya ke dalam formula kedua, tetapi tidak memasukkannya dalam formula pertama. Jadi tidak seharusnya ada di sana
navige
Ya, tetapi petunjuk Anda dengan menetapkan nilai maksimum ke 1 masuk akal! Terima kasih!
navige
4

Untuk mengukur jarak dan kesamaan (dalam arti semantik) hal pertama yang perlu diperiksa adalah apakah Anda bergerak di ruang Euclidean atau tidak. Cara empiris untuk memverifikasi ini adalah memperkirakan jarak sepasang nilai yang Anda ketahui artinya.

Claudio Martines
sumber
1

Seperti yang Anda sebutkan, Anda tahu perhitungan jarak Euclidence jadi saya menjelaskan rumus kedua.

Rumus Euclidean menghitung jarak, yang akan lebih kecil untuk orang atau barang yang lebih mirip. Seperti jika mereka sama maka jarak adalah 0 dan sama sekali berbeda maka lebih tinggi dari 0.

Namun kita membutuhkan fungsi yang memberikan nilai lebih tinggi dari mereka yang serupa. Ini dapat dilakukan dengan menambahkan 1 ke fungsi (sehingga Anda tidak mendapatkan kesalahan pembagian-oleh-nol) dan membalikkannya. Seperti jika distence 0 dan skor kesamaan 1/1 = 1

pengguna10009133
sumber
Saya tidak mengerti jawaban ini.
Michael R. Chernick
ok katakanlah jarak Euclidean antara item 1 dan item 2 adalah 4 dan antara item 1 dan item 3 adalah 0 (berarti mereka 100% mirip). Ini adalah jarak item dalam ruang virtual. semakin kecil nilai jarak berarti mereka dekat satu sama lain berarti lebih cenderung serupa. Sekarang kami ingin nilai numerik sehingga memberikan angka yang lebih tinggi jika mereka mirip. Jadi kita bisa membalikkan nilai jarak. Tetapi bagaimana jika kita memiliki jarak adalah 0 itu sebabnya kita menambahkan 1 dalam penyebut. jadi skor kesamaan untuk item 1 dan 2 adalah 1 / (1 + 4) = 0,2 dan untuk item1 dan item 3 adalah 1 / (1 + 0) = 0
user10009133
Mungkin Anda berbicara tentang semacam ukuran jarak tetapi jarak Euclidean mengikuti rumus khusus mengenai ruang vektor.
Michael R. Chernick
1/1+d(hal1,hal2)