Friday, October 18, 2019

Buku Belajar Machine Learning dengan Python- Menghitung Tingkat Kemiripan dengan Cosine Similarity


Seiring dengan meningkatnya traffic dan kemudahan dalam mengelola content, kami mengucapkan banyak terima kasih kepada para pembaca setia pada blog www.softscients.web.id

Per 19 Maret 2020, kami sedang melakukan migrasi ke domain dan hosting yang lebih baik yaitu
Semoga dengan alamat domain dan hosting terbaru akan semakin memudahkan para pembaca dalam mencari materi/content. Migrasi dilakukan secara bertahap yang membutuhkan waktu yang cukup lama jadi jangan kuatir selama migrasi akan dilakukan secara hati-hati untuk memimalkan broken link


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


Kode:
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


Kode: 
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

Kode:
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)


ref:
https://www.oreilly.com/library/view/statistics-for-machine/9781788295758/eb9cd609-e44a-40a2-9c3a-f16fc4f5289a.xhtml

No comments:

Post a Comment