Modellazione delle partizioni: cosa determina la suddivisione delle dimensioni minime?Non sono uno statistico di fatto, ma ho acquisito molta esperienza in biostatistica nel corso di molti anni, grazie soprattutto all'utilizzo della versione standard di JMP (attualmente v13). Di certo non riesco a immaginare di utilizzare qualcos'altro e promuoverlo regolarmente.
Attualmente sto progressivamente definendo le partizioni in una varietà di variabili continue per ottimizzare il risultato in una variabile categorica binomiale (fallimento contro superamento). Ho letto e guardato molto riguardo a questa piattaforma e capisco la necessità di includere la convalida e di limitare il numero di covariate a un breve elenco pratico ma logico.
Tuttavia, la suddivisione della dimensione minima è un parametro di cui non sono sicuro. La mia intenzione è definire partizioni che minimizzino, forse addirittura mitighino completamente, il fallimento nella variabile risultato. La partizione risultante sembra dipendere fortemente dalla dimensione/proporzione di suddivisione minima scelta. La mia sensazione è che si dovrebbe scegliere una dimensione il più grande possibile (sforzandosi verso il 50%) tenendo d'occhio i valori LogWorth generati da ogni divisione. Penserei che una dimensione divisa troppo piccola potrebbe essere analoga al rischio di un errore di tipo II. Come allora, oltre a quanto ho suggerito, si determina quale proporzione usare?
Inoltre, e presumo che il modello di partizione non stia prendendo in considerazione la correzione per confronti multipli, perché il valore p equivalente di LogWorth per la divisione iniziale non corrisponde al risultato esatto di Fisher quando si salva la divisione risultante ed esegue un'analisi di contingenza 2x2?
Miscelazione e pulizia dei datiModellazione predittiva e Machine LearningRi: Modellazione delle partizioni: cosa determina la suddivisione della dimensione minima?Caro DS
Ancora una volta, grazie per la tua risposta dettagliata che è stata molto utile. Devo ammettere che, nonostante sia abbastanza abile come programmatore in Filemaker, non ho mai esplorato veramente JSL ma questo è forse l'incentivo di cui ho bisogno per farlo. Per quanto riguarda R ^ 2, ne ero consapevole e certamente monitoro la cronologia delle divisioni rispetto a questo coefficiente. Fortunatamente mi sono imbattuto nell'uso poco pubblicizzato delle righe escluse per la convalida, che sembrava molto controintuitivo rispetto a ciò a cui si è abituati durante il normale funzionamento.
Ri: Modellazione delle partizioni: cosa determina la suddivisione della dimensione minima?CIAO @34Sud ,
XGBoost è davvero potente e molto stabile. Se lo riesegui più volte, ottieni la stessa risposta, il che non è sempre il caso della foresta bootstrap o dell'albero potenziato.
ho trovato questo sito web per essere MOLTO utile su come mettere a punto XGBoost e migliorare i modelli. E, poiché è scritto per le persone che eseguono Python, dovresti essere a posto.
Hai preso in considerazione l'idea di creare script per le tue routine di adattamento in modo da poter automatizzare parte del processo e lasciar correre senza supervisione? Potrebbe essere più veloce nel lungo periodo. Lo faccio durante la ricerca nello spazio dei parametri di ottimizzazione per le altre piattaforme basate su alberi in JMP, spesso eseguendo più di 30k di calcoli. A seconda della piattaforma, possono essere necessarie 8-10 ore buone, ma lo lascio funzionare mentre faccio altre cose.
Dovrai sicuramente monitorare il tuo R ^ 2 per l'addestramento e la convalida per assicurarti di non sovradimensionare i dati. Sto provando a eseguire alcuni modelli ora, ma sto scoprendo che finora con le piattaforme Neural Net e GenReg, sta tornando con R ^ 2 che sono più grandi per il set di convalida rispetto al set di addestramento, il che è un grande avvertimento cartello. Personalmente, penso che sia a causa del set di dati che ho e della distribuzione altamente non normale dei dati.
Una cosa molto bella dell'impostazione dei dati di test messi da parte: rimuovere effettivamente quei dati dalla tabella dei dati di addestramento, quindi non c'è modo che JMP possa accedervi durante l'esecuzione dell'adattamento. Ho avuto l'esperienza prima che anche se ho nascosto ed escluso determinate righe, i dati sono stati ancora utilizzati durante la convalida incrociata, quindi quando si confronta un grafico effettivo rispetto a quello previsto per il set di dati di test sembrava migliore di quanto non fosse in realtà perché alcuni di i dati del test venivano utilizzati nella formazione.
DS
Ri: Modellazione delle partizioni: cosa determina la suddivisione della dimensione minima?Caro DS
Grazie per la tua risposta dettagliata. Purtroppo non ho la versione Pro ($$$). L'approccio che ho adottato nel frattempo è stato quello di specificare il 20% per la convalida e quindi iniziare con una suddivisione minima della dimensione del 45%. Se ciò fallisse, lo ridurrei dal 5% al 40% e così via fino a raggiungere una divisione. Lo metterei quindi a punto con incrementi dell'1% verso l'alto, ma lo limiterei a dove il valore LogWorth indicava il significato. In alternativa, imposterei la suddivisione sul numero di errori nel set originale, o leggermente superiore, per ottenere il posizionamento del 100% dei casi non riusciti in uno dei sottoinsiemi risultanti definiti dalla suddivisione. Prendo il tuo punto di vista riguardo a un set di test e cercherò di farlo a condizione che rimangano numeri sufficienti per la convalida e l'addestramento. Ho provato XGBoost dopo aver installato Python, ma c'è una curva di apprendimento per farlo funzionare.
Ri: Modellazione delle partizioni: cosa determina la suddivisione della dimensione minima?CIAO @34Sud ,
Hai JMP Pro o accedi a JMP Pro? Chiedo perché la piattaforma di partizione non è l'approccio migliore (più stabile) per generare formule di previsione. Le piattaforme Boosted Tree e Boostrap Forest sono molto migliori. Oppure, se hai accesso a versioni superiori, puoi anche eseguire la piattaforma XGBoost, che è molto stabile.
Ma passiamo alla tua domanda sulla divisione minima delle dimensioni. Le divisioni di dimensioni minime controllano la complessità del "ceppo" dell'albero. Se il numero di osservazioni in una suddivisione è inferiore al valore impostato, non viene generata alcuna suddivisione. Non è troppo rilevante quando usi il potenziamento nel tuo albero decisionale, ma può essere usato per controllarlo. Non lo vuoi troppo piccolo (es. 1 osservazione) e nemmeno troppo grande (es. 1000 osservazioni). Un buon punto di partenza tipico sarebbe di circa 5 per un semplice metodo ad albero. Se stai usando qualcosa come la piattaforma bootstrap forest, ti consigliamo di usare N/2 per gli schemi di classificazione come stai usando, dove N è il numero di osservazioni. Potresti essere in grado di mettere a punto il tuo modello regolando questo parametro e quindi confrontandolo con i diversi modelli su un set di dati di test.
Se disponi di dati sufficienti, ti consiglio di suddividere una parte, forse il 20-25%, e di conservarla come set di dati di test che non viene utilizzato per addestrare o convalidare il tuo modello. Con i dati rimanenti, puoi generare una colonna di convalida stratificata con dati di addestramento e convalida (ad esempio 80/20) per ottimizzare la complessità del tuo modello, evitando al contempo l'overfitting. Dopo aver generato diversi modelli, puoi utilizzare i dati del test precedente come metodo per confrontare quale modello è effettivamente migliore nel prevedere correttamente i risultati. Poiché stai cercando un modello decisionale binario, puoi persino ottimizzarlo ulteriormente osservando l'apprendimento sensibile ai costi.
Non sono un esperto nel modo in cui JMP calcola il valore del registro o il test esatto di Fischer, quindi spero che qualcuno di JMP possa rispondere, ma immagino che abbia a che fare con l'intero set di dati e il calcolo del valore del registro rispetto a quando si salva la formula di divisione e fare una tabella di contingenza.
Spero che questo aiuti - o almeno dia alcune cose a cui pensare.
Buon modellismo!,
DS