Através de espinhos para as estrelas, ou análise de dados nos assuntos do céu


Enquanto estamos sentados no escritório bebendo chá quente, algo realmente importante está acontecendo em algum lugar nas extensões de espaço. O que chama a atenção de astrônomos e pesquisadores de todo o mundo é fascinante, intrigante e talvez assustador para quem sabe um pouco mais sobre isso do que nós. Nascem novas galáxias, Tesla Ilona Mask voa ao som das canções do imortal David Bowie, em geral beleza.

Mas vamos voltar à Terra por um tempo. Aconteceu que a análise de dados é uma necessidade inter-científica. E tão atraente. Uma vez que tudo pode ser investigado, desde as entranhas da Terra até o vasto espaço.

Quero falar sobre essa experiência, a saber, a participação na olimpíada internacional de análise de dados da IDAO 2019, realizada pelo terceiro ano consecutivo pela minha universidade nativa - a Higher School of Economics.

A tarefa foi reduzida à prevenção e detecção de “acidentes espaciais”, quando satélites em órbita sem caminhos de movimento ideais se chocam, transformando-se em detritos espaciais, que em velocidades cósmicas podem muito bem causar mais acidentes, perda de vários milhões de dólares e várias chamadas para um tapete em algum lugar da NASA ou Roscosmos. Por que isso aconteceu? Obviamente, as estrelas são as culpadas. Ou não, vamos descobrir.
A propósito, estatísticas sobre o número de objetos espaciais de origem terrestre que voam na órbita da Terra são fornecidas abaixo.



Pode-se ver que a quantidade de detritos espaciais está aumentando ano a ano.

Então, aqui vou tentar contar como nossa equipe conseguiu ficar em 22º lugar entre os 302.

Para começar, considere os dados de origem, que são os seguintes.



Onde x, y, z são as coordenadas do objeto no espaço tridimensional e Vx, Vy, Vz são as velocidades. Também existem dados de simulação obtidos pelo GPT-4 com o prefixo _sim que não serão utilizados.

Primeiro, vamos criar uma visualização simples, isso ajudará a entender como os dados são organizados. Eu usei trama. Se considerarmos os dados em um sistema de coordenadas bidimensional, eles terão a seguinte aparência. O eixo y do sétimo satélite é exibido abaixo. Existem mais gráficos que você pode girar com o mouse e sorrir enquanto ainda se diverte no .ipynb no Github.



Durante a EDA (Análise Exploratória de Dados), observou-se que os dados contêm observações que diferem no tempo em um segundo. Eles devem ser removidos para manter a sazonalidade. Provavelmente, o mesmo objeto foi detectado no mesmo ponto duas vezes.

Em suma, esta série temporal tem claramente uma tendência linear e sazonalidade igual a 24, ou seja, o satélite faz uma revolução em torno da Terra em 24 observações. Isso ajudará no futuro a escolher o algoritmo ideal.

Agora, escreveremos uma função que preverá os valores das séries temporais usando o algoritmo SARIMA (foi usada a implementação do pacote statsmodels), otimizando os parâmetros do modelo e escolhendo o melhor com o valor mínimo do critério Akaike. Mostra como o modelo é complicado e reciclado. A fórmula é dada abaixo.



A conclusão final foi a seguinte:



Obviamente, nossa equipe chegou a isso após várias dezenas de iterações e reescritas repetidas do código. Algo entrou, melhorando bastante a nossa velocidade, algo caiu, devorando nosso tempo, como Langoliers. Mas, de uma maneira ou de outra, foram feitas previsões da posição do satélite e de sua velocidade para o próximo mês.

A métrica da qualidade foi SMAPE, o erro percentual médio simétrico.



onde F_t são os valores previstos, F_t são os valores verdadeiros.

A fórmula final foi a seguinte:



No final, nossa equipe recebeu montes de códigos .ipynb não tão bons para notebooks, arquivos csv com nomes absolutamente ilógicos, noites sem dormir, milhares de atualizações no placar, dezenas de envios caídos e outras delícias dos hackathons de ML, bem e o 22º lugar do 302 equipes em um ranking privado, ou seja, atingiu o TOP 7%.



Como idéias para otimizar a solução, propõe-se tentar aprofundar a EDA para entender os dados em um nível inferior, para tentar usar outros algoritmos preditivos. Análise mais detalhada no repositório. Ame ML e fique atento.

Código Link

All Articles