Jika saya memiliki toko ritel dan memiliki cara untuk mengukur berapa banyak orang yang memasuki toko saya setiap menit, dan mencatat waktu data itu, bagaimana saya bisa memprediksi lalu lintas pejalan kaki di masa depan?
Saya telah mempelajari algoritma pembelajaran mesin, tetapi saya tidak yakin yang mana yang akan digunakan. Dalam data pengujian saya, tren tahun ke tahun lebih akurat dibandingkan dengan hal-hal lain yang pernah saya coba, seperti KNN (dengan apa yang saya pikir merupakan parameter yang masuk akal dan fungsi jarak).
Sepertinya ini bisa mirip dengan pemodelan keuangan, di mana Anda berurusan dengan data deret waktu. Ada ide?
machine-learning
time-series
pengguna1132959
sumber
sumber
Jawaban:
Masalah dengan model seperti KNN adalah bahwa mereka tidak memperhitungkan musim (variasi tergantung waktu dalam tren). Untuk memperhitungkannya, Anda harus menggunakan analisis Time Series.
Untuk menghitung data, seperti milik Anda, Anda dapat menggunakan model rata-rata bergerak regresif otomatis umum (GLARMA). Untungnya, ada paket R yang mengimplementasikannya ( glarma ).
The sketsa adalah sumber yang baik untuk teori di balik alat.
sumber
Saya pikir jawaban Christopher di atas sepenuhnya masuk akal. Sebagai pendekatan alternatif (atau mungkin hanya sebagai tambahan atas saran yang diberikannya), saya mungkin mulai dengan memvisualisasikan data sedikit untuk mencoba memahami apa yang sedang terjadi.
Jika Anda belum melakukan ini, Anda dapat mencoba menambahkan bulan dan hari dalam satu tanggal sebagai fitur - jika Anda akhirnya bertahan dengan KNN, ini akan membantu model mengambil musiman.
Sebagai cara yang berbeda untuk mengambil ini, Anda mungkin mempertimbangkan untuk memulai dengan model yang benar-benar dasar (seperti OLS) .. ini sering berjalan jauh dalam menghasilkan prediksi yang masuk akal.
Akhirnya, semakin kami tahu tentang data Anda, semakin mudah bagi kami untuk membantu menghasilkan saran - Kerangka waktu apa yang Anda amati? Apa saja fitur yang sedang Anda gunakan? dll.
Semoga ini membantu --
sumber
Anda bisa mencoba Neural Network. Anda dapat menemukan 2 penjelasan hebat tentang cara menerapkan NN pada deret waktu di sini dan di sini .
Perhatikan bahwa ini adalah praktik terbaik untuk:
Karena apa yang Anda cari adalah masalah regresi, fungsi aktivasi harus
linear
dan tidaksigmoid
atautanh
dan Anda bertujuan untuk meminimalkansum-of-squares error
(sebagai oposisi terhadap maksimalisasinegative log-likelihood
dalam masalah klasifikasi).sumber
Seperti yang disebutkan oleh @Christopher Lauden di atas, analisis deret waktu paling tepat untuk hal semacam ini. Namun, jika Anda ingin melakukan "pendekatan pembelajaran mesin" yang lebih tradisional, sesuatu yang telah saya lakukan di masa lalu adalah untuk memblokir data Anda menjadi tumpang tindih jendela waktu sebagai fitur, kemudian menggunakannya untuk memprediksi hari-hari berikutnya (atau minggu) ) lalu lintas.
Matriks fitur Anda akan menjadi seperti:
di mana
tI
lalu lintas pada hari ituI
. Fitur yang akan Anda prediksi adalah lalu lintas pada hari setelah kolom terakhir. Intinya, gunakan jendela lalu lintas untuk memprediksi lalu lintas hari berikutnya.Segala jenis model ML akan bekerja untuk ini.
Edit
Menanggapi pertanyaan, "dapatkah Anda menguraikan bagaimana Anda menggunakan matriks fitur ini":
Matriks fitur memiliki nilai yang menunjukkan lalu lintas masa lalu selama periode waktu tertentu (misalnya, lalu lintas per jam selama 1 minggu), dan kami menggunakan ini untuk memprediksi lalu lintas untuk beberapa periode waktu tertentu di masa mendatang. Kami mengambil data historis kami dan membangun matriks fitur lalu lintas historis dan memberi label ini dengan lalu lintas pada beberapa periode di masa mendatang (misalnya 2 hari setelah jendela dalam fitur). Menggunakan semacam model pembelajaran mesin regresi, kita dapat mengambil data lalu lintas historis, dan mencoba dan membangun model yang dapat memprediksi bagaimana lalu lintas bergerak dalam kumpulan data historis kami. Asumsinya adalah bahwa lalu lintas masa depan akan menyerupai lalu lintas masa lalu.
sumber
Yah, pertama, saya bahkan tidak akan menggunakan hal-hal seperti Machine learning tanpa memiliki pengetahuan yang mendalam. Hal-hal sederhana yang akan saya lakukan jika saya memiliki rangkaian waktu ini adalah:
Dua hal ini akan membantu Anda memahami apa yang dikatakan data Anda. Kemudian, dengan itu di tangan, Anda mungkin akan berada dalam kondisi yang lebih baik untuk menggunakan algoritma pembelajaran mesin.
Selain itu, saya saat ini sedang bekerja membangun sesuatu berdasarkan deret waktu, dan menggunakan analisis deret waktu akan membantu Anda lebih dari sekadar pembelajaran mesin. Misalnya, ada algoritme pengenalan pola yang dapat Anda gunakan yang menggunakan data setiap hari untuk menunjukkan pola, dan yang menggunakan data hingga 3 hingga 6 bulan untuk menangkap suatu pola.
sumber
Saya akan menyarankan agar Anda tidak menggunakan jaringan saraf atau yang setara, saya berasumsi, Anda telah mendapat hasil yang baik berdasarkan pengalaman Anda dengan toko (yaitu bahwa mungkin ada tren harian / musiman dan beberapa tingkat kelancaran) dan Saya membayangkan jumlah data yang relatif kecil. Opsi IMO yang lebih baik adalah menggunakan metode kernel seperti Proses Gaussian atau SVM.
sumber
Membawa utas ini kembali ke kehidupan, karena ini bisa bermanfaat bagi orang lain yang mendarat di sini dengan pertanyaan serupa.
Facebook baru-baru ini merilis dan open-source salah satu alat peramalan internal mereka yang disebut Nabi https://facebookincubator.github.io/prophet/
Ini tersedia sebagai paket R & Python, dan terbukti menjadi solusi menarik bagi seseorang dengan sedikit latar belakang Pembelajaran Mesin. Namun, beberapa pengetahuan ML tambahan memungkinkan untuk menyempurnakan dan mengoptimalkan model yang dihasilkan.
Saya merekomendasikan untuk mencoba Nabi sebagai langkah pertama. Kemenangan cepat pada solusi ini adalah kemudahan dan kecepatan pembuatan dan pengujian model: Anda benar-benar bisa mendapatkan proyeksi penurunan dalam hitungan menit. Itu berperilaku sangat baik pada deret waktu, menangkap musiman data yang ada di tangan "secara alami".
Di bawah tenda, itu mirip dengan model aditif umum (GAM) - detail lebih lanjut pada makalah khusus: https://facebookincubator.github.io/prophet/static/prophet_paper_20170113.pdf
sumber