Saya memiliki data sementara frekuensi aktivitas. Saya ingin mengidentifikasi cluster dalam data yang menunjukkan periode waktu yang berbeda dengan tingkat aktivitas yang sama. Idealnya saya ingin mengidentifikasi kluster tanpa menentukan jumlah kluster apriori.
Apa teknik pengelompokan yang tepat? Jika pertanyaan saya tidak mengandung informasi yang cukup untuk dijawab, informasi apa yang perlu saya berikan untuk menentukan teknik pengelompokan yang sesuai?
Di bawah ini adalah ilustrasi dari jenis data / pengelompokan yang saya bayangkan:
machine-learning
clustering
histelheim
sumber
sumber
Jawaban:
Dari penelitian saya sendiri, sepertinya Model Gaussian Hidden Markov mungkin cocok: http://scikit-learn.org/stable/auto_examples/plot_hmm_stock_analysis.html#contoh-plot-hmm-stock-analysis-py
Tampaknya menemukan episode kegiatan yang berbeda.
sumber
Masalah Anda terdengar mirip dengan yang saya lihat dan pertanyaan ini , yang serupa, tetapi kurang dijelaskan.
Jawaban mereka menghubungkan ke ringkasan bagus tentang Ubah Deteksi. Untuk solusi yang mungkin, pencarian google cepat ditemukan menemukan paket Analisis Titik Perubahan pada kode Google. R juga memiliki beberapa alat untuk melakukan ini. The
bcp
paket cukup kuat dan sangat mudah digunakan. Jika Anda ingin melakukannya dengan cepat saat data masuk, makalah "On-line changepoint detection dan estimasi parameter dengan aplikasi ke data genomik" menggambarkan pendekatan yang sangat canggih, meskipun diperingatkan bahwa itu sedikit menantang. Ada jugastrucchange
paketnya, tetapi ini kurang berhasil bagi saya.sumber
Wavelet dapat membantu Anda mengidentifikasi periode dengan properti yang berbeda. Namun saya tidak yakin apakah ada metode yang akan membagi waktu Anda menjadi periode diskrit untuk Anda. Dan sepertinya ada banyak teori untuk diatasi, yang saya hanya pada awalnya. Saya berharap dapat membaca saran lainnya ..
Bab pengantar buku gratis tentang wavelet.
Paket R untuk pengujian signifikansi dengan wavelet.
sumber
Pernahkah Anda melihat halaman ini: Halaman Klasifikasi / Clustering Seri Waktu UCR ?
Di sana Anda dapat menemukan keduanya: kumpulan data untuk dipraktikkan dan hasil yang dipublikasikan - untuk membandingkan kinerja implementasi Anda sendiri (ada juga tautan tentang kinerja yang dikenal dari teknik pembelajaran mesin yang terkenal). Selain itu, halaman ini mengutip sejumlah besar makalah dari mana Anda bisa melangkah lebih jauh dengan penelitian untuk pendekatan terbaik yang sesuai dengan masalah, data, atau kebutuhan Anda.
Juga, ada cara lain untuk melakukan itu (berpotensi) dengan penerapan sequitur http: // sequitur.info. Jika Anda dapat menormalkan / memperkirakan data Anda dengan baik, itu akan memberi Anda tata bahasa "periode waktu yang berbeda dengan tingkat aktivitas serupa" lihat makalah ini dan cari yang lain, karena saya tidak dapat menambahkan lebih banyak tautan ...
sumber
Saya pikir Anda dapat menggunakan Dynamic Time Wrapping untuk mencari persamaan antara rangkaian waktu yang berbeda. Untuk melakukan itu, Anda mungkin perlu mengatur wavelet Anda menjadi koleksi, seperti sebuah array. Tetapi granularitas akan menjadi masalah dan jika Anda memiliki banyak deret waktu, biaya perhitungan akan cukup besar untuk menghitung jarak DTM untuk setiap pasangannya. Jadi, Anda mungkin perlu beberapa pemilihan untuk bekerja sebagai label.
Lihat ini . Saya juga mengerjakan beberapa tugas seperti tugas Anda dan halaman ini membantu saya.
sumber