Sto cercando di bin in modo intelligente una raccolta ordinata. Ho una raccolta di pezzi di dati. Ma so che questi dati si inseriscono in bidoni di dimensioni diverse. Non so come scegliere in modo intelligente gli endpoint per adattarli correttamente ai dati. per esempio:m
Supponiamo di avere 12 articoli nella mia raccolta e che i dati si adattino a 3 contenitori:
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
Come faccio a scegliere in modo intelligente i miei punti di interruzione per i bin di ?
L'implementazione corrente che ho suddivide i dati in bin di dimensioni uniformi e quindi prende la media degli endpoint per trovare gli indici per la fine dei bin. Quindi funziona così:
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
Quindi ora qualsiasi cosa al di sotto di 3 si inserisce nel cestino 1, qualsiasi cosa al di sopra di 3 ma al di sotto del 3 si inserisce nel cestino 2 e qualsiasi cosa al di sopra del 3 si inserisce nel cestino 3. Puoi vedere qual è il mio problema. Se i dati hanno contenitori disuguali il mio metodo fallisce.
Un amico ha menzionato l'algoritmo del vicino K più vicino ma non ne sono sicuro.