Ciao
Voglio applicare metodi non parametrici come Decision Tree, Random Forest, Naive Bayes, SVM, Neural Network e Boosted Tree sul mio set di dati. Quali passaggi di preelaborazione devo eseguire prima di applicare questi modelli?
Ciao @maryam_nourmand ,
Se stai parlando dell'uso di Crea colonna di convalida con metodi di convalida incrociata K-folds, puoi utilizzare tutti i tuoi predittori (variabili X) nel pannello delle colonne di stratificazione (per assicurarti che le pieghe siano omogenee rispetto alle distribuzioni di X variabili) e le risposte nel pannello Y: JMP ordinerà e distribuirà le righe tra le pieghe in base ai valori di risposta per garantire che le pieghe siano omogenee rispetto alle risposte, evitando apprendimento e valutazione distorti durante la convalida incrociata : avvia la piattaforma Make Validation Column (jmp.com)
Se sono presenti più righe corrispondenti allo stesso ID/gruppo, mantieni questa struttura dati utilizzando queste colonne ID/gruppo nel pannello "Raggruppamento colonne".
Spero che questo risponda alla tua domanda,
Ciao
grazie per la tua risposta
se desidero utilizzare (convalida incrociata K-fold) e il mio tipo di risposta è categorico
quando voglio selezionare la colonna y, dovrei inserire tutti i miei predittori e la mia variabile di risposta o solo la mia variabile di risposta?
Ciao @maryam_nourmand ,
Quando si parla di pre-elaborazione, di solito ci sono diversi passaggi per preparare i dati per l'analisi:
0. Partizionamento dei dati : suddividi i dati in set di training, convalida e test oppure pianifica la convalida (convalida incrociata K-fold, Leave-One-Out, ...) e la strategia di test. Questo dovrebbe essere fatto prima per garantire che qualsiasi trasformazione dei dati che si potrebbe fare in seguito non porti alla perdita di dati, il che significa che una parte delle informazioni dalla validazione e dai set di test dalle fasi di pre-elaborazione può essere trovata durante l'addestramento del modello (intervalli di dati, distribuzione, tecniche di imputazione, ...). Per questo passaggio è possibile utilizzare Crea colonna di convalida (jmp.com) .
- Pulizia dei dati : identifico e correggo errori o incoerenze nel set di dati per garantire che i dati siano di alta qualità e adatti all'analisi o all'addestramento del modello.
- Valori mancanti : possibilità di escludere righe, eseguire l'imputazione dei dati o non fare nulla. Abbi cura di analizzare i tuoi valori mancanti con la piattaforma Explore Missing Values (jmp.com) per verificare se sono MAR (Missing At Random), MCAR (Missing Completely At Random) o MNAR (Missing Not At Random). A seconda del tipo di valori mancanti/dei modelli, alcune opzioni potrebbero essere preferibili rispetto ad altre.
- I modelli basati su alberi sono molto più flessibili rispetto ai valori mancanti rispetto ad altri algoritmi menzionati e possono trattare il valore mancante come informativo: Informative Missing (jmp.com) .
- Per la piattaforma Reti neurali, è possibile selezionare l'opzione "Informativa mancante" all'avvio della piattaforma per abilitare l'imputazione e la codifica dei valori mancanti. Se non selezioni questa opzione, la riga verrà esclusa dall'analisi.
- Naive Bayes non ha problemi con i dati mancanti quando ci sono solo pochi valori mancanti.
- Per impostazione predefinita, SVM escluderà le righe in cui è presente almeno un valore mancante.
- Valori anomali : possibilità di escluderli, bilanciarli/pesarli (con frequenza o tramite trasformazioni) o non fare nulla. Puoi rilevarli utilizzando un'ampia varietà di metodi con la piattaforma Explore Outliers (jmp.com) .
- I modelli basati su albero non sono molto sensibili ai valori anomali, poiché dividono i dati in sezioni/intervalli di dati, quindi non modifica il partizionamento effettuato (sarà nell'intervallo/sezione più alto o più basso, ma non cambierà il valore limite): https://datascience.stackexchange.com/questions/37394/are-decision-trees-robust-to-outliers
- Le reti neurali sono sensibili ai valori anomali, quindi è necessario controllarle e gestirle.
- Naive Bayes e SVM potrebbero essere sensibili ai valori anomali.
- Duplicati : possibilità di escluderli, ridurne la frequenza o non fare nulla. Puoi rilevarli (e altri pattern) utilizzando la piattaforma Explore Patterns (jmp.com) .
- I duplicati possono influenzare tutti gli algoritmi, poiché influenzano l'apprendimento effettuato favorendo o rafforzando modelli specifici trovati nei punti duplicati rispetto ad altri punti. Può anche portare a un overfitting e a una falsa valutazione delle prestazioni del modello se non vengono presi in considerazione durante la suddivisione dei dati in set di training, validazione e test. La metodologia di Machine Learning è molto diversa dalla modellazione statistica, in cui vengono utilizzati duplicati per valutare la varianza e l'incertezza.
- Ridimensionamento/normalizzazione delle variabili : porta tutte le caratteristiche/valori delle variabili in un intervallo simile senza distorcere le differenze negli intervalli di valori, per evitare che le caratteristiche con intervalli ampi prevalgano su quelle con intervalli/variazioni più piccoli.
Ciò è utile per algoritmi basati su distanze o somiglianze, come SVM, KNN, reti neurali, regressione (lineare e logistica) e già eseguiti da JMP per impostazione predefinita (esempio con KNN: https://community.jmp.com/t5/ India-JMP-Users-Group-Library/Modellazione-predittiva-con-apprendimento-automatico-in-JMP-K-Nearest/ta-p/720639 )
I modelli basati su alberi e gli algoritmi basati sulla probabilità come Naive Bayes potrebbero non richiedere il ridimensionamento.
- Gestione dei dati categorici : durante la codifica, è necessario codificare i dati categorici utilizzando la codifica etichetta, la codifica one-hot, la codifica fittizia... Fortunatamente in JMP, questo è già fatto e preparato, non è necessario farlo da soli (esempio con modelli di regressione

Dettagli statistici per la codifica degli effetti nominali (jmp.com)
Fattori ordinali (jmp.com)
Domande e risposte simili da Stackexchange:
machine learning: quali algoritmi necessitano del ridimensionamento delle funzionalità, oltre a SVM? - Convalida incrociata (stackexchange.com)
In che modo i valori anomali e mancanti influiscono su questi classificatori? - Scambio di stack di scienza dei dati
Quindi, come ho già scritto in un altro topic (e su LinkedIn), se vuoi fare un primo test veloce con un algoritmo ML, prova a utilizzare Random Forest:
- Robusto ai valori anomali
- Bassa sensibilità al rumore (l'insaccamento aiuta a ridurre la varianza)
- Meno incline all'overfitting, grazie al bootstrap e alla validazione delle prestazioni "Out-Of-Bag" disponibile (campioni non utilizzati in ciascun campione bootstrap)
- Buone prestazioni di generalizzazione
- Gestisce facilmente situazioni non lineari grazie all'insieme di alberi decisionali in grado di gestire confini non lineari con regole "if-else"
- Controlla la multicollinearità tra le variabili con la selezione casuale del sottoinsieme di funzionalità su ciascun nodo
- Bassa accordabilità: le prestazioni non sono molto sensibili all'ottimizzazione degli iperparametri (vedi il mio ultimo post sull'ottimizzazione degli iperparametri della Random Forest con DoE)
- Capacità di gestire dati sparsi
- Interpretabilità più semplice rispetto ad altri algoritmi (con l'uso dell'importanza delle funzionalità "incorporata")
- Calcolo relativamente veloce ed efficiente (a seconda del numero di alberi e della profondità utilizzata): poiché i singoli alberi sono indipendenti gli uni dagli altri, il processo di training può essere parallelizzato.
Quindi, se stai cercando un algoritmo accurato, robusto, versatile e scalabile con una bassa tendenza all'overfitting per l'analisi dei tuoi set di dati, Random Forest può essere un buon punto di partenza e un punto di riferimento. Inizia sempre prima con gli algoritmi semplici e una buona strategia di convalida per valutare e confrontare i tuoi modelli, prima di passare ad algoritmi complessi come le reti neurali che potrebbero richiedere diversi livelli di convalida (per costruirli e metterli a punto).
Spero che questa lunga risposta ti possa aiutare,