Messaggio di errore per la rete neurale con righe di convalida mancanti: suggerisci una soluzione alternativa?Ciao comunità,
Sto testando diversi modelli come parte del ciclo JSL in JMP 16, utilizzando diverse colonne di convalida per determinare come i valori R2 cambiano a seconda dei dati utilizzati. Ogni colonna di convalida contiene un sottoinsieme dei dati, con alcuni dati mancanti all'inizio e/o alla fine della colonna.
Altri modelli, come Bootstrap, funzionano bene semplicemente ignorando i valori mancanti, ma la rete neurale continua a generare un messaggio di errore (riprodotto sul set di dati campione JMP, CrimeData).


Posso aggirare il problema includendo una colonna filtro, impostando tutti i valori mancanti su 0 e non eseguendoli. Ma questo richiederà una colonna filtro per ogni colonna di convalida (o la creazione/eliminazione dinamica di una colonna a ogni iterazione).

Neural(
Y( :Murder Rate ),
X(
:Robbery Rate, :"Agg-Aslt Rate"n, :Burglary Rate, :Larceny Rate,
:MVTheft Rate
),
Validation( :Validation ),
Informative Missing( 0 ),
Fit( NTanH( 3 ) ),
Where( :Filter == 1 )
)
Qualcun altro ha riscontrato questo problema e ha trovato una soluzione? Grazie!
Fusione e pulizia dei datiModellazione predittiva e apprendimento automaticoRi: Messaggio di errore per rete neurale con righe di convalida mancanti - Suggerisci una soluzione alternativa?CIAO @c_blanken ,
Sembrerebbe che la colonna di convalida non stia riempiendo tutte le righe perché stai stratificando la colonna di convalida su qualche altra colonna con dati mancanti. La mia ipotesi è che JMP non sappia come gestire quelle righe nella colonna di convalida perché mancano dati.
Hai intenzione di modellare un risultato in cui hai dati mancanti? In caso contrario, potresti prendere in considerazione l'esclusione di quelle righe in cui mancano i dati: questo è essenzialmente ciò che stai facendo con la colonna del filtro, ma escludendo quelle righe, non hai bisogno di una nuova colonna del filtro per ogni colonna di convalida testata . Puoi anche impostare facilmente lo stato della riga come Exclude in JSL in modo che sia automatizzato e non devi farlo manualmente.
Se hai ancora bisogno di modellare i dati in cui hai dati mancanti, allora potresti considerare di non stratificare su nessuna colonna e di generare casualmente colonne di addestramento/convalida. JMP assegnerà ogni riga al set di dati appropriato anche se mancano dati.
Spero che questo ti aiuti!,
DS
Ri: Messaggio di errore per rete neurale con righe di convalida mancanti - Suggerisci una soluzione alternativa?CIAO @c_blanken ,
Solo per aggiungere alcuni commenti/osservazioni all'ottima risposta di @SDF1 .
- Perché hai alcune righe che hanno valori mancanti per quanto riguarda la colonna di convalida? Sono stati aggiunti dopo la creazione della colonna?
- Non sono sorpreso di vedere che la piattaforma "Bootstrap Forest" è in grado di gestire i valori mancanti nella colonna di convalida, poiché questo modello utilizza campioni bootstrap dei dati di addestramento per adattarsi a molti alberi decisionali. Le reti neurali e altri metodi utilizzano i dati "così come sono" e quindi potresti incontrare il messaggio di avviso che ricevi.
Invece di creare diverse colonne di convalida per valutare l'influenza della variabilità del training set sulle prestazioni del modello, potrebbero esserci (almeno) altre 2 opzioni interessanti per te:
1. Crea una "formula" Colonna di convalida (jmp.com) invece della colonna di convalida "fissa":

Questo approccio ha due vantaggi:
- Anche nel caso di convalida stratificata/raggruppamento, consentirà di aggiungere automaticamente l'etichetta di addestramento/convalida o test nella colonna di convalida per le nuove righe aggiunte, a seconda del metodo di stratificazione/raggruppamento e del rapporto tra questi set che hai utilizzato.
- Nella modellazione, puoi anche provare più facilmente diversi ricampionamenti tra set di addestramento e convalida, facendo clic con il pulsante destro del mouse sulle metriche delle prestazioni che desideri valutare con vari set di addestramento e convalida, fai clic su "Simula" e qui avrai l'opzione per attivare e disattivare la colonna di convalida:

In questo modo otterrai un datatable con tutte le simulazioni effettuate su vari set di addestramento e validazione, e potrai tracciare la variabilità delle prestazioni ottenuta con queste simulazioni (qui per R² sul set di dati giocattolo "Boston Housing" con Random Forest):

2. Usa il Piattaforma di screening dei modelli (jmp.com) piattaforma con solo il modello che vuoi selezionare e il metodo di convalida che desideri (K-fold, K-fold nidificati, con l'opzione per ripeterli o colonna di convalida) e avvialo. Avrai accesso al riepilogo dei risultati, ma anche ai risultati delle singole piegature:

Quando si seleziona ad esempio una piega per eseguire il modello (qui ho provato con fold3), nel datatable verrà visualizzata anche una nuova colonna, per sapere quali righe in questa piega sono state utilizzate come addestramento o convalida (0: Training, 1: Convalida):

Penso che questi metodi possano esserti utili, con meno lavoro manuale e maggiore flessibilità.