0% found this document useful (0 votes)
445 views34 pages

03 Similarity Dissimilarity

This document discusses similarity and dissimilarity measures in data mining. It explains that similarity and dissimilarity determine how similar or different two data objects are compared to each other. Various measures are used to calculate similarity and dissimilarity for different data types, including nominal, binary, numeric, and ordinal attributes. Formulas are provided for calculating dissimilarity between objects based on the number of common and differing attribute values. The concepts of a data matrix and dissimilarity matrix are also introduced. Examples are given to demonstrate calculating dissimilarity values between objects in sample datasets.

Uploaded by

Ku Ha Ku
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
445 views34 pages

03 Similarity Dissimilarity

This document discusses similarity and dissimilarity measures in data mining. It explains that similarity and dissimilarity determine how similar or different two data objects are compared to each other. Various measures are used to calculate similarity and dissimilarity for different data types, including nominal, binary, numeric, and ordinal attributes. Formulas are provided for calculating dissimilarity between objects based on the number of common and differing attribute values. The concepts of a data matrix and dissimilarity matrix are also introduced. Examples are given to demonstrate calculating dissimilarity values between objects in sample datasets.

Uploaded by

Ku Ha Ku
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 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