Estou tentando inteligentemente classificar uma coleção classificada. Eu tenho uma coleção de pedaços de dados. Mas eu sei que esses dados se encaixam em posições desiguais. Não sei como escolher de forma inteligente os pontos de extremidade para ajustar adequadamente os dados. por exemplo:m
Digamos que eu tenha 12 itens em minha coleção e sei que os dados cabem em três compartimentos:
Index: 1 2 3 4 5 6 7 8 9 10 11 12
Value: 1 1 1 3 3 3 3 3 3 5 5 6
Como escolho inteligentemente meus pontos de interrupção para os compartimentos de ?
A implementação atual que eu tenho divide os dados em compartimentos de tamanho uniforme e leva a média dos pontos de extremidade para encontrar os índices para o final dos compartimentos. Então funciona assim:
Index: 1 2 3 4 5 6 7 8 9 10 11 12
Value: 1 1 1 3 3 3 3 3 3 5 5 6
first break evenly: i = 1-4, 5-8, 9-12
mean endpoints: between 4 and 5: (3+3)/2 = 3
between 8 and 9: (3+3)/2 = 3
Portanto, agora qualquer coisa abaixo de 3 cabe no compartimento 1, qualquer coisa acima de 3, mas abaixo de 3, cabe no compartimento 2 e qualquer coisa acima de 3 cabe no compartimento 3. Você pode ver qual é o meu problema. Se os dados tiverem caixas desiguais, meu método falhará.
Um amigo mencionou o algoritmo k-vizinho mais próximo, mas não tenho certeza.