Saya punya beberapa data tentang waktu antara detak jantung manusia. Salah satu indikasi denyut ektopik (ekstra) adalah bahwa interval ini dikelompokkan sekitar tiga nilai, bukan satu. Bagaimana saya bisa mendapatkan ukuran kuantitatif ini?
Saya ingin membandingkan beberapa set data, dan dua histogram 100-bin ini mewakili semuanya.
Saya dapat membandingkan varians, tetapi saya ingin algoritma saya dapat mendeteksi apakah ada satu atau tiga cluster dalam setiap kasus tanpa membandingkan dengan kasus-kasus lainnya.
Ini untuk pemrosesan offline, jadi ada banyak daya komputasi yang tersedia, jika itu diperlukan.
clustering
Nikolaus
sumber
sumber
Jawaban:
Saya sangat menyarankan untuk tidak menggunakan k-means di sini. Hasil untuk nilai k yang berbeda tidak sebanding dengan sangat baik. Metode ini hanya heuristik kasar. Jika Anda benar-benar ingin menggunakan pengelompokan, gunakan pengelompokan EM, karena data Anda tampaknya berisi distribusi normal. Dan validasikan hasil Anda!
Sebagai gantinya, pendekatan yang jelas adalah untuk mencoba menyesuaikan fungsi Gaussian tunggal dan (misalnya menggunakan metode Levenberg-Marquard) cocok dengan tiga fungsi Gaussian, mungkin dibatasi pada ketinggian yang sama (untuk menghindari degenerasi).
Kemudian uji, yang mana dari dua distribusi yang lebih baik.
sumber
Paskan distribusi campuran dengan data, sesuatu seperti campuran dari 3 distribusi normal, kemudian bandingkan kemungkinan kecocokan tersebut dengan kecocokan distribusi normal tunggal (menggunakan uji rasio kemungkinan, atau AIC / BIC). The
flexmix
paket untukR
mungkin bisa membantu.sumber
sumber
Gunakan algoritma pengelompokan K-means untuk mengidentifikasi berbagai cara
Cari fungsi KNN di R-seek untuk menemukan fungsi yang sesuai
sumber
kmeans
fungsi Matlab . Berarti yang dihasilkan sangat bervariasi dari mencoba untuk mencoba. (Heuristik buruk dalam implementasi ini?) Untuk set 1-cluster, saya mendapatkan mean sekitar (270.293.693) kadang-kadang, sekitar (260.285.308) kadang-kadang. Untuk set 3-cluster, beberapa jawaban adalah (196.324.468,) dan (290.459.478).