Saat ini, saya hanya punya waktu untuk jawaban yang sangat singkat, tetapi saya akan mencoba mengembangkannya nanti.
Yang ingin Anda lakukan adalah pengelompokan , karena Anda ingin menemukan beberapa label untuk data Anda. (Berbeda dengan klasifikasi, di mana Anda akan memiliki label untuk setidaknya beberapa data dan Anda ingin memberi label pada sisanya).
Untuk melakukan pengelompokan pada pengguna Anda, Anda harus memilikinya sebagai semacam titik dalam ruang abstrak. Kemudian Anda akan mengukur jarak antara titik, dan mengatakan bahwa titik yang "dekat" adalah "serupa", dan beri label sesuai dengan tempat mereka di ruang itu.
Anda perlu mengubah data Anda menjadi sesuatu yang terlihat seperti profil pengguna, yaitu: ID pengguna, diikuti oleh vektor angka yang mewakili fitur-fitur pengguna ini. Dalam kasus Anda, setiap fitur dapat berupa "kategori situs web" atau "kategori produk", dan jumlahnya dapat berupa jumlah dolar yang dihabiskan untuk fitur itu. Atau fitur dapat berupa kombinasi web dan produk, tentu saja.
Sebagai contoh, mari kita bayangkan profil pengguna hanya dengan tiga fitur:
- dolar yang dihabiskan di web "techy",
- dolar yang dihabiskan untuk produk "mode",
- dan dolar yang dihabiskan untuk permainan video "agresif" di web "berorientasi keluarga" (siapa tahu).
Untuk membangun profil tersebut, Anda perlu memetakan "kategori" dan "kata kunci" yang Anda miliki, yang terlalu banyak, ke dalam fitur yang menurut Anda relevan. Lihatlah pemodelan topik atau kesamaan semantik untuk melakukannya. Setelah peta itu dibuat, itu akan menyatakan bahwa semua dolar yang dihabiskan di web dengan kata kunci "gadget", "elektronik", "pemrograman", dan X lainnya, semuanya harus digabungkan ke dalam fitur pertama kami; dan seterusnya.
Jangan takut "memaksakan" fitur! Anda harus memperbaiki dan mungkin mengubahnya sepenuhnya setelah Anda mengelompokkan pengguna.
Setelah Anda memiliki profil pengguna, lanjutkan untuk mengelompokkannya menggunakan k-means atau apa pun yang menurut Anda menarik. Apa pun teknik yang Anda gunakan, Anda akan tertarik untuk mendapatkan poin "representatif" untuk setiap cluster. Ini biasanya merupakan "pusat" geometris dari titik-titik dalam cluster itu.
Plot poin-poin "representatif" itu, dan juga plot bagaimana mereka membandingkannya dengan cluster lain. Menggunakan grafik radar sangat berguna di sini. Di mana pun ada fitur yang menonjol (sesuatu dalam perwakilan yang sangat ditandai, dan juga sangat menonjol dalam perbandingannya dengan cluster lain) adalah kandidat yang baik untuk membantu Anda memberi label pada cluster dengan beberapa frase yang menarik ("kutu buku", "fashionista" , "ibu agresif" ...).
Ingat bahwa masalah pengelompokan adalah masalah terbuka, jadi tidak ada solusi yang "benar"! Dan saya pikir jawaban saya sudah cukup lama; periksa juga tentang normalisasi profil dan penyaringan pencilan.