Ukuran Kemiripan dan Ketidakmiripan Antar Data

By | February 19, 2022
1,030 Views

Ukuran Kemiripan dan Ketidakmiripan Antar Data – Mengukur kemiripan dan ketidakmiripan antar data banyak digunakan untuk analisis data, salah satunya adalam sistem rekomendasi. Nilai Kemiripan (Similarity) umumnya berada pada rentang 0 (no similarity) dan 1 (complete similarity) dan Bernilai lebih tinggi jika obyek semakin mirip. Sedangkan Ketidakmiripan (Dissimilarity) umumnya berada pada rentang 0 (obyek mirip) dan ~ (obyek berbeda) bernilai lebih rendah jika data semakin tidak mirip.

Data

Untuk mengukur data tersebut mirip atau tidak? kita harus membedah terlebih mengenai

  • Data: kumpulan obyek beserta atributnya.
  • Atribut (fitur, variabel, atau field): properti atau karakteristik yang melekat pada suatu obyek.
  • Kumpulan sejumlah atribut mendeskripsikan suatu obyek (entitas atau record).

Lebih jelasnya kalian bisa melihat tabel berikut

Tipe Atribut

Tipe atribut dibagi menjadi 4 yaitu

  1. Nominal: Data kualitatif yang tidak memiliki urutan. Contoh: warna rambut, agama, nama, kode pos
  2. Ordinal: Data kualitatif yang dapat diurutkan. Contoh: rasa makanan dalam skala 1-10, peringkat di kelas, tinggi badan dalam {tinggi, sedang,rendah}, nomor rumah.
  3. Interval: Data kuantitatif (ukuran) dimana perbedaan nilai antara dua data sangat berarti. Contoh: tanggal di kalender, temperatur dalam Celcius atau Fahrenheit.
  4. Ratio: Data kuantitatif dimana perbedaan nilai data dan perbandingannya sangat berarti. Contoh: temperatur dalam Kelvin (2K = 2*1K), panjang suatu benda, hasil perhitungan

Metode Pengukuran Jarak

Untuk metode pengukuran jarak sebagai berikut

Contoh kasus mengukur dissimiliarity

Sekarang kita akan mencoba menghitung dissimiliarity menggunakan R dengan beragam jenis tipe atribut

Dataset Dissimialirity

See also  Cara menghitung term frequency dan inverse document frequency
Generated by wpDataTables

Kalian bisa perhatikan, saya sengaja mengisi nilai record 1 dan 8 sama, sehingga nanti dipastikan nilai nya akan rendah karena mirip untuk nilainya tinggi karena tidak mirip. Pada contoh diatas, untuk mengukur dissimilarity perlu mengubah kolom berikut menjadi kategorikal

  • jenis_kelamin
  • status
  • punya_anak

Kita akan baca saja

library(openxlsx)

dat = openxlsx::read.xlsx(‘dataset dissimialirity.xlsx’)

lanjut dengan mengubah kolom ke kategorikal

dat2 = dat[,2:7] #ambil kolom ke 2 sampai 7
dat2$jenis_kelamin = as.factor(dat2$jenis_kelamin)
dat2$status = as.factor(dat2$status)
dat2$punya_anak = as.factor(dat2$punya_anak)

Kita butuh package dari https://www.rdocumentation.org/packages/cluster/versions/2.1.2/topics/daisy untuk menghitung dissimiliarity

library(cluster)

gower.dissimilarity.mtrx <- daisy(dat2, metric = c(“gower”))

hasil = as.matrix(gower.dissimilarity.mtrx)

hasilnya yaitu

> gower.dissimilarity.mtrx
Dissimilarities :
             1            2            3            4            5            6            7
2 0.3590238064                                                                              
3 0.5040731830 0.5297636560                                                                 
4 0.3178741800 0.3138768991 0.4886140296                                                    
5 0.3353947777 0.5236290287 0.6728012940 0.4824794023                                       
6 0.5262298473 0.3338727077 0.8636363636 0.6477496067 0.1908350697                          
7 0.5969785634 0.4560023698 0.7404279529 0.7481860768 0.4323733411 0.2898750774             
8 0.0005393743 0.3595631807 0.5035338086 0.3184135543 0.3359341520 0.5267692217 0.5964391891

Metric :  mixed ;  Types = I, N, N, I, N, I 
Number of objects : 8