|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jan 2001
Città: Livorno
Messaggi: 1372
|
Di una serie di valori eleggere il più probabile
Ho una serie di numeri:
1 2 3 4 4.5 4.6 4.7 4.88 4.9 5 5.01 5.03 6 7 8 9 10 11 12 13 14 15 Come vedete i numeri vicini al 5 sono più probabili rispetto a tutti gli altri. Non posso fare la moda perchè comunque ogni valore ricorre una volta. Esiste un metodo statistico che come output mi dia 5 ? Grazie |
|
|
|
|
|
#2 |
|
Member
Iscritto dal: Sep 2014
Città: Firenze
Messaggi: 143
|
Ciao, non esiste la moda, ma se intendi come valore più probabile il valore intero potresti far così: una volta preso in input il vettore di valori, scrivi un secondo vettore in cui ad ogni elemento sostituisci l'approssimazione per arrotondamento, così che successivamente su tale nuovo vettore puoi eseguire la moda, il tutto automatizzato da un ciclo for per esempio.
|
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Jan 2001
Città: Livorno
Messaggi: 1372
|
Quote:
raggruppare tra loro i valori più vicini e poi fare la media del gruppo più numeroso. Ultima modifica di das : 15-09-2014 alle 17:17. |
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Dec 2006
Messaggi: 3808
|
ma su cosa verte la domanda ? Ti serve un consiglio su quale linguaggio di programmazione usare ?
|
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Jan 2001
Città: Livorno
Messaggi: 1372
|
Quote:
Detto con un disegno la domanda è questa: http://i.imgur.com/fYPIjAd.png?1 I puntini sono i miei numeri. Più sono lontani più rappresentano numeri lontani tra loro. Come puoi vedere dal disegno sono vicini tra loro a gruppetti: 1.1 1.2 1.3 1.4 3.4 3.5 3.6 3.9 4.2 4.9 5.0 5.3 5.5 7.9 8 8.2 8.3 10 10.2 10.3 10.6 10.55 10.553 Quindi li posso dividere in n sottoinsiemi che nel disegno ho rappresentato come cerchi. Come faccio a fare questa divisione in cerchi ? Come faccio ad individuare il cerchio blu ? (Cioè quello con più puntini al suo interno ?) Ultima modifica di das : 15-09-2014 alle 22:44. |
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Dec 2006
Messaggi: 3808
|
hai linkato male l'immagine, uppala su un sito esterno come http://imgur.com/ e re-pubblicala.
|
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: Jan 2001
Città: Livorno
Messaggi: 1372
|
Quote:
http://i.imgur.com/fYPIjAd.png?1 |
|
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Jan 2001
Città: Livorno
Messaggi: 1372
|
Solo che cercando su internet il problema sembrerebbe più complicato del previsto. All'inizio pensavo fosse solo una funzioncina di quattro righe.
|
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Oct 2001
Messaggi: 11471
|
Oltretutto hai già i numeri in ordine crescente. Per "raggrupparli" basta scorrere la lista e guardare se la differenza con il numero successivo è minore di un certo valore.
Codice:
def find_cluster(list, lim)
cluster = []
candidate = []
for i in 0 ... list.size
candidate << list[i]
if candidate.size > cluster.size
cluster = candidate
end
if i < list.size - 1
unless (list[i + 1] - list[i]) < lim
candidate = []
end
end
end
cluster
end
list = [1, 2, 3, 4, 4.5, 4.6, 4.7, 4.88, 4.9, 5, 5.01, 5.03, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
lim = 0.1
puts find_cluster(list, lim)
|
|
|
|
|
|
#10 | ||
|
Senior Member
Iscritto dal: Jan 2001
Città: Livorno
Messaggi: 1372
|
Quote:
Quote:
Ho trovato un algoritmo che lo fa, si chiama Self-Organising -Map. Solo che me lo devo scrivere visto che non si trovano librerie che lo contengano mi pare |
||
|
|
|
|
|
#11 | |
|
Senior Member
Iscritto dal: Jan 2001
Città: Livorno
Messaggi: 1372
|
Quote:
Sto elucubrando: - se mi scelgo un punto a caso - da lì faccio partire il raggio di un cerchio fino a quando non viene inglobato un altro punto - creo un nuovo cerchio con centro nel baricentro dei due punti precedenti. - lo allargo fino a trovare un altro punto - valuto la deviazione standard delle distanze - creo un nuovo cerchio con centro nel baricentro dei tre punti precedenti. - e così via allargando il cerchio fino a quando la deviazione non supera una certa soglia - riparto da un punto esterno al cerchio e mi trovo un altro gruppo oppure di tutte le combinazioni possibili trovare quella per cui la deviazione standard in ogni gruppo è più simile possibile a quella degli altri gruppi Boh, waiting for elucubrazioni/aiuto |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 12:23.




















