Pessoal, Boa tarde.
Tenho uma base de 1000 pontos (já com lat/long e objeto geográfico) e precisaria criar cluster geográficos de 10 pontos por proximidade geográfica onde cada um desses 1000 pontos esteja em apenas 1 cluster específico. Não consegui ainda pensar em uma solução. O maior problema até então é um mesmo ponto aparecer em vários cluster repetidos.
Obrigado pelo apoio.
Abs,
Anderson Amaral
Oi Anderson,
Não sou um especialista no tema, mas não é algo simples de ser implementado. Pelo que li a respeito, o nome disso é clustering with cardinality constraints. Quando você busca a solução de um problema e geralmente encontra somente artigos acadêmicos, já sei que o negócio vai ser complicado hahahaha
Talvez batendo um papo com o chatGPT, você consiga algumas sugestões de bibliotecas Python que possa te ajudar, mas o script inteiro eu acredito que vai ser bem difícil. Digo isso por experiência própria, pois precisei fazer algo similar recentemente (otimização de rotas) e fui obrigado a estudar as bibliotecas pois AI tava só complicando o script..
O principal problema é que isso envolve clusterização e otimização ao mesmo tempo, onde você está pré-determinando o número de pontos no cluster e querendo a menor distância global entre eles. Se fossem poucos pontos, talvez você conseguisse resolver por força bruta, onde vc cria 100% das possibilidades e encontra a combinação que minimiza a soma das distâncias, mas ainda assim, seria bem difícil de criar um workflow para isso.
O K-means no Alteryx pode te ajudar a criar 10 clusteres onde você utilizaria lat e lon como números decimais, mas não te ajudaria a separá-los em 100 grupos de 10.
Espero ter ajudado.
Abs,
Fernando