Novità

Python - Addestramento rete neurale

implementato una mia personale idea di probabilità di estrazione di almeno due numeri a ruota
è in fase ancora di verifica
io ho convergenza su ca.ge vediamo .è solo un test
con-previsione-11.png


Screenshot-11.png
 
Grande Lottopython sempre un ottimo lavoro..Mi sono portato avanti anche io...

Funzionalità Aggiunte e Migliorate​


Caricamento e Valutazione del Miglior Modello:

Aggiunta la funzione carica_e_valuta_modello per caricare il miglior modello salvato durante l'addestramento e valutarlo su un set di dati di test.


Aggiunto un pulsante nell'interfaccia utente per eseguire questa operazione.



Ottimizzazione degli Iperparametri:

Implementata la possibilità di sperimentare con diverse combinazioni di iperparametri per trovare la configurazione ottimale.

Aggiunti campi per specificare i neuroni e i tassi di dropout per ogni layer.



Regolarizzazione e Dropout:

Aggiunte opzioni per regolare la regolarizzazione (L1, L2) e il dropout per prevenire l'overfitting.

Early Stopping e Checkpointing:

Implementato l'early stopping per interrompere l'addestramento quando il modello non migliora più.

Salvataggio del miglior modello durante l'addestramento utilizzando ModelCheckpoint.



Miglioramenti dell'Interfaccia Utente:


Riorganizzata la disposizione degli elementi per una migliore leggibilità e accessibilità.

Aggiunti messaggi di conferma per azioni critiche, come l'aggiornamento dei dati.

Come Usare le Nuove Funzionalità​



Addestramento del Modello:

Seleziona una ruota e specifica il periodo di date.

Imposta i parametri del modello (epoche, neuroni, dropout, ottimizzatore, funzione di perdita, regolarizzazione).

Avvia l'addestramento cliccando su una ruota.



Caricamento e Valutazione del Miglior Modello:

Dopo l'addestramento, clicca sul pulsante "Carica e Valuta Modello".

Il modello salvato verrà caricato e valutato su un set di dati di test.

I risultati della valutazione verranno mostrati nel box di testo.



Aggiornamento dei Dati:

Clicca sul pulsante "Aggiornamento Estrazioni" per aggiornare i dati delle estrazioni. ( si basa sul codice di Lottopython per aggiornare i dati in locale)

Verrà richiesto un messaggio di conferma prima di eseguire l'aggiornamento

Fase Test....La possibilita di caricare il miglior modello risulta interessante

Ci aggiorniamo..

Un cordiale saluto a tutti gli appassionati...
 

Allegati

  • Screenshot 2025-02-20 175146.png
    Screenshot 2025-02-20 175146.png
    337,9 KB · Visite: 22
Screenshot-31.png






I dati e le selezioni vengono sempre evidenziate all'interno del Terminale
(grazie a Max e non solo questo)



Screenshot-8.png

aggiunto
:selezione estrazioni file ruote e/o estrazioni online ,a scelta da selezionare
implementazione Mostra estrazioni
implementazione Simbolotto
migliorie alle diverse parti del codice
il codice incomincia ad essere complesso
n.b librerie sempre da tenere aggiornate

migliorate le logiche adattive

..prossimo steep in lavorazione
implementazioni migliori ruote di sortita


 

Allegati

Buongiorno a tutti...I lavori continuano....

Nasce ( forse) Numerical Empathy...devo ancora mettere a punto alcune cose...

Alcune caratteristiche:

1. Struttura Generale e Organizzazione

Modularità:
Il codice è ben strutturato in classi (ModelConfig, Tooltip) e funzioni, il che facilita la comprensione, il riutilizzo e la manutenzione. Le funzioni sono generalmente ben definite e hanno uno scopo specifico.

Gestione della Configurazione: L'uso della classe ModelConfig è eccellente per centralizzare e gestire i parametri del modello. Questo rende il codice più flessibile e facile da modificare.

Logging: L'uso estensivo del modulo logging è fondamentale per un'applicazione di questo tipo. Permette di tracciare il flusso di esecuzione, identificare problemi e monitorare le prestazioni. L'uso di livelli di logging (INFO, ERROR, WARNING) è corretto.

Gestione delle Dipendenze: Il codice importa in modo esplicito tutte le librerie necessarie (tkinter, tkcalendar, os, random, logging, matplotlib, math, pandas, numpy, tensorflow, datetime, warnings, json, subprocess, sys). Questo è positivo per la riproducibilità. Tuttavia, ci sono alcune aree di miglioramento (vedi sotto, sezione "Dipendenze").

Gestione delle Eccezioni: Il codice include una gestione delle eccezioni abbastanza completa, con blocchi try...except in molti punti critici (caricamento dati, addestramento, ecc.). Questo aiuta a prevenire crash inaspettati e fornisce feedback all'utente. Tuttavia, ci sono alcune aree in cui la gestione delle eccezioni può essere migliorata (vedi sotto).

Interfaccia Utente (GUI): L'uso di tkinter per l'interfaccia grafica è appropriato per un'applicazione desktop di questo tipo. La GUI è ben organizzata, con l'uso di schede (ttk.Notebook) per separare le diverse sezioni. L'uso di pulsanti, campi di input, caselle di testo e grafici è ben implementato. Ci sono però dei suggerimenti per migliorare l'usabilità (vedi sotto, sezione "GUI").

Funzioni di Utilità: Il codice ha delle funzioni di utilità ben implementate, come set_seed, salva_info_modello, get_best_model_info, add_noise, calcola_prevedibilita, etc. Queste funzioni contribuiscono a rendere il codice più chiaro.

Funzioni di valutazione: Ottime le funzioni di valutazione, come valuta_attendibilita, valuta_accuratezza_previsione, calcola_probabilita_vincita, valuta_qualita_previsione. Queste sono molto importanti per dare all'utente una valutazione oggettiva della qualità delle previsioni.

2. Correttezza e Funzionalità

Caricamento Dati (carica_dati):

Gestione Date:
Ottimo l'uso di pd.to_datetime per convertire le date e la gestione dell'intervallo di date.

Gestione Ruote: Corretta la gestione delle diverse ruote tramite il dizionario FILE_RUOTE.

Gestione Errori: La gestione degli errori nel caricamento e nella conversione dei dati è buona. Vengono gestiti FileNotFoundError, EmptyDataError, ParserError, ValueError, TypeError.

Validazione Dati: Fondamentale la validazione dei dati per assicurarsi che i numeri siano nel range corretto (1-90).

Normalizzazione: L'uso di RobustScaler è una scelta eccellente perché è meno sensibile agli outlier rispetto a MinMaxScaler. Il clipping e il riscalamento a [0, 1] sono corretti.

Costruzione del Modello (build_model):

Flessibilità:
La funzione è molto flessibile, permettendo di configurare il tipo di modello (dense o LSTM), il numero di layer, i neuroni, il dropout, la funzione di attivazione e la regolarizzazione.

Gestione dei Parametri: Ottima la gestione dei parametri opzionali (dense_layers, dropout_rates) con valori predefiniti.

GaussianNoise: Corretta l'aggiunta del layer GaussianNoise in base alla configurazione.

Regolarizzazione: La gestione della regolarizzazione (L1, L2, nessuna) è ben implementata.

Attivazione Output: Corretto l'uso di una funzione di attivazione separata per il layer di output.

Gestione Nessuna Selezione: Molto buono che venga creata una rete neurale minima se l'utente non seleziona nè un tipo di modello, nè una funzione di attivazione.

Addestramento del Modello (on_seleziona_ruota):

K-Fold Cross-Validation:
L'uso della K-Fold cross-validation è una best practice per valutare in modo più robusto le prestazioni del modello.

Early Stopping: L'implementazione dell'early stopping è corretta, con il monitoraggio di val_loss, patience e min_delta.

Learning Rate Scheduler: L'uso di LearningRateScheduler è una buona pratica per migliorare l'addestramento.

Rumore Adattivo: L'aggiunta del rumore adattivo (se abilitato) è una tecnica interessante.

Ensemble Learning: L'implementazione dell'ensemble learning è una caratteristica avanzata che può potenzialmente migliorare le prestazioni.

Salvataggio Modelli: Il salvataggio del miglior modello (e dei modelli intermedi) per ogni fold è fondamentale.

Previsione (ensemble_predict, genera_numeri_attendibili):

Ensemble Prediction:
La funzione ensemble_predict è corretta.

Filtro Duplicati: La funzione filtra_duplicati è utile per evitare ripetizioni.

Generazione Numeri Attendibili: La funzione genera_numeri_attendibili è molto importante perché combina le previsioni del modello con i numeri storici in base all'attendibilità. Questa è una strategia intelligente.

Valutazione (valuta_attendibilita, valuta_accuratezza_previsione, ecc.):

Metriche:
Il calcolo di diverse metriche (MAE, MSE, RMSE, R², accuratezza con tolleranza, ecc.) fornisce una valutazione completa.

Attendibilità: La funzione valuta_attendibilita fornisce un punteggio di attendibilità e un commento, il che è molto utile per l'utente.

Probabilità di Vincita: La funzione calcola_probabilita_vincita fornisce un'analisi statistica interessante.

Qualità Complessiva: La funzione valuta_qualita_previsione fornisce una valutazione complessiva della qualità della previsione.

Visualizzazione (mostra_grafico, visualizza_accuratezza):

Grafici:
La generazione di grafici (andamento della loss, distribuzione dei numeri, accuratezza per tolleranza, ecc.) è molto utile per comprendere le prestazioni del modello.

Matplotlib: L'uso di matplotlib è appropriato per la visualizzazione.

Toolbar: L'aggiunta della toolbar (NavigationToolbar2Tk) è una buona pratica.

Gestione Best Model: Ottima la gestione del best model tramite salva_info_modello e get_best_model_info.

Aggiornamento Estrazioni: La funzione esegui_aggiornamento è importante per mantenere i dati aggiornati.

Gestione chiusura: Corretta la gestione della chiusura dell'applicazione.

Possibilita di caricare e valutare il Miglior Modello

Lo spunto ovviamente da Lottopython, saturno e Tom che ringrazio infinitamente.

Ci saranno ulteriori sviluppi?...si....Aggiungero qualche altro modulo in piu' ma in primis faccio qualche miglioria e verifica...

Vi allego qualche immagine

Ciao a tutti.
 

Allegati

  • Screenshot 2025-03-10 144336.png
    Screenshot 2025-03-10 144336.png
    46,1 KB · Visite: 2
  • Screenshot 2025-03-10 144350.png
    Screenshot 2025-03-10 144350.png
    28,9 KB · Visite: 2
  • Screenshot 2025-03-10 144406.png
    Screenshot 2025-03-10 144406.png
    36,9 KB · Visite: 2
  • Screenshot 2025-03-10 144429.png
    Screenshot 2025-03-10 144429.png
    126,7 KB · Visite: 2
  • Screenshot 2025-03-10 144645.png
    Screenshot 2025-03-10 144645.png
    165,9 KB · Visite: 2

Ultima estrazione Lotto

  • Estrazione del lotto
    sabato 08 marzo 2025
    Bari
    60
    39
    23
    28
    17
    Cagliari
    02
    69
    40
    50
    65
    Firenze
    29
    64
    30
    71
    31
    Genova
    72
    02
    77
    73
    15
    Milano
    61
    29
    21
    08
    36
    Napoli
    60
    36
    53
    05
    66
    Palermo
    74
    58
    68
    15
    20
    Roma
    87
    10
    08
    52
    84
    Torino
    46
    08
    62
    59
    77
    Venezia
    24
    78
    65
    70
    21
    Nazionale
    28
    82
    76
    30
    14
    Estrazione Simbolotto
    Firenze
    20
    13
    37
    24
    08
Indietro
Alto