modello di distribuzioneCIAO
a tutti.
In allegato 2 file jmp. Quello denominato Training-validation-test è stato utilizzato per creare un modello RF con i seguenti risultati.
Il file contiene una risposta numerica e 20 diversi predittori di cui uno categorico. I predittori sono valori dei sensori.

Come puoi vedere il Bias è molto buono mentre la varianza è leggermente alta (92-69=23%).
Quindi è stato utilizzato un nuovo database con esempi mai visti dal modello per simulare l'implementazione dell'algoritmo su nuovi dati.
Con grande sorpresa, il risultato è stato davvero scarso con un R2 tra la risposta prevista e quella effettiva vicino allo zero. Non siamo riusciti a comprendere questo comportamento. Dopotutto, l'R2=68% per i dati dei test non sembra essere poi così male. Ci aspettavamo quindi di ottenere con certezza un R2 maggiore di zero.
Per favore qualsiasi aiuto/commento è benvenuto.
Felice-Gian
Modellazione predittiva e machine learningCondivisione e comunicazione dei risultatiRi: modello di distribuzioneForse questo può aiutare nella discussione. Ho utilizzato l'eccellente opzione di screening del modello in jmp pro utilizzando l'opzione nidificata per ottimizzare gli iperparametri combinata con la convalida incrociata k-fold. Ecco i risultati ottenuti dopo qualche ora di lavoro con jmp

Ciò che mi ha sorpreso è la grande differenza tra i modelli in termini di prestazioni. I modelli ad albero e KNN hanno mostrato un R2 superiore al 50% mentre tutti i modelli di adattamento hanno mostrato valori ben inferiori al 50% (vicini allo zero) nonostante l'utilizzo della regolarizzazione del lazo e della cresta. Forse è questa differenza che spiega le scarse prestazioni dei modelli RF/potenziati una volta implementati in produzione?
Cosa ne pensi? Qualche commento/suggerimento/aiuto?
Felice.
Ri: modello di distribuzioneSospetto fortemente che tu debba dedicare più tempo alla preparazione dei dati.Per adattare i modelli delle serie temporali, le osservazioni devono essere equidistanti e senza valori temporali duplicati.Hai 4 sensori (?) con risposte distanziate in modo non uniforme.Se vuoi dare un senso a questi dati, credo che tu debba aggregare i valori in modo che ci sia una singola osservazione per ogni periodo di tempo e potresti voler creare una variabile per il periodo di tempo tra le osservazioni cronometrate.Suggerirei anche di eseguire un'analisi separata per ciascun tipo di sensore anziché utilizzare il sensore come una delle funzionalità, poiché il comportamento di ciascuno sembra essere diverso.
Non sarei disposto a concludere che le tue funzionalità non siano predittive: penso che venga introdotto troppo rumore mescolando i tipi di sensori e avendo intervalli di tempo non standard.Se si affrontano questi problemi, potrebbe esserci già un buon modello predittivo.La parte di modellazione non è il problema: la preparazione dei dati lo è (come spesso accade).Almeno questo è quello che penso.
Ri: modello di distribuzioneCiao Dale
purtroppo anche utilizzando la variabile di risposta differenza nessuno dei modelli di regressione è riuscito a restituire un buon risultato.
Quindi a questo punto forse devo supporre che le nostre variabili X non siano buoni predittori della risposta.
Resta comunque il dubbio se per dati come i nostri (dati dei sensori) dobbiamo suddividere l'allenamento/test tenendo conto dell'asse temporale o invece possiamo utilizzare la tecnica del random split. In letteratura ho trovato diversi articoli in cui per i dati dei sensori viene utilizzato il training/test con suddivisione casuale. Se facciamo lo stesso, i risultati sembrano davvero buoni finché non eseguiamo la distribuzione del modello in produzione per capire che il modello è completamente sbagliato. Allora dov'è la verità?
In allegato è possibile trovare un articolo che applica le tecniche di machine learning ad uno strumento per semiconduttori (incisore). Tentano di eseguire una manutenzione predittiva esaminando i dati dei sensori. Quindi i dati dovrebbero essere molto simili a quelli. Se dai un'occhiata alla parte del documento evidenziata in verde sembra che abbiano suddiviso i dati tenendo conto dell'asse temporale e quindi considerando i dati come serie temporali.
Spero che più persone oltre a Dale possano dire la loro e aiutarci a risolvere questo dilemma.
I dati sono o no come le nostre serie multitemporali?
È vero che i predittori X e la risposta Y dipendono dal tempo. Ma se vogliamo prevedere la Y in base ai valori della X perché la variabile tempo dovrebbe essere così importante? Per me la Y dovrebbe dipendere dalle variabili X che vengono impostate automaticamente dalla macchina durante la fase di lavorazione. Naturalmente questo avviene in ordine cronologico, ma il valore X dipende dalla ricetta e dallo stato della macchina. Quindi ho qualche difficoltà ad accettare la dipendenza dal tempo.
Buona Pasqua a tutta la comunità.
Felice
Ri: modello di distribuzioneI modelli di serie temporali non sono il mio punto di forza, quindi spero che qualcuno ti dia una risposta più definitiva.All'inizio non farei differenze tra le caratteristiche: costruirei i modelli e guarderei i residui per vedere se mostrano la stessa autocorrelazione.Se lo fanno, forse proverei a differenziare alcune delle caratteristiche.
Ri: modello di distribuzioneCiao Dale
poiché anche i predittori mostrano lo stesso PACF, pensi che potrebbe essere utile differenziare anche i predittori oltre alla risposta?
Grazie Felice
Ri: modello di distribuzioneIl grafico PACF suggerisce che i primi due ritardi sono quelli rilevanti: di gran lunga, il primo ritardo è il più importante.Quindi, penso che la semplice differenziazione del primo ordine sarebbe una buona cosa da provare.Potrebbe essere possibile che uno dei modelli di apprendimento automatico (ad esempio RF, alberi potenziati, reti neurali) funzioni bene, quindi li proverei.Ma dovresti anche provare alcuni modelli di serie temporali più standard (in cui non utilizzeresti la differenziazione, poiché i modelli di serie temporali sono costruiti per tenere conto dell'autocorrelazione in vari modi).In teoria, se si utilizza la differenziazione del primo ordine (e se ciò elimina in gran parte la struttura temporale), è probabilmente possibile utilizzare un set di test di convalida del treno casuale per la modellazione.Almeno questo è quello che penso: altri potrebbero saperlo meglio.
Ri: modello di distribuzioneCiao George e Dale
Grazie mille per le tue risposte. Dò un'occhiata al diagramma dei ritardi di tutti i predittori e delle risposte e con mia grande sorpresa ho scoperto un'autocorrelazione molto lunga (vedi immagini allegate).
Poiché i dati provengono da una fabbrica di semiconduttori, il valore 25 visibile nell'ACF è correlato al numero di wafer presenti nel lotto.
Le linee dei punti invece nei lag plot rappresentano solo i primi wafer di un lotto diverso caricati nel macgine. Penso che l'autocorrelazione sia dovuta al feedback interno presente nella nostra macchina per mantenere il punto di lavoro. Naturalmente tali aggiustamenti sono nascosti nella camera e non sono sotto il nostro controllo e comprensione. La risposta mostra anche un chiaro ritardo che non riesco a spiegare. Ma c'è.
Ho provato a utilizzare il ritardo, la media mobile, il livellamento e altri predittori, ma i risultati continuano a essere davvero pessimi.
Il prossimo passo voglio provare la differenziazione proposta da Dale. Credi che la semplice differenza X(t)-X(t-1) possa essere sufficiente?
Ciao Felice
Ri: modello di distribuzioneHo un paio di suggerimentiInnanzitutto, proverei prima a differenziare la variabile di risposta e poi a provare nuovamente le foreste casuali.Per me, questo è l'approccio più semplice ai dati delle serie temporali ed è possibile che i dati si comportino meglio se osservati in questo modo.Creerei comunque manualmente il set di convalida come ultimo periodo di tempo anziché una selezione casuale di righe.La seconda idea è qualcosa che hai notato: ci sono raggruppamenti temporali, come osservazioni multiple strettamente collegate nel tempo.Potresti considerare di rendere uniforme la sequenza temporale riassumendo le osservazioni strettamente correlate nel tempo.Le serie temporali si comportano meglio se la variabile temporale viene misurata in modo uniforme, quindi ciò significa che i dati dovranno essere riepilogati in intervalli di tempo equidistanti.Come lei suggerisce, è tempo di tornare a pensare esattamente a cosa viene misurato e a come lo viene misurato.
Ri: modello di distribuzioneNel frattempo credo che non sarò in grado di adattare un modello valido/ragionevole per i dati.
Il mio primo approccio è stato quello di generare una colonna di convalida dichiarata da Xs.
Il suggerimento della serie temporale da @dale_lehman è stato utile, quindi ho guardato anche i dati in serie temporale,
rendendosi conto che con il tempo la combinazione delle X cambia. E anche qui mi sembra che "Nuovo" sia diverso. Sì, gli X coprono la stessa portata, ma non basta. Penso che la combinazione sia diversa in "Nuovo", il che significa che è una sorta di estrapolazione. Questo non sarebbe un problema per la regressione, ma per metodi come RF questo conta (il modello è multidimensionale e altamente non lineare, quindi difficile da guardare all'interno).
D'altro canto non sono riuscito a adattare un modello ragionevole con nessun altro metodo (neurale, Boosted Tree). Mi sembra che non disponiamo delle informazioni adeguate nelle colonne X per costruire un modello solido.
Quindi esaminerei la fisica del processo o qualunque cosa sia,
- come le X possono cambiare la Y,
- quale potrebbe essere il rumore
- e cosa fa cambiare le cose nel tempo e includerlo nel set di dati.
- e sono anche curioso della struttura dei dati, ci sono gruppi di righe con la stessa data e gli stessi valori per alcuni parametri
Ciò che mi ha sorpreso è che, quando ho creato una colonna di validazione stratificata nel tempo, ho ottenuto lo stesso risultato (modello discreto per la prima parte, nessun modello con i nuovi dati).
Buona fortuna,
Ri: modello di distribuzioneOra che guardo più da vicino, vedo che si tratta di dati di serie temporali.Dalle mie prime opinioni, non sembra che il processo sia cambiato in modo significativo.Tuttavia, penso che il problema sia che il paradigma treno-validazione-test non è realmente appropriato per i dati delle serie temporali.Suggerirei di creare un periodo di tempo distinto (ad esempio, l'ultimo mese del primo set di dati) come set di convalida e di rivalutare il modello.La mia ipotesi è che le prestazioni del modello sulla convalida e i dati mai visti prima dovrebbero essere più simili se si stima il modello in questo modo.Sono ancora un po' preoccupato per le differenze evidenti tra le variabili X nei due set di dati: potrebbe richiedere una modellazione delle serie temporali più sofisticata (come la modellazione della potenziale stagionalità).
Ri: modello di distribuzioneCiao Dale e Georg
grazie per la tua risposta.
In realtà le differenze tra le due distribuzioni per ciascun predittore non mi sembrano così diverse (vedi istogrammi nell'immagine allegata. Con bls indichiamo il set Training-Val-Test ed exp il set mai visto dal modello). Forse l'X20 mostra un nuovo picco nei dati mai visti che prima erano assenti. Ma le rimanenti distribuzioni sono solo meno popolate delle precedenti.
Se la distribuzione dei predittori del set di addestramento è più ampia di quella del test, il modello dovrebbe aver "visitato" lo spazio delle fasi occupato dal predittore del set di test. Corretto? Allora perché dovrebbe fare una previsione sbagliata?
Comunque ho confermato (anche se per noi questo è strano) quello che dici prendendo a caso 2000 istanze (invece delle ultime 2000 istanze mai viste dal modello random forest) e una volta addestrato è stato in grado di prevedere correttamente la risposta. Quindi, se una leggera differenza in termini di media/std fa una grande differenza in termini di prestazioni di previsione, come possiamo utilizzare questi modelli nella produzione dove i segnali cambiano continuamente?
Distinti saluti.Felice/Gian
Ri: modello di distribuzioneSono d'accordo @dale_lehman , i nuovi dati sono diversi.
Sono riuscito a adattare un modello simile, lavorando anche male sui nuovi dati.

La matrice del grafico a dispersione che mostra alcuni dettagli, ad esempio X5 che utilizza un intervallo molto piccolo dei dati originali, lo stesso con X11...
In entrambe le immagini sono selezionati i nuovi dati. Forse questo ti aiuta a trovare il motivo per cui c'è una differenza.

Ri: modello di distribuzionePraticamente tutte le variabili X (ad eccezione di X12, X13 e X19) sono significativamente diverse, in media, tra i due insiemi.Quindi, la mia ipotesi sarebbe che i nuovi dati non siano semplicemente un altro campione casuale della stessa popolazione, ma provengano da una popolazione diversa.Non sorprende che il tuo modello, che si adatta abbastanza bene ai dati originali, si comporti così male con i nuovi dati, quando questi nuovi dati provengono da una popolazione diversa.
Suppongo che la domanda da porsi sia: perché proviene da una popolazione diversa?A quanto pare pensavi che i dati provenissero dalla stessa popolazione (o qualcosa di simile).Ma queste variabili devono apparire così diverse tra i due insiemi che tale ipotesi chiaramente non è corretta.
Per vedere le differenze, ho concatenato le 2 tabelle e ho utilizzato semplicemente Adatta Y per X, dove Y sono tutte le variabili X e X è la tabella di origine creata quando le ho concatenate.