Sepertinya kesamaan cosinus dari dua fitur hanyalah produk titik mereka diskalakan oleh produk besarnya mereka. Kapan kesamaan cosinus membuat metrik jarak yang lebih baik daripada produk titik? Apakah produk titik dan persamaan cosinus memiliki kekuatan atau kelemahan yang berbeda dalam situasi yang berbeda?
classification
tawaran
sumber
sumber
Jawaban:
Berpikir secara geometris. Kesamaan cosine hanya peduli tentang perbedaan sudut, sedangkan produk titik peduli tentang sudut dan besarnya. Jika Anda menormalkan data Anda untuk memiliki besaran yang sama, keduanya tidak dapat dibedakan. Kadang-kadang diinginkan untuk mengabaikan besarnya, maka kesamaan cosinus bagus, tetapi jika besarnya berperan, titik produk akan lebih baik sebagai ukuran kesamaan. Perhatikan bahwa keduanya tidak merupakan "metrik jarak".
sumber
Anda benar, persamaan cosinus memiliki banyak kesamaan dengan titik produk vektor. Memang, itu adalah produk titik, diskalakan oleh besarnya. Dan karena penskalaan itu dinormalisasi antara 0 dan 1. CS lebih disukai karena memperhitungkan variabilitas data dan frekuensi relatif fitur. Di sisi lain, produk dot sederhana sedikit "lebih murah" (dalam hal kompleksitas dan implementasi).
sumber
Saya ingin menambahkan satu dimensi lagi ke jawaban yang diberikan di atas. Biasanya kami menggunakan kesamaan cosinus dengan teks besar, karena menggunakan matriks jarak pada paragraf data tidak dianjurkan. Dan juga jika Anda ingin cluster Anda luas, Anda cenderung memilih cosine similarity karena ia menangkap kesamaan secara keseluruhan.
Misalnya jika Anda memiliki teks yang panjangnya dua atau tiga kata maksimal saya merasa menggunakan cosine similarity tidak mencapai ketepatan seperti yang dicapai oleh metrik jarak.
sumber
Ada perbandingan yang sangat baik dari metrik kesamaan kesamaan berbasis-produk bersama di sini .
Secara khusus, Kesamaan Cosine dinormalisasi untuk berada di dalam [0,1], tidak seperti produk titik yang dapat berupa bilangan real, tetapi, seperti yang dikatakan semua orang, yang akan perlu mengabaikan besarnya vektor. Secara pribadi, saya pikir itu hal yang baik. Saya menganggap besarnya sebagai struktur internal (dalam-vektor), dan sudut antara vektor sebagai struktur eksternal (antara vektor). Mereka adalah hal-hal yang berbeda dan (menurut saya) seringkali paling baik dianalisis secara terpisah. Saya tidak bisa membayangkan situasi di mana saya lebih suka menghitung produk dalam daripada menghitung persamaan cosinus dan hanya membandingkan besarnya sesudahnya.
sumber
Secara visual, semua data Anda hidup di unit sphere. Menggunakan produk titik sebagai jarak akan memberi Anda jarak chordal, tetapi jika Anda menggunakan jarak cosinus ini, itu sesuai dengan panjang jalur antara dua titik di bola. Itu berarti, jika Anda ingin rata-rata dari dua titik, Anda harus mengambil titik di-di antara jalur ini (geodesik) daripada titik tengah yang diperoleh dari 'rata-rata aritmatika / titik produk / geometri euclidean' karena titik ini tidak tidak hidup di bola (karenanya pada dasarnya bukan objek yang sama)!
sumber
Seperti yang telah ditunjukkan orang lain, ini bukan "metrik" jarak, karena mereka tidak memenuhi kriteria metrik. Katakan sebaliknya "mengukur jarak".
Lagi pula, apa yang Anda ukur dan mengapa? Informasi itu akan membantu kami memberikan jawaban yang lebih berguna untuk situasi Anda.
sumber