Sei sulla pagina 1di 32

Similarity-Dissimilarity

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:

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:
Contoh kasus
• Menggunakan data pada Dataset-1 (hanya atribut
identifier dan test-1 yg digunakan), maka dapat
dihitung dissimilarity matrix sbb:
é 0 ù
ê ú
ê 1 0 ú
ê 1 1 0 ú
ê ú
ë 0 1 1 0 û

1- 0 1-1
d(2,1) = =1 d(4,1) = =0
1 1
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.
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 atau sim(i, j) = 1- d(i, j) =
q
d(i, j) =
q+r+s q+r+ s
• Simetris  semua nilai sama derajatnya
• Asimetris  nilai 1 dan 0 memiliki derajat
berbeda
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)
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 + xi2 - 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 =1 ø f

• 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
rif Î {1,...,M f }
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 =
M f -1
1. 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 ù
ê ú
ê 1,0 0 ú
ê 0,5 0,5 0 ú
ê ú
êë 0 1,0 0,5 0 úû
• Atribut test-2 mempunyai 3 state  fair, good, excellent,
maka Mf = 3
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]
1-1 2 -1
z1 f =
3-1
= 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:
å f =1 ij dij
p
d (f) (f)

d(i, j) =
å f =1 ij
p
d (f)

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

22 - 45 64 - 45
d (3)
= = 0,55 d (3)
= = 0,45
21
64 - 22 31
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:
å f =1 ij dij
p
d (f) (f)

d(i, j) =
å f =1 ij
p
d (f)
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, spare 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
x× y x × y = å ai bi = a1b1 + a2b2 +...+ anbn
n
• Rumus:
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 paertama
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
Tugas
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
• 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.

Potrebbero piacerti anche