À travers les épines jusqu'aux étoiles ou l'analyse des données dans les affaires du ciel


Pendant que nous sommes assis au bureau à boire du thé chaud, quelque chose de vraiment important se passe quelque part dans les vastes espaces. Ce qui attire l'attention des astronomes et des chercheurs du monde entier est fascinant, intrigant et peut-être effrayant ceux qui en savent un peu plus que nous sur ce sujet. De nouvelles galaxies sont nées, Tesla Ilona Mask s'envole vers les chansons de l'immortel David Bowie, en général, la beauté.

Mais revenons sur Terre un moment. Il se trouve que l'analyse des données est un besoin trans-scientifique. Et si attrayant. Puisque tout peut être étudié, des entrailles de la Terre au vaste espace.

Je veux parler d'une telle expérience, à savoir la participation à mon université d'origine, la Higher School of Economics, pour la troisième année consécutive à l'Olympiade internationale d'analyse de données IDAO 2019.

La tâche a été réduite à la prévention et à la détection des «accidents spatiaux», lorsque des satellites en orbite avec des trajectoires de mouvement non optimales s’écrasent, se transformant en débris spatiaux qui, à des vitesses cosmiques, pourraient bien provoquer plusieurs accidents supplémentaires, une perte de plusieurs millions de dollars et plusieurs appels un tapis quelque part dans la NASA ou Roscosmos. Pourquoi est-ce arrivé ainsi? De toute évidence, les étoiles sont à blâmer. Ou non, découvrons-le.
À propos, des statistiques sur le nombre d'objets spatiaux d'origine terrestre volant en orbite terrestre sont données ci-dessous.



On peut voir que la quantité de débris spatiaux augmente d'année en année.

Donc, ici, je vais essayer de dire comment notre équipe a pu prendre la 22e place sur 302.

Pour commencer, considérez les données source, qui sont les suivantes.



Où x, y, z sont les coordonnées de l'objet dans l'espace tridimensionnel, et Vx, Vy, Vz sont les vitesses. Il existe également des données de simulation obtenues par GPT-4 avec le préfixe _sim qui ne seront pas utilisées.

Tout d'abord, construisons une visualisation simple, cela vous aidera à comprendre comment les données sont organisées. J'ai utilisé complotement. Si nous considérons les données dans un système de coordonnées à deux dimensions, alors elles se présentent comme suit. L'axe y du septième satellite est affiché ci-dessous. Il y a plus de graphiques que vous pouvez faire pivoter avec la souris et sourire tout en passant un bon moment dans .ipynb sur Github.



Au cours de l'EDA (Explorative Data Analyze), il a été constaté que les données contiennent des observations qui diffèrent dans le temps d'une seconde. Ils doivent être supprimés pour maintenir la saisonnalité. Très probablement, le même objet a été détecté deux fois au même point.

En bref, cette série chronologique a clairement une tendance linéaire et une saisonnalité égales à 24, c'est-à-dire que le satellite fait une révolution autour de la Terre en 24 observations. Cela aidera à l'avenir à choisir l'algorithme optimal.

Nous allons maintenant écrire une fonction qui prédira les valeurs des séries chronologiques en utilisant l'algorithme SARIMA (l'implémentation du package statsmodels a été utilisée), tout en optimisant les paramètres du modèle et en choisissant le meilleur avec la valeur minimale du critère Akaike. Il montre à quel point le modèle est compliqué et recyclé. La formule est donnée ci-dessous.



La conclusion finale était la suivante:



Bien sûr, notre équipe est arrivée à cela après plusieurs dizaines d'itérations et réécritures répétées du code. Quelque chose est entré, améliorant considérablement notre vitesse, quelque chose est finalement tombé, dévorant notre temps, comme Langoliers. Mais d'une manière ou d'une autre, des prévisions ont été faites sur la position du satellite et sa vitesse pour le mois suivant.

La métrique de qualité était SMAPE, l'erreur moyenne en pourcentage symétrique.



où F_t sont les valeurs prédites, F_t sont les vraies valeurs.

La formule finale ressemblait à ceci:



Au final, notre équipe a reçu des tas de code .ipynb pas si bon pour les cahiers, des fichiers csv avec des noms absolument illogiques, des nuits blanches, des milliers de mises à jour du classement, des dizaines de soumissions tombées et d'autres délices de hackathons ML, eh bien, 22e place de 302 équipes sur un classement privé, soit atteint le TOP 7%.



Comme idées pour optimiser la solution, il est proposé d'essayer d'approfondir l'EDA pour comprendre les données à un niveau inférieur, pour essayer d'utiliser d'autres algorithmes prédictifs. Analyse plus détaillée dans le référentiel. Aimez ML et restez à l'écoute.

Lien de code

All Articles