Download as pdf or txt
Download as pdf or txt
You are on page 1of 34

Similarity-Dissimilarity

M. Tanzil Furqon, S.Kom., MCompSc.


Why Similarity & Dissimilarity?
• Teknik dalam Data Mining menggunakan similarity &
dissimilarity
• Similarity/dissimilarity à seberapa mirip/tidak mirip
suatu data dibanding data yang lain
• Contoh: cluster merupakan kumpulan dari data yang
saling mirip satu dengan yang lainnya.
• Pengukuran similarity/dissimilarity disebut juga
proximity measure
• Obyek i dan j dikatakan tidak mirip jika memiliki
similarity measure mendekati 0, dan sebaliknya
dikatakan mirip jika nilai similarity measure-nya >> 0
• Dissimilarity measure à kebalikan dari simmilarity
measure
Similarity
• Similarity between two objects is a numerical
measure of the degree to which the two objects
are alike.
• Consequently, similarities are higher for pairs of
objects that are more alike.
• Similarities are usually non-negative and are
often between 0 (no similarity) and 1 (complete
similarity).
Dissimilarity
• Dissimilarity between two objects is a numerical
measure of the degree to which the two objects are
different.
• Dissimilarities are lower for more similar pairs of
objects.
• Frequently, the term distance is used as a synonym
for dissimilarity, although, as we shall see, distance
is often used to refer to a special class of
dissimilarities.
• Dissimilarities sometimes fall in the interval [0,1],
but it is also common for them to range from 0 to ∞
Data Matrix vs Dissimilarity Matrix
• Jika diketahui ada sebanyak n obyek yang memiliki sejumlah
p atribut/fitur, maka obyek x1 = (x11, x12, …, x1p), x2 = (x21, x22,
…, x2p), dst, dimana xij adalah nilai dari obyek xi/obyek i pada
atribut ke-j.
• Data matrix (object-by-attribute structure): Matriks yang
berisi n data objects dalam bentuk tabel relasional, atau n-by-
p matrix (n objects x p attributes):

⎡ x ... x ⎤
⎢ 11 1p ⎥
⎢ ... ... ... ⎥
⎢ ⎥
⎢ xn1 ... xnp ⎥
⎣ ⎦
Data Matrix vs Dissimilarity Matrix
(cont)
• Dissimilarity matrix (object-by-object structure): Matriks
yang berisi kumpulan dari nilai dissimilarity sepasang obyek
sebanyak n obyek, disebut juga n-by-n table:
⎡ 0 ⎤
⎢ ⎥
⎢ d(2,1) 0 ⎥
⎢ d(3,1) d(3,2) 0 ⎥
⎢ ⎥
⎢ ! ! ! ⎥
⎢ d(n,1) d(n,2) ! ! 0 ⎥
⎣ ⎦
dimana d(i,j) adalah nilai dissimilarity atau jarak antar obyek i
dan j.
Data Matrix vs Dissimilarity Matrix
(cont)
• Nilai similarity dapat dinyatakan dengan fungsi
dissimilarity.
• Untuk data nominal:
sim(i, j) = 1− d (i, j)
dimana sim(i,j) adalah similarity antara obyek i dan j.
• Data Matrix à 2 entitas (two-mode matrix), baris
(obyek) dan kolom (atribut)
• Dissimilarity Matrix à 1 entitas (one-mode matrix).
• Clustering, nearest-neighbour à sering menggunakan
dissimilarity matrix
• Data matrix dapat dikonversi ke dissimilarity matrix
Proximity Measure Atribut Nominal
• Atribut nominal dapat memiliki dua atau lebih
nilai/state. Contoh: warna
• Nilai/state dalam atribut nominal memiliki derajat yang
sama.
• Dissimilarity antara obyek i dan j dapat dihitung
menggunakan rumus:
p−m
d(i, j) =
p
dimana m adalah jumlah nilai/state yang sama antara i
dan j, sedangkan p adalah jumlah atribut dalam dataset.
• Bobot dapat ditambahkan untuk menaikkan
pengaruh/efek dari m.
Dataset-1
• Dataset dengan tipe nilai atribut campuran:

Back
Contoh kasus
• Menggunakan data pada Dataset-1 (hanya atribut
identifier dan test-1 yg digunakan), maka dapat
dihitung dissimilarity matrix sbb:
⎡ 0 ⎤
⎢ ⎥ ⎡ 0 ⎤
⎢ d(2,1) 0 ⎥ ⎢ ⎥
⎢ d(3,1) d(3,2) 0 ⎥ ⎢ 1 0 ⎥
⎢ ⎥ ⎢ ⎥
⎢ ! ! ! ⎥ 1 1 0
⎢ ⎥
⎢ d(n,1) d(n,2) ! ! 0 ⎥ ⎣ 0 1 1 0 ⎦
⎣ ⎦

1− 0 1−1
d(2,1) = =1 d(4,1) = =0
1 1
back
Proximity Measure Atribut Biner
• Atribut biner à 0 (absent) dan 1 (present)
• Jika seluruh atribut data dalam dataset memiliki bobot
yang sama, maka dapat digunakan Tabel Contigency:

dimana q adalah jumlah data obyek i dan j yang


mempunyai nilai atribut 1, r adalah jumlah data obyek i
bernilai 1 sedang obyek j bernilai 0, dst.
back
Proximity Measure Atribut Biner (cont)
• Maka dissimilarity antara i dan j untuk data
atribut simetris dapat dihitung dengan rumus:
r+s
d(i, j) =
q+r+s+t
• Untuk data atribut asimetris:
r+s q
d(i, j) = atau sim(i, j) = 1− d(i, j) =
q+r+s q+r+s
• Simetris à semua nilai sama derajatnya
• Asimetris à nilai 1 dan 0 memiliki derajat
berbeda
back
Dataset-2
• Data pasien yang mempunyai atribut name,
gender, fever, cough, test-1, test-2, test-3, dan
test-4, dimana name sebagai identifier, atribut
gender adalah atribut simetris sedang atribut
lainnya adalah atribut asimetris.
Contoh kasus
• Menggunakan data pada Dataset-2, maka nilai Y (yes)
dan P (positif) di set 1, dan nilai N (no atau negatif) di set
0.
• Maka dapat dihitung jarak antar pasien dalam dataset:
1+1 0 +1
d(Jack, Jim) = = 0,67 d(Jack, Mary) = = 0,33
1+1+1 2 + 0 +1
1+ 2
d(Jim, Mary) = = 0,75
1+1+ 2
• Kesimpulan: Jack dan Mary memiliki kemiripan jenis
penyakit (nilai similarity-nya tinggi)
Tabel Contigency Lihat rumus
Dissimilarity Data Numerik
• Mayoritas metode yang digunakan: Euclidean,
Manhattan, Minkowski, Supremum.
• Rumus Euclidean Distance:
d(i, j) = (xi1 − x j1 ) 2 + (xi 2 − x j 2 ) 2 + ... + (xip − x jp ) 2
• Rumus Manhattan Distance:
d(i, j) = xi1 − x j1 + xi 2 − x j 2 + ... + xip − x jp
• Rumus Minkowski Distance:
h h h
d(i, j) = h xi1 − x j1 + xi 2 − x j 2 + ... + xip − x jp

dimana h adalah jumlah atribut, h bilangan real dan h>1.


Dissimilarity Data Numerik (cont)
• Rumus Supremum Distance:
1
⎛ p ⎞
h h
p
d(i, j) = lim ⎜⎜ ∑ xif − x jf ⎟⎟ = max xif − x jf
h→∞ f
⎝ f =1 ⎠
• Supremum Distance menghitung jarak maksimum
diantara jarak masing-masing nilai atribut

• Rumus Weighted Euclidean Distance:


2 2 2
d(i, j) = w1 xi1 − x j1 + w2 xi 2 − x j 2 + ... + wm xip − x jp
Contoh kasus
• Dua buah titik x1=(1,2) dan x2=(3,5). Maka jarak
antara dua titik dapat dihitung:
Proximity Measure Atribut Ordinal
• Nilai atribut ordinal mempunyai derajat yang berbeda-beda à
dapat dirangking
• Contoh: atribut ukuran (small, medium, large)
• Jika M adalah jumlah jenis nilai/state pada atribut ordinal, maka
data diurutkan 1,…,Mf, dimana f merupakan nilai atribut ordinal.
• Langkah-langkah menghitung dissimilarity:
1. Nilai atribut f untuk obyek ke-i adalah xif, dan f mempunyai
sejumlah Mf urutan state yang merepresentasikan
urutan/rangking 1,…,Mf. Ganti xif dengan urutan rankingnya,
2. Normalisasi range tiap atribut ke dalam range [0,0 , 1,0] sehingga
mempunyai bobot yang sama. Ganti nilai rif dengan zif
menggunakan rumus Normalisasi: rif −1
zif = rif ∈ {1,..., M f }
M f −1
3. Dissimilarity kemudian dapat dihitung menggunakan rumus
perhitungan jarak untuk data numerik.
Contoh kasus
• Menggunakan data pada Dataset-1 (hanya atribut identifier
dan test-2 yang digunakan), maka dapat dihitung
dissimilarity matrix sbb:
⎡ 0 ⎤ ⎡ ⎤
⎢ ⎥ 0
⎢ d(2,1) 0 ⎥ ⎢ ⎥
⎢ d(3,1) d(3,2) 0 ⎥ ⎢ 1,0 0 ⎥
⎢ ⎥ ⎢ 0,5 0,5 0 ⎥
⎢ ! ! ! ⎥ ⎢ ⎥
⎢ d(n,1) d(n,2) ! ! 0 ⎥ ⎢⎣ 0 1,0 0,5 0 ⎥⎦
⎣ ⎦
• Atribut test-2 mempunyai 3 state à fair, good, excellent,
maka Mf = 3

back
Contoh kasus (cont)
• Langkah 1: Ganti tiap nilai dengan nilai rankingnya,
fair à1, goodà2, excellentà3
• Langkah 2: Normalisasi data ke range [0,0 , 1,0]
3−1 1−1 2 −1
z1 f = = 1 z2 f = =0 z3 f = = 0,5
3−1 3−1 3−1
• Langkah 3: Hitung dissimilarity matrix
menggunakan rumus jarak Euclidean
⎡ 0 ⎤
⎢ ⎥
⎢ 1,0 0 ⎥
⎢ 0,5 0,5 0 ⎥
⎢ ⎥
⎢⎣ 0 1,0 0,5 0 ⎥⎦
Proximity Measure Atribut Campuran
• Data riil à atribut campuran
• Perhitungan nilai atribut campuran à cara terpisah per
masing-masing atribut (hasilnya harus kompatibel), dan cara
dihitung semua atribut sekaligus
• Misal dataset terdiri dari p jumlah atribut bertipe campuran,
maka dissimilarity antara obyek i dan j adalah:
p
∑ δij( f ) dij( f )
f =1
d(i, j) = p
∑ δij( f )
f =1
dimana δij(f)=0 jika (1) xif atau xjf missing, atau
(2) xif = xjf = 0 dan atribut f biner asimetris
selain itu δij(f)=1
Proximity Measure Atribut Campuran
(cont)
• Sedangkan untuk perhitungan dissimilarity
antara obyek i dan j (dij(f)) dihitung berdasarkan
tipe atributnya:
xif − x jf
▫ Jika f numerik: d (f)
ij
=
max h xhf − min h xhf

▫ Jika f nominal atau biner: dij( f ) = 0 jika xif = xjf selain itu
dij( f ) = 1
▫ Jika f ordinal: hitung rif dan zif
rif −1
zif =
M f −1
Contoh kasus
• Menggunakan data pada Dataset-1 (seluruh
atribut digunakan) maka dapat dihitung
dissimilarity matrix sbb:
▫ Untuk atribut test-1 dan test-2 telah dihitung
sebelumnya
▫ Untuk aribut test-3 (numerik) maka nilai dij(3):

(3)
22 − 45 (3)
64 − 45
d 21
= = 0,55 d 31
= = 0,45
64 − 22 64 − 22
dengan nilai maxhxh = 64 dan minhxh = 22
Contoh kasus (cont)
• Maka didapatkan dissimilarity matrix untuk atribut
test-3 sbb:
⎡ 0 ⎤
⎢ ⎥
⎢ 0,55 0 ⎥
⎢ 0,45 1,00 0 ⎥
⎢ ⎥
⎢⎣ 0,40 0,14 0,86 0 ⎥⎦

• Maka dapat dihitung dissimilarity matrix untuk


ketiga atribut dengan rumus:
p
∑ δij( f ) dij( f )
f =1
d(i, j) = p
∑ δij( f )
f =1
Contoh kasus (cont)
• Dissimilarity Matrix:

⎡ ⎤ ⎡ 0 ⎤ ⎡ 0 ⎤
0 ⎢ ⎥ ⎢ ⎥
⎢ ⎥
⎢ 1 0 ⎥ ⎢ 1,0 0 ⎥ ⎢ 0,55 0 ⎥
⎢ ⎥ ⎢ 0,5 0,5 0 ⎥ ⎢ 0,45 1,00 0 ⎥
1 1 0 ⎢ ⎥ ⎢ ⎥
⎢ ⎥ 0 1,0 0,5 0 ⎥⎦
⎣ 0 1 1 0 ⎦ ⎢⎣ ⎢⎣ 0,40 0,14 0,86 0 ⎥⎦
Test-1 Test-2 Test-3
Contoh kasus (cont)
• Nilai δij(f)=1 untuk masing-masing atribut:

1(1) +1(0,50) +1(0,45)


d(3,1) = = 0,65
3
• Sehingga menghasilkan matrix dissimilarity:
⎡ 0 ⎤
⎢ ⎥
⎢ 0,85 0 ⎥
⎢ 0,65 0,83 0 ⎥
⎢ ⎥
⎢⎣ 0,13 0,71 0,79 0 ⎥⎦
Cosine Similarity
• Cosine similarity à nonmetric measure
• Digunakan untuk data asimetris, sparse data
(memiliki banyak nilai 0) à vektor term-frequency
(jumlah kata dalam dokumen)
• Aplikasi à information retrieval, text document
clustering, biological taxonomy, gene feature
mapping
• Perhitungan jarak (ex. Euclidean, dll) tidak cocok
untuk data sparse à dua vektor term-frequency
dapat memiliki banyak kesamaan nilai 0, tetapi
tidak mengindikasikan kesamaan antara keduanya
Cosine Similarity (cont)
• Cosine similarity à dapat digunakan untuk
membandingkan dokumen, merangking dokumen
berdasarkan kata yang ada
n
• Rumus: x⋅ y x ⋅ y = ∑ ai bi = a1b1 + a2b2 + ... + an bn
sim(x, y) = i=1
x y
dimana ||x|| adalah nilai Euclidean norm dari vektor x =
(x1, x2,…, xp) à x 2 + x 2 + ... + x 2
1 2 p

• Nilai cosine 0 artinya kedua vektor berada pada 90


derajat satu sama lain dan tidak ada kesamaan.
• Nilai cosine semakin mendekati 1 artinya semakin kecil
sudutnya dan semakin banyak kesamaannya.
Dataset-3
• Data perbandingan antar dokumen berdasarkan
kemunculan kata dalam dokumen
Contoh kasus
• Menggunakan data pada Dataset-3, misal x dan y
adalah dua vektor term-frequency pertama dan
kedua dalam dataset, x = (5,0,3,0,2,0,0,2,0,0), y =
(3,0,2,0,1,1,0,1,0,1), maka seberapa mirip x dan y?
• Dengan menggunakan rumus cosine similarity:
x ⋅ y = 5× 3+ 0 × 0 + 3× 2 + 0 × 0 + 2 ×1+ 0 ×1+ 0 × 0 + 2 ×1+ 0 × 0 + 0 ×1 = 25
x = 52 + 02 + 32 + 02 + 22 + 02 + 02 + 22 + 02 + 02 = 6,48

y = 32 + 02 + 22 + 02 +12 +12 + 02 +12 + 02 +12 = 4,12


sim(x, y) = 0,94
Kenapa Cosine Similarity? Tidak
Euclidean Distance?
• Menggunakan data pada Dataset-3, misal yang
dihitung adalah kemiripan antara Document3
(0,7,0,2,1,0,0,3,0,0) dan Document4
(0,1,0,0,1,2,2,0,3,0).
• Cossine Similarity: 0,0975
• Euclidean Distance: 8,1240

• Selisih cukup jauh à pengaruh nilai 0 (dalam


Cosine Simmilarity sangat berarti)
Tugas-1
Diketahui dua obyek dengan titik (22,1,42,10) dan
(20,0,36,8). Hitung jarak kedua titik tsb
menggunakan:
• Euclidean Distance
• Manhattan Distance
• Minkowski Distance
• Supremum Distance
Tugas-2
• Diketahui dataset dengan 2
dimensi seperti dalam tabel
disamping.
• Diketahui sebuah titik x = (1,4 ,
1,6), urutkan data pada tabel
berdasarkan kemiripannya
dengan titik x menggunakan
Euclidean distance, Manhattan
distance, Supremum distance,
dan Cosine similarity.

You might also like