Aplikasi dan perbedaan untuk kesamaan Jaccard dan Kesamaan Cosine


27

Kesamaan Jaccard dan kesamaan cosinus adalah dua pengukuran yang sangat umum sambil membandingkan kesamaan item. Namun, saya tidak begitu jelas dalam situasi apa yang mana yang lebih disukai daripada yang lain.

Dapatkah seseorang membantu memperjelas perbedaan dari dua pengukuran ini (perbedaan dalam konsep atau prinsip, bukan definisi atau perhitungan) dan penerapannya yang lebih disukai?

Jawaban:


19

Kesamaan Jaccard diberikan oleh sij=pp+q+r

dimana,

p = # atribut positif untuk kedua objek
q = # atribut 1 untuk i dan 0 untuk j
r = # atribut 0 untuk i dan 1 untuk j

Sedangkan, cosine similarity = mana A dan B adalah vektor objek.ABAB

Sederhananya, dalam kesamaan cosinus, jumlah atribut umum dibagi dengan jumlah total atribut yang mungkin. Sedangkan dalam Jaccard Similarity, jumlah atribut umum dibagi dengan jumlah atribut yang ada di setidaknya satu dari dua objek.

Dan ada banyak ukuran kesamaan lainnya, masing-masing dengan eksentrisitasnya sendiri. Saat memutuskan mana yang akan digunakan, coba pikirkan beberapa kasus representatif dan cari tahu indeks mana yang akan memberikan hasil yang paling bermanfaat untuk mencapai tujuan Anda.

Indeks Cosine dapat digunakan untuk mengidentifikasi plagiarisme, tetapi tidak akan menjadi indeks yang baik untuk mengidentifikasi situs-situs mirror di internet. Sedangkan indeks Jaccard, akan menjadi indeks yang baik untuk mengidentifikasi situs cermin, tetapi tidak begitu hebat dalam menangkap copy paste plagiarisme (dalam dokumen yang lebih besar).

Saat menerapkan indeks ini, Anda harus memikirkan masalah Anda secara menyeluruh dan mencari cara untuk mendefinisikan kesamaan. Setelah Anda memiliki definisi dalam pikiran, Anda dapat berbelanja indeks.

Sunting: Sebelumnya, saya memiliki contoh yang disertakan dalam jawaban ini, yang akhirnya salah. Berkat beberapa pengguna yang telah menunjukkan hal itu, saya telah menghapus contoh yang salah.


2
dapatkah Anda jelaskan mengapa indeks Cosine lebih baik untuk mengidentifikasi plagiarisme dan tidak baik untuk mengidentifikasi situs-situs cermin?
dharm0us

Saya merasa beberapa bagian dari jawaban ini tidak intuitif. "Misalnya, jika Anda memiliki dua objek baik dengan 10 atribut, dari kemungkinan 100 atribut. Selanjutnya mereka memiliki semua 10 atribut yang sama. Dalam hal ini, indeks Jaccard akan menjadi 1 dan indeks cosinus akan menjadi 0,001." Ini akan menerjemahkan ke sesuatu seperti cosine_similarity(10*[1]+90*[0], 10*[1]+90*[0]). Tentu saja, persamaan cosinus juga akan menjadi 1 di sini, karena keduanya mengukur mengabaikan elemen-elemen yang nol di kedua vektor.
fsociety

1
Jawaban ini salah tentang kesamaan cosinus, harap pertimbangkan jawaban pengguna18596
Robin

"Sederhananya, dalam kesamaan cosinus, jumlah atribut umum dibagi dengan jumlah total atribut yang mungkin" -> ini sepenuhnya salah. Notasi mendefinisikan vektor titik produk dan norma.
Sean Owen

23

Saya tidak dapat berkomentar karena saya tidak memiliki status apa pun, tetapi jawaban yang diperiksa salah, dan juga tidak menjawab pertanyaan. ∥A∥ berarti norma L2 dari A, yaitu panjang vektor dalam ruang Euclidean, bukan dimensi vektor A. Dengan kata lain, Anda tidak menghitung 0 bit, Anda menjumlahkan 1 bit dan mengambil akar pangkat dua. Jadi contoh dari 10 atribut dari vektor 100-panjang juga salah. Maaf saya tidak memiliki jawaban yang sebenarnya tentang kapan Anda harus menggunakan metrik mana, tapi saya tidak bisa membiarkan jawaban yang salah tidak tertandingi.


2
Anda sepenuhnya benar. Sayang sekali bahwa begitu banyak orang memberikan jawaban yang salah. Kesamaan cosine, seperti yang dijelaskan dalam artikel wikipedia, tidak memperhitungkan 0 bit. en.wikipedia.org/wiki/Cosine_similarity
neelshiv

11

Kesamaan Jaccard digunakan untuk dua jenis kasus biner:

  1. Simetris, di mana 1 dan 0 memiliki kepentingan yang sama (jenis kelamin, status perkawinan, dll)
  2. Asimetris, di mana 1 dan 0 memiliki tingkat kepentingan yang berbeda (pengujian positif untuk suatu penyakit)

Kesamaan cosine biasanya digunakan dalam konteks penambangan teks untuk membandingkan dokumen atau email. Jika kesamaan cosinus antara dua vektor istilah dokumen lebih tinggi, maka kedua dokumen memiliki jumlah kata yang lebih banyak

Perbedaan lainnya adalah Koefisien 1 - Jaccard dapat digunakan sebagai perbedaan atau ukuran jarak, sedangkan kesamaan cosinus tidak memiliki konstruksi seperti itu. Hal serupa adalah jarak Tonimoto, yang digunakan dalam taksonomi.


Mengapa hanya Jaccard yang dapat digunakan sebagai ukuran perbedaan? Pemahaman saya cosineadalah ukuran yang berbeda tetapi tidak valid.
javadba

3

Seperti disebutkan di atas, jawaban yang diperiksa salah.

Dimana dan adalah biner vektor, mereka dapat diartikan sebagai set indeks dengan nilai 1. Oleh karena itu Mari mempertimbangkan set dan .abAB

Kesamaan Jaccard kemudian diberikan oleh

J(A,B)=|AB||AB|=|AB||AB|+|AB|+|BA|

Kesamaan cosine kemudian diberikan oleh

C(A,B)=|AB||A||B|=|AB|(|AB|+|AB|)(|AB|+|BA|)

Beberapa perbandingan:

  • Pembilangnya sama.
  • Penyebut tumbuh aritmatika dengan ukurandandalam jaccard, tetapi secara geometris dalam kosinus.|A||B|
  • Penyebut cosinus hanya bergantung pada jumlah item dalamdan jumlah item di. Itu tidak tergantung pada persimpangan mereka.|A||B|

Saya belum memiliki intuisi yang jelas tentang di mana seseorang harus lebih disukai daripada yang lain, kecuali bahwa, sebagaimana dicatat Vikram Venkat, 1 - Jaccard sesuai dengan metrik yang benar, tidak seperti kosinus; dan cosinus secara alami meluas ke vektor bernilai nyata.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.