Seperti yang baru saja ditunjukkan, k-means menetapkan titik ke sentroid terdekatnya. Namun, apa arti "paling dekat" ?
Untuk menerapkan k-means ke data fitur, Anda perlu menentukan ukuran kesamaan yang menggabungkan semua data fitur menjadi satu nilai numerik, disebut ukuran kemiripan manual.
Pertimbangkan sebuah {i>dataset<i} sepatu. Jika {i>dataset<i} itu memiliki ukuran sepatu sebagai satu-satunya fiturnya, Anda dapat mendefinisikan kesamaan antara dua sepatu dalam hal perbedaan antara ukurannya. Semakin kecil perbedaan numerik antarukuran, semakin besar kesamaan di antara sepatu.
Jika {i>dataset<i} sepatu itu memiliki dua fitur numerik, ukuran dan harga, Anda dapat menggabungkan mereka menjadi satu angka yang mewakili kesamaan. Skalakan data terlebih dahulu sehingga kedua fitur tersebut sebanding:
- Ukuran (s): Ukuran sepatu mungkin membentuk distribusi Gaussian. Konfirmasi ini. Kemudian, lakukan normalisasi data.
- Harga (p): Data mungkin merupakan distribusi Poisson. Konfirmasi ini. Jika Anda memiliki cukup data, konversikan data menjadi kuantil dan skalakan menjadi \([0,1]\).
Selanjutnya, gabungkan kedua fitur tersebut dengan menghitung error rerata kuadrat (RMSE). Ukuran kasar kesamaan ini diberikan oleh \(\sqrt{\frac{(s_i - s_j)^2+(p_i - p_j)^2}{2}}\).
Untuk contoh sederhana, hitung kemiripan 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.
Tindakan | Metode |
---|---|
Menskalakan ukuran. | Asumsikan ukuran sepatu maksimal 20. Bagilah 8 dan 11 dengan ukuran maksimum 20 untuk mendapatkan 0,4 dan 0,55. |
Menskalakan harga. | Bagilah 120 dan 150 dengan harga maksimum 150 untuk mendapatkan 0,8 dan 1. |
Temukan perbedaan ukuran. | \(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 kemiripan Anda akan meningkat saat data fitur lebih besar yang serupa. Sebaliknya, ukuran kesamaan (RMSE) Anda benar-benar menurun. Jadikan ukuran kesamaan mengikuti intuisi Anda dengan menguranginya dari 1.
\[\text{Similarity} = 1 - 0.17 = 0.83\]
Secara umum, Anda dapat mempersiapkan data numerik seperti yang dijelaskan dalam Siapkan data, lalu gabungkan data menggunakan jarak Euclidean.
Bagaimana jika {i>dataset<i} itu menyertakan ukuran sepatu dan warna sepatu? Warna adalah data kategorik, kita bahas dalam Kursus Singkat Machine Learning di Bekerja dengan data kategorik. Data kategorik lebih sulit digabungkan dengan data ukuran numerik. Bisa berupa:
- Bernilai tunggal (univalen), seperti warna mobil ("putih" atau "biru", tetapi tidak pernah keduanya)
- Multi-nilai (multivalen), seperti genre film (film dapat berupa keduanya "tindakan" dan "komedi", atau hanya "tindakan")
Jika data univalen cocok, misalnya dalam kasus dua pasang sepatu biru, kesamaan antara contoh-contoh tersebut adalah 1. Jika tidak, kesamaannya adalah 0.
Data multivalen, seperti genre film, lebih sulit untuk dikerjakan. Jika ada genre film yang tetap, kesamaan dapat dihitung menggunakan rasio nilai-nilai umum, yang disebut Kesamaan Jaccard. Contoh perhitungan kemiripan Jaccard:
- ["komedi","aksi"] dan ["komedi","aksi"] = 1
- ["komedi","aksi"] dan ["aksi"] = 1⁄2
- ["komedi","aksi"] dan ["aksi", "drama"] = 1⁄3
- ["komedi", "aksi"] dan ["non-fiksi", "biografi"] = 0
Kemiripan Jaccard bukan satu-satunya ukuran kemiripan manual data kategorik. Dua contoh lainnya:
- Kode pos dapat dikonversi menjadi lintang dan bujur sebelum menghitung jarak Euclidean di antara mereka.
- Warna dapat dikonversi menjadi nilai RGB numerik, dengan perbedaan pada nilai gabungan ke dalam jarak Euclidean.
Lihat Menggunakan data kategorik untuk lebih banyak.
Secara umum, ukuran kemiripan manual harus secara langsung sesuai pada kesamaan yang sebenarnya. Jika metrik yang Anda pilih tidak sesuai, berarti metrik tersebut tidak mengenkode informasi yang ingin Anda enkode.
Lakukan pra-pemrosesan data Anda dengan cermat sebelum menghitung ukuran kemiripan. Tujuan contoh di halaman ini disederhanakan. Sebagian besar {i>dataset <i}dunia nyata berukuran besar dan kompleks. Seperti yang telah disebutkan, kuantil adalah pilihan default yang baik untuk memproses data numerik.
Seiring dengan meningkatnya kompleksitas data, akan semakin sulit untuk membuat laporan ukuran kesamaan. Dalam situasi tersebut, beralihlah ke metode supervised kesamaan ukuran, di mana model supervised learning otomatis menghitung kesamaan. Hal ini akan dibahas secara lebih mendetail nanti.