Seperti yang baru saja ditampilkan, k-means menetapkan titik ke sentroid terdekatnya. Namun, apa yang dimaksud dengan "terdekat"?
Untuk menerapkan k-means ke data fitur, Anda harus menentukan ukuran kemiripan yang menggabungkan semua data fitur menjadi satu nilai numerik, yang disebut ukuran kemiripan manual.
Pertimbangkan set data sepatu. Jika set data tersebut memiliki ukuran sepatu sebagai satu-satunya fiturnya, Anda dapat menentukan kesamaan dua sepatu berdasarkan perbedaan antara ukuran sepatu tersebut. Makin kecil perbedaan numerik antara ukuran, makin besar kemiripan antara sepatu.
Jika set data sepatu tersebut memiliki dua fitur numerik, ukuran dan harga, Anda dapat menggabungkannya menjadi satu angka yang mewakili kesamaan. Pertama, skalakan data sehingga kedua fitur tersebut sebanding:
- Ukuran: Ukuran sepatu mungkin membentuk distribusi Gaussian. Konfirmasi hal ini. Kemudian, normalisasi data.
- Harga (p): Data mungkin merupakan distribusi Poisson. Konfirmasi hal ini. Jika Anda memiliki cukup data, konversikan data ke kuantil dan skalakan ke \([0,1]\).
Selanjutnya, gabungkan kedua fitur tersebut dengan menghitung error akar rataan kuadrat (RMSE). Ukuran kesamaan kasar ini diberikan oleh \(\sqrt{\frac{(s_i - s_j)^2+(p_i - p_j)^2}{2}}\).
Untuk contoh sederhana, hitung kesamaan untuk dua sepatu dengan ukuran Amerika Serikat 8 dan 11, serta harga 120 dan 150. Karena tidak memiliki cukup data untuk memahami distribusi, kita akan menskalakan data tanpa menormalisasi atau menggunakan kuartil.
Tindakan | Metode |
---|---|
Menskalakan ukuran. | Anggap ukuran sepatu maksimum adalah 20. Bagi 8 dan 11 dengan ukuran maksimum 20 untuk mendapatkan 0,4 dan 0,55. |
Menskalakan harga. | Bagi 120 dan 150 dengan harga maksimum 150 untuk mendapatkan 0,8 dan 1. |
Temukan perbedaan ukurannya. | \(0.55 - 0.4 = 0.15\) |
Temukan perbedaan harga. | \(1 - 0.8 = 0.2\) |
Hitung RMSE. | \(\sqrt{\frac{0.2^2+0.15^2}{2}} = 0.17\) |
Secara intuitif, ukuran kesamaan Anda akan meningkat saat data fitur lebih mirip. Sebaliknya, ukuran kesamaan (RMSE) Anda justru menurun. Buat pengukuran kesamaan mengikuti intuisi Anda dengan menguranginya dari 1.
\[\text{Similarity} = 1 - 0.17 = 0.83\]
Secara umum, Anda dapat menyiapkan data numerik seperti yang dijelaskan dalam Menyiapkan data, lalu menggabungkan data menggunakan jarak Euclidean.
Bagaimana jika set data tersebut menyertakan ukuran sepatu dan warna sepatu? Warna adalah data kategoris, yang dibahas dalam Kursus Singkat Machine Learning di Menggunakan data kategoris. Data kategorikal lebih sulit digabungkan dengan data ukuran numerik. Hal ini dapat berupa:
- Bernilai tunggal (univalen), seperti warna mobil ("putih" atau "biru", tetapi tidak pernah kedua-duanya)
- Multinilai (multivalen), seperti genre film (film dapat berupa "action" dan "comedy", atau hanya "action")
Jika data univalen cocok, misalnya dalam kasus dua pasang sepatu biru, kesamaan antara contoh adalah 1. Jika tidak, kemiripan adalah 0.
Data multivalen, seperti genre film, lebih sulit digunakan. Jika ada kumpulan genre film tetap, kesamaan dapat dihitung menggunakan rasio nilai umum, yang disebut kesamaan Jaccard. Contoh penghitungan kemiripan Jaccard:
- [“comedy”,”action”] and [“comedy”,”action”] = 1
- [“comedy”,”action”] dan [“action”] = ½
- [“comedy”,”action”] and [“action”, "drama"] = ⅓
- [“comedy”,”action”] and [“non-fiction”,”biographical”] = 0
Kemiripan Jaccard bukan satu-satunya kemungkinan pengukuran kemiripan manual untuk data kategoris. Dua contoh lainnya:
- Kode pos dapat dikonversi menjadi lintang dan bujur sebelum menghitung jarak Euclidean di antara keduanya.
- Warna dapat dikonversi menjadi nilai RGB numerik, dengan perbedaan nilai digabungkan menjadi jarak Euclidean.
Lihat Menangani data kategoris untuk mengetahui informasi selengkapnya.
Secara umum, ukuran kesamaan manual harus sesuai langsung dengan kesamaan yang sebenarnya. Jika tidak, berarti metrik yang Anda pilih tidak mengenkode informasi yang ingin Anda enkode.
Lakukan pra-pemrosesan data Anda dengan cermat sebelum menghitung ukuran kesamaan. Contoh di halaman ini disederhanakan. Sebagian besar set data dunia nyata bersifat besar dan kompleks. Seperti yang disebutkan sebelumnya, kuantil adalah pilihan default yang baik untuk memproses data numerik.
Seiring meningkatnya kompleksitas data, semakin sulit untuk membuat pengukuran kemiripan manual. Dalam situasi tersebut, beralihlah ke pengukuran kesamaan yang diawasi, tempat model pemelajaran mesin yang diawasi menghitung kesamaan. Hal ini akan dibahas lebih lanjut nanti.