Sto lavorando a un software che deve implementare la giocosità di un set di dati. Ecco un esempio dell'ingresso avrei ricevuto, è fusa con la trama leggerezza di ciascuna striscia pixel verticale: Determinare "wiggliness" del set di dati - Python
È facile vedere che il margine sinistro è davvero sinuoso (cioè ha una tonnellata di minimi/massimi), e voglio generare una serie di punti critici dell'immagine. Ho applicato una funzione di smoothing gaussiana ai dati ~ 10 volte, ma sembra essere abbastanza sinuosa per cominciare.
Qualche idea?
Ecco il mio codice originale, ma non produce molto bello risultati (per la 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))
Potresti postare un link per una definizione accurata di wiggliness? –
La statistica che si sta cercando di caratterizzare una funzione di frequenza o una funzione di ampiezza? – SingleNegationElimination
Se stai chiedendo un modo per caratterizzare la giocosità invece di un modo per implementare tale caratterizzazione a livello di codice, potresti avere più fortuna su http://stats.stackexchange.com/. – katrielalex