Estoy buscando un algoritmo que pueda ejecutarse rápidamente a través de una matriz corta (< 30 elementos) y fusionar puntos que sean aproximadamente iguales. Probablemente termine siendo algún tipo de algoritmo de segmentación.Fusionando puntos aproximadamente iguales en el conjunto de datos
El contexto es el siguiente: estoy buscando los picos más altos en un conjunto de datos. Ya he separado los máximos más altos de la escoria utilizando una implementación unidimensional de J-SEG, pero en cualquier lugar donde el conjunto de datos es "plano", obtengo un punto por cada elemento a lo largo de la meseta. Necesito poder fusionar estos puntos de manera adaptativa a un único punto en el centro de la meseta. (Esto también significa que no sé cuántos grupos habrá.)
Muestra conjunto de datos 1 (Muestra/entrada artificial) de entrada:
97 54686024814922.8
118 406406320535.935
148 24095826539423.7
152 1625624905272.95
160 1625625128029.81
166 1625625152145.47
176 1625625104745.48
179 1625625127365.09
183 1625625152208.44
190 1625624974205.81
194 21068100428092.9
247 54686024895222.1
salida ideal:
97 54686024814922.8
118 406406320535.935
148 24095826539423.7
159 1625625061816.08
182 1625625089631.21
194 21068100428092.9
247 54686024895222.1
muestra de datos 2 (entrada real): de entrada:
2 196412376940671
123 206108518197124
135 194488685387149
148 178463949513298
154 192912098976702
156 195042451997727
161 195221254214493
168 204760073508681
172 189240741651297
182 191554457423846
187 215014126955355
201 202294866774063
Idea l Salida:
2 196412376940671
123 206108518197124
135 194488685387149
148 178463949513298
157 194391935062974
168 204760073508681
172 189240741651297
182 191554457423846
187 215014126955355
201 202294866774063
muestra de datos 3 (entrada real) de entrada:
2 299777367852602
26 263467434856928
35 293412234811901
83 242768805551742
104 226333969841383
107 227548774800053
178 229173574175201
181 229224441416751
204 244334414017228
206 245258151638118
239 198782930497571
de salida ideal:
2 299777367852602
26 263467434856928 (May be merged
35 293412234811901 depending on parameters)
83 242768805551742
105.5 226941372320718
179.5 229199007795976
205 244796282827673
239 198782930497571
(. editará en información adicional según sea necesario)
¿Te importaría elaborar sobre lo que consideras que es aproximadamente? ¿Está dentro de un cierto porcentaje, a un punto decimal en particular? –
Si lo supiera, podría escribir el algoritmo yo mismo: P. "Aproximadamente" aquí corresponde al concepto humano "Puedo decir que esos dos puntos son realmente lo mismo", lo cual es muy difícil de traducir en código. Hasta ahora, mis ideas son algo así como: puntos dados (x1, y1), (x2, y2), y (x3, y3), "y2-y1
linkhyrule5
+1 para una pregunta interesante. Y porque su nombre de usuario tiene algo relacionado con Zelda. – blahman