Domanda sulla funzione di penalità di cresta nella regressione generalizzataI nostri clienti hanno alcune domande sulla regressione generalizzata, in base alla loro esperienza precedente, vogliono usare "Ridge" come funzione di penalità per costruire il modello perché non vogliono perdere l'effetto di nessuna variabile, "Rete elastica" o " La funzione di penalità lazo” non è adatta in questo caso.
Tuttavia, il cliente di solito analizzava i dati dello spettro con molte variabili (alcuni dati contengono 4500 variabili con 65 righe), ci è voluto molto tempo e non è possibile ottenere il risultato quando si utilizza "Ridge" come funzione di penalità.
Ho inviato la domanda al supporto JMP, hanno provato il campione che ho fornito (in allegato, circa 2400 variabili e 65 osservazioni) su Macchina Windows 10, con 16 GB di RAM e 4 core.E JMP è andato in modalità "Non risponde" per la prima ora, ma poi ha prodotto una barra di avanzamento. Ci è voluto molto tempo per ottenere il risultato della cresta (4,5 ore), anche cambiare il punto della griglia a 50.
Confronta con il metodo Elastic net o Lasso, quelli durano circa 2 ~ 3 minuti, c'è una grande differenza di tempo tra Elastic net/Lasso e Ridge
Inoltre, il cliente ha anche affermato che Python può eseguire la regressione generalizzata con "Ridge" come funzione di penalità più rapidamente.
È possibile accelerare il processo di adattamento del modello? Qualcosa come il caricamento completo della CPU?O un'altra caratteristica/piattaforma adatta può aiutare il cliente a ottenere una stima più efficiente?
Ho allegato anche i dati di esempio. Grazie
Re: Domanda sulla funzione di penalità della cresta nella regressione generalizzataFWIW, ho una scatola di Windows 10 con 32 core e 128 GB di RAM. Non sono sicuro di cosa trarrà vantaggio da JMP, ma sarei felice di provare a ottenere un altro benchmark se può essere d'aiuto. Ma i dettagli contano (soprattutto se ci vogliono cinque ore per una corsa...).Quindi potresti postare la sceneggiatura per fare la regressione della cresta, per favore? Non l'ho visto nella tabella.
Re: Domanda sulla funzione di penalità della cresta nella regressione generalizzata@Eric_Wang Alcune implementazioni di Ridge Regression in Python richiedono la standardizzazione delle variabili di input. La standardizzazione delle variabili potrebbe accelerare i tempi di risoluzione dei coefficienti. Non sono sicuro che la routine di JMP esegua automaticamente una sorta di standardizzazione per gli input, ma puoi sperimentare se la standardizzazione delle variabili di input ~ 4500 consente un tempo di calcolo più rapido.
Re: Domanda sulla funzione di penalità della cresta nella regressione generalizzataSembra un caso in cui dovremmo usare la rete elastica.In casi come questo in cui ci sono molti più predittori che osservazioni, la grande preoccupazione quando si effettua la selezione delle variabili è che la collinearità e la ridondanza ci faranno perdere i predittori che contano veramente. Se X1 e X2 sono altamente correlati, è probabile che qualcosa come la selezione diretta ne scelga solo uno. La forza della rete elastica è che selezionerà gruppi di predittori correlati, quindi X1 e X2 in questo caso. La mia ipotesi è che in questa situazione "non voglio perdere l'effetto di nessuna variabile" in realtà significa che non vogliono perdere alcun effetto che potrebbe avere un impatto reale. La rete elastica è costruita per questo scenario esatto.
Allora perché il lazo e l'elastico sono molto più veloci della regressione della cresta qui? Poiché eseguono la selezione delle variabili, i calcoli della rete elastica e del lazo coinvolgono solo una manciata di predittori mentre la regressione della cresta esegue l'ottimizzazione su tutte le 2400 variabili specificate. È anche importante notare che il lazo e la rete elastica tendono entrambi a dominare la regressione della cresta in termini di qualità di adattamento e interpretazione, quindi abbiamo fatto sforzi per migliorare i tempi di calcolo per gli installatori di lazo e reti elastiche. Non siamo stati in grado di dare priorità a miglioramenti simili per la regressione della cresta.
Re: Domanda sulla funzione di penalità della cresta nella regressione generalizzataGrazie, Ian, ho modificato e ricollegato i dati di esempio con lo script nell'area script di esso, denominata "Test Ridge", puoi eseguire lo script per testare.
Re: Domanda sulla funzione di penalità della cresta nella regressione generalizzataCiao Eric,
Un altro suggerimento che il tuo cliente può provare sono i minimi quadrati parziali e in questo caso è PLS-DA.La piattaforma consente la selezione delle variabili, ma utilizza tutte le variabili nel primo passaggio del processo di modellazione. È abbastanza veloce e potrebbe essere utile per il confronto dei modelli per vedere quale piattaforma di modellazione offre la migliore vestibilità complessiva.

Detto questo su PLS, sono con Clay su questo.Ho usato Gen Reg per analizzare diversi set di dati spettrali e Elastic Net è al primo posto nella creazione di un buon modello predittivo con set di dati così ampi.
Distinti saluti,
Conto
Re: Domanda sulla funzione di penalità della cresta nella regressione generalizzataGrazie, @nick_shelton , Hai ragione, provo alcuni dati che variano con una scala diversa e ho scoperto che una volta standardizzati prima di eseguire la cresta, è possibile risparmiare un po 'di tempo per ottenere il risultato (nel mio caso di test, è possibile risparmiare il 60% di tempo impiegato). Sebbene richieda ancora più tempo rispetto a Elastic net e Lasso, penso che possa risparmiare tempo per quelle variabili con intervalli di valori diversi.
Re: Domanda sulla funzione di penalità della cresta nella regressione generalizzataGrazie, @Bill_Worley e @clay_barker , il tuo suggerimento e la tua spiegazione sono molto utili. Cercherò di convincere il mio cliente a provare prima il metodo Elastic Net o PLS per questo caso.
Re: Domanda sulla funzione di penalità della cresta nella regressione generalizzataGrazie, Eric. Ho eseguito il tuo script "Ridge Test" e ci sono voluti 35.000 secondi (circa 9,5 ore!). Sospetto che la macchina che hai menzionato abbia una velocità di clock più elevata:

Era così povero che non mi sono preoccupato di approfondire i dettagli (in genere uso metà della RAM per un disco e non mi sono preoccupato di cambiarlo).
Re: Domanda sulla funzione di penalità della cresta nella regressione generalizzataGrazie per il tuo tempo e aiuto, Ian.
Re: Domanda sulla funzione di penalità della cresta nella regressione generalizzataCiao @clay_barker , grazie per la risposta, ho alcune domande da verificare con un esperto GR come te. Il nostro cliente vuole sapere che hai qualche suggerimento su come "evitare" di utilizzare Ridge come metodo di penalità, quando si analizzano i dati su quante variabili o osservazioni?Inoltre, solo per curiosità, suggerisci loro di analizzare quei dati dello spettro tramite FDE? Grazie.
Re: Domanda sulla funzione di penalità della cresta nella regressione generalizzata@ian_jmp , ecco il Tech Support Track, 7613489182 . Potresti trovare quello che stai cercando lì dentro.
CC: @Adam Morris , @clay_barker