Membuat Pengukuran Kesamaan Manual

Untuk menghitung kesamaan antara dua contoh, Anda harus menggabungkan semua data fitur untuk kedua contoh tersebut menjadi satu nilai numerik.

Misalnya, pertimbangkan set data sepatu dengan hanya satu fitur: ukuran sepatu. Anda dapat mengukur seberapa mirip dua sepatu yang sama dengan menghitung perbedaan di antara kedua ukuran. Semakin kecil perbedaan numerik antar-ukuran, semakin besar kemiripan antara sepatu. Pengukuran kesamaan yang dilakukan secara manual ini disebut ukuran kesamaan manual.

Bagaimana jika Anda ingin menemukan kesamaan antara sepatu dengan menggunakan ukuran dan warna? Warna adalah data kategorik, dan lebih sulit digabungkan dengan data ukuran numerik. Kita akan melihat bahwa saat data menjadi lebih kompleks, membuat ukuran kesamaan manual menjadi lebih sulit. Jika data menjadi cukup kompleks, Anda tidak akan dapat membuat pengukuran manual. Saat itulah Anda beralih ke ukuran kesamaan yang diawasi, tempat model machine learning yang diawasi menghitung kemiripan.

Kami akan membiarkan langkah kemiripan yang diawasi untuk nanti dan berfokus pada pengukuran manual di sini. Untuk saat ini, ingatlah bahwa Anda beralih ke tindakan kesamaan yang diawasi saat mengalami masalah dalam membuat ukuran kesamaan manual.

Untuk memahami cara kerja pengukuran kesamaan manual, mari kita lihat contoh sepatu. Misalnya, model memiliki dua fitur: ukuran sepatu dan data harga sepatu. Karena kedua fitur tersebut bersifat numerik, Anda dapat menggabungkannya menjadi satu angka yang mewakili kemiripan sebagai berikut.

  • Ukuran (s): Ukuran sepatu mungkin membentuk distribusi Gaussian. Konfirmasikan hal ini. Kemudian, normalkan data.
  • Harga (p): Data mungkin adalah distribusi Poisson. Konfirmasikan hal ini. Jika Anda memiliki data yang cukup, konversikan data menjadi kuantil dan skalakan ke \([0,1]\).
  • Gabungkan data dengan menggunakan error kuadrat rata-rata kuadrat (RMSE). Di sini, serupa dengan \(\sqrt{\frac{s^2+p^2}{2}}\).

Untuk contoh yang sederhana, mari kita hitung kesamaan untuk dua sepatu dengan ukuran AS 8 dan 11, serta harga 120 dan 150. Karena kita tidak memiliki cukup data untuk memahami distribusi, kita akan menskalakan data tanpa menormalisasi atau menggunakan kuantil.

TindakanMetode
Skalakan ukuran. Asumsikan ukuran sepatu maksimum yang memungkinkan sebesar 20. Bagi 8 dan 11 dengan ukuran maksimum 20 untuk mendapatkan 0,4 dan 0,55.
Skalakan harga. Bagi 120 dan 150 dengan harga maksimum 150 untuk mendapatkan 0,8 dan 1.
Cari tahu perbedaan ukurannya. \(0.55 - 0.4 = 0.15\)
Cari tahu perbedaan harga. \(1 - 0.8 = 0.2\)
Temukan RMSE. \(\sqrt{\frac{0.2^2+0.15^2}{2}} = 0.17\)

Secara intuitif, kemiripan yang diukur akan meningkat saat data fitur menjadi serupa. Sebaliknya, kesamaan yang Anda ukur sebenarnya akan berkurang. Buat kesamaan terukur mengikuti intuisi Anda dengan menguranginya dengan 1.

\[\text{Similarity} = 1 - 0.17 = 0.83\]

Secara umum, Anda dapat menyiapkan data numerik seperti yang dijelaskan dalam Menyiapkan data, lalu menggabungkan data tersebut menggunakan jarak Euclidean.

Bagaimana jika Anda memiliki data kategoris? Data kategoris dapat berupa:

  • Bernilai tunggal (univalen), seperti warna mobil ("putih" atau "biru", tetapi tidak pernah keduanya)
  • Multinilai (multivalen), seperti genre film (dapat berupa "action" dan "comedy" secara bersamaan, atau hanya "action")

Jika data seragam, nilainya adalah 1; jika tidak, nilainya 0. Data multivalen lebih sulit ditangani. Misalnya, genre film dapat menjadi tantangan untuk dikerjakan. Untuk menangani masalah ini, anggaplah film diberi genre dari sekumpulan genre yang tetap. Hitung kesamaan menggunakan rasio nilai umum, yang disebut kemiripan Jaccard.

Contoh:

  • [“komedi”,”tindakan”] dan [“komedi”,”tindakan”] = 1
  • [“komedi”,”tindakan”] dan [“tindakan”] = 1⁄2
  • [“komedi”,”tindakan”] dan [“tindakan”, "drama"] = 1⁄3
  • [“komedi”,”tindakan”] dan [“non-fiksi”,”biografi”] = 0

Tabel berikut memberikan beberapa contoh tentang cara menangani data kategoris.

Contoh
Kode pos Kode pos yang mewakili area yang berdekatan satu sama lain harus memiliki kemiripan yang lebih tinggi. Untuk mengenkode info yang diperlukan untuk menghitung kesamaan ini secara akurat, Anda dapat mengonversi kode pos menjadi lintang dan bujur. Untuk sepasang kode pos, hitung perbedaan antara lintang dan bujurnya secara terpisah. Kemudian, tambahkan selisihnya untuk mendapatkan satu nilai numerik.
Warna Misalkan Anda memiliki data warna sebagai teks. Mengonversi nilai tekstual menjadi nilai RGB numerik. Sekarang Anda dapat menemukan perbedaan nilai merah, hijau, dan biru untuk dua warna, dan menggabungkan perbedaan tersebut ke dalam nilai numerik menggunakan jarak Euclidean.

Secara umum, ukuran kesamaan Anda harus berhubungan langsung dengan kesamaan yang sebenarnya. Jika tidak, metrik tidak akan mengenkode informasi yang diperlukan. Contoh sebelumnya mengonversi kode pos menjadi lintang dan bujur karena kode pos saja tidak mengenkode informasi yang diperlukan.

Sebelum membuat pengukuran kesamaan, proses data Anda dengan cermat. Meskipun contoh pada halaman ini mengandalkan set data yang kecil dan sederhana, sebagian besar set data dunia nyata jauh lebih besar dan jauh lebih kompleks. Ingatlah bahwa kuantil adalah pilihan default yang bagus untuk memproses data numerik.