Melalui duri ke bintang-bintang, atau analisis data dalam urusan surga


Sementara kami duduk di kantor sambil minum teh panas, sesuatu yang sangat penting terjadi di suatu tempat di hamparan ruang. Apa yang menarik perhatian para astronom dan peneliti dari seluruh dunia adalah menarik, membangkitkan minat, dan mungkin menakutkan mereka yang tahu sedikit tentang ini daripada kita. Galaksi baru lahir, Topeng Tesla Ilona terbang ke lagu-lagu abadi David Bowie, secara umum, kecantikan.

Tapi mari kita kembali ke Bumi sebentar. Kebetulan bahwa analisis data adalah kebutuhan lintas-ilmiah. Dan sangat menarik. Karena semuanya bisa diselidiki, dari perut bumi hingga ruang yang luas.

Saya ingin berbicara tentang pengalaman seperti itu, yaitu tentang partisipasi dalam olimpiade analisis data internasional IDAO 2019, yang telah diselenggarakan untuk tahun ketiga berturut-turut oleh universitas asli saya - Sekolah Tinggi Ekonomi.

Tugas itu dikurangi menjadi pencegahan dan deteksi "kecelakaan ruang", ketika satelit di orbit dengan jalur gerakan yang tidak optimal saling menabrak, berubah menjadi puing-puing luar angkasa, yang pada kecepatan kosmik dapat menyebabkan lebih banyak kecelakaan, kehilangan beberapa juta dolar dan beberapa panggilan ke karpet di NASA atau Roscosmos. Kenapa bisa begitu? Jelas, bintang-bintang yang harus disalahkan. Atau tidak, mari kita cari tahu.
Ngomong-ngomong, statistik jumlah benda angkasa asal terrestrial yang terbang di orbit Bumi diberikan di bawah ini.



Dapat dilihat bahwa jumlah puing ruang meningkat dari tahun ke tahun.

Jadi, di sini saya akan mencoba memberi tahu bagaimana tim kami dapat mengambil tempat ke-22 dari 302.

Untuk memulai, pertimbangkan sumber data, yaitu sebagai berikut.



Di mana x, y, z adalah koordinat objek dalam ruang tiga dimensi, dan Vx, Vy, Vz adalah kecepatannya. Ada juga data simulasi yang diperoleh oleh GPT-4 dengan awalan _sim yang tidak akan digunakan.

Pertama, mari kita bangun visualisasi sederhana, ini akan membantu untuk memahami bagaimana data diatur. Saya menggunakan plotly. Jika kita mempertimbangkan data dalam sistem koordinat dua dimensi, maka mereka terlihat sebagai berikut. Sumbu y dari satelit ketujuh ditampilkan di bawah ini. Ada lebih banyak grafik yang dapat Anda putar dengan mouse dan senyum sambil bersenang-senang di .ipynb di Github.



Selama EDA (Analisis Data Eksplorasi), diketahui bahwa data berisi pengamatan yang berbeda dalam waktu satu detik. Mereka harus dihapus untuk mempertahankan musiman. Kemungkinan besar objek yang sama terdeteksi pada titik yang sama dua kali.

Singkatnya, seri waktu ini jelas memiliki tren linier dan musiman sama dengan 24, yaitu, satelit membuat revolusi di sekitar Bumi dalam 24 pengamatan. Ini akan membantu di masa depan untuk memilih algoritma yang optimal.

Sekarang kita akan menulis fungsi yang akan memprediksi nilai-nilai deret waktu menggunakan algoritma SARIMA (implementasi dari paket statsmodels digunakan), sambil mengoptimalkan parameter model dan memilih yang terbaik dengan nilai minimum dari kriteria Akaike. Ini menunjukkan betapa rumitnya model tersebut dan dilatih ulang. Rumusnya diberikan di bawah ini.



Kesimpulan akhir adalah sebagai berikut:



Tentu saja, tim kami datang ke ini setelah beberapa lusin iterasi dan pengulangan penulisan kode. Sesuatu masuk, sangat meningkatkan kecepatan kita, sesuatu akhirnya jatuh, menghabiskan waktu kita, seperti Langoliers. Tetapi dengan satu atau lain cara, prediksi dibuat dari posisi satelit dan kecepatannya untuk bulan berikutnya.

Metrik kualitas adalah SMAPE, persentase kesalahan rata-rata simetris.



di mana F_t adalah nilai prediksi, F_t adalah nilai sebenarnya.

Rumus terakhirnya adalah sebagai berikut:



Pada akhirnya, tim kami menerima tumpukan kode .ipynb yang tidak begitu baik untuk notebook, file csv dengan nama yang benar-benar tidak masuk akal, malam tanpa tidur, ribuan pembaruan papan peringkat, lusinan kiriman yang jatuh, dan kesenangan lain dari hackathons ML, baik, dan posisi ke 22 dari 302 tim di leaderboard pribadi, mis. tekan TOP 7%.



Sebagai ide untuk mengoptimalkan solusi, diusulkan untuk mencoba menggali lebih dalam ke EDA untuk memahami data di tingkat yang lebih rendah, untuk mencoba menggunakan algoritma prediksi lainnya. Analisis lebih rinci dalam repositori. Cintai ML dan tetap disini.

Tautan Kode

All Articles