Menghitung Tingkat Kemiripan dengan Cosine Similarity
Sinopsis
Salah satu cara untuk menghitung jarak/tingkat kemiripan selain eucleid distance yaitu cosine similarity. Cosine similarity adalah metriks yang digunakan untuk menentukan seberapa mirip 2 data. Secara matematis, ia mengukur sudut cos antara dua vektor yang diproyeksikan dalam ruang multi-dimensi.
Rumus umumnya Cosine Similarity
Dengan ∙ adalah operasi dot array, agar mudah, penulis berikan sebuah contoh sederhana untuk menghitung jarak data a dan b seperti berikut Bila kalian menggunakan matlab
clc;clear all;close all; a = [1,2,3]; b = [1,1,4]; pembilang = dot(a,b) penyebut = norm(a)*norm(b) hasil = pembilang/penyebut
hasil
a = 1 2 3 b = 1 1 4 pembilang = 15 penyebut = 15.8745 hasil = 0.9449
Sehingga hasil keluaran dari cosine similarity berupa array yang berisi angka hasil nilai cosine similarity, yang mempunyai nilai interpretasi cos(θ) = [−1, 1]. Semakin besar nilai yang dihasilkan atau mendekati angka satu, maka vektor tersebut mempunyai kemiripan, dan sebaliknya. Bila kamu menggunakan python+numpy, gunakan kode berikut
import numpy as np # vectors a = np.array([1,2,3]) b = np.array([1,1,4]) # manually compute cosine similarity dot = np.dot(a, b) norma = np.linalg.norm(a) normb = np.linalg.norm(b) cos = dot / (norma * normb)
Atau menggunakan library sklearn seperti berikut
import numpy as np from sklearn.metrics.pairwise import cosine_similarity # vectors a = np.array([1,2,3]) b = np.array([1,1,4]) # use library, operates on sets of vectors aa = a.reshape(1,3) ba = b.reshape(1,3) cos_lib = cosine_similarity(aa, ba)