Saya memiliki matriks semi-kecil fitur biner dimensi 250k x 100. Setiap baris adalah pengguna dan kolom adalah "tag" biner dari beberapa perilaku pengguna, misalnya "likes_cats".
user 1 2 3 4 5 ...
-------------------------
A 1 0 1 0 1
B 0 1 0 1 0
C 1 0 0 1 0
Saya ingin menyesuaikan pengguna menjadi 5-10 kelompok dan menganalisis pemuatan untuk melihat apakah saya dapat menafsirkan kelompok perilaku pengguna. Tampaknya ada beberapa pendekatan untuk menyesuaikan cluster pada data biner - apa yang menurut kami mungkin merupakan strategi terbaik untuk data ini?
PCA
Membuat matriks Jaccard Similarity , menyesuaikan cluster hirarkis dan kemudian menggunakan "node" atas.
K-median
K-medoid
Proximus ?
Agnes
Sejauh ini saya sudah cukup sukses dengan menggunakan pengelompokan hierarkis tapi saya benar-benar tidak yakin itu cara terbaik untuk pergi ..
tags = read.csv("~/tags.csv")
d = dist(tags, method = "binary")
hc = hclust(d, method="ward")
plot(hc)
cluster.means = aggregate(tags,by=list(cutree(hc, k = 6)), mean)
sumber
Jawaban:
Analisis kelas laten adalah salah satu pendekatan yang mungkin.
Ambil distribusi probabilitas berikut ini di mana A, B, dan C dapat mengambil nilai 1 atau 0.
Jika ini independen satu sama lain, maka kami akan berharap untuk melihat:
Setelah kemungkinan ini dihilangkan, kami mungkin berhipotesis bahwa setiap ketergantungan yang diamati adalah karena pengelompokan nilai dalam subkelompok yang tidak teramati. Untuk menguji ide ini, kami dapat memperkirakan model berikut:
Di mana adalah variabel kategori laten dengan tingkat . Anda spesifik , dan parameter model (probabilitas marginal keanggotaan kelas, dan probabilitas kelas spesifik untuk setiap variabel) dapat diperkirakan melalui maksimalisasi harapan.X n n
Dalam praktiknya, Anda dapat memperkirakan beberapa model, dengan , dan "memilih" model terbaik berdasarkan teori, indeks kesesuaian berdasarkan kemungkinan, dan kualitas klasifikasi (yang dapat dinilai dengan menghitung probabilitas posterior keanggotaan kelas untuk pengamatan).5 ≤ n ≤ 10
Namun, mencoba mengidentifikasi pola yang bermakna dalam 100 variabel dengan 5-10 kelompok kemungkinan akan memerlukan pengurangan daftar itu sebelum memperkirakan model, yang merupakan topik yang cukup rumit dalam dirinya sendiri ( REF ).
sumber
Sebenarnya, sering melakukan penambangan item mungkin merupakan pilihan yang lebih baik daripada mengelompokkan pada data tersebut.
Kumpulan algoritma berorientasi vektor yang biasa tidak masuk akal. K-means misalnya akan menghasilkan cara yang tidak lagi biner.
sumber