Estoy trabajando en una pieza de software que necesita para implementar la wiggliness de un conjunto de datos. He aquí una muestra de la entrada iba a recibir, se fusionó con la trama ligereza de cada tira de píxeles verticales: Determine "wiggliness" del conjunto de datos - Python
Es fácil ver que el margen izquierdo es realmente ondulada (es decir, tiene una tonelada de mínimos/máximos), y quiero generar un conjunto de puntos críticos de la imagen. Apliqué una función de suavizado de Gauss a los datos ~ 10 veces, pero parece ser bastante ondulante para empezar.
¿Alguna idea?
Aquí está mi código original, pero no produce muy buenos resultados (para el wiggliness):
def local_maximum(list, center, delta):
maximum = [0, 0]
for i in range(delta):
if list[center + i] > maximum[1]: maximum = [center + i, list[center + i]]
if list[center - i] > maximum[1]: maximum = [center - i, list[center - i]]
return maximum
def count_maxima(list, start, end, delta, threshold = 10):
count = 0
for i in range(start + delta, end - delta):
if abs(list[i] - local_maximum(list, i, delta)[1]) < threshold: count += 1
return count
def wiggliness(list, start, end, delta, threshold = 10):
return float(abs(start - end) * delta)/float(count_maxima(list, start, end, delta, threshold))
¿Podría publicar un enlace a una definición precisa de wiggliness? –
¿La estadística que busca caracteriza una función de frecuencia o una función de amplitud? – SingleNegationElimination
Si está preguntando sobre una manera de caracterizar la wiggliness en lugar de una forma de implementar esa caracterización programáticamente, puede tener más suerte en http://stats.stackexchange.com/. – katrielalex