Quale primo: benchmarking dell'algoritmo, selezione delle caratteristiche, regolazione dei parametri?


11

Quando provo a fare ad esempio una classificazione, il mio approccio attualmente è quello di

  1. provare prima vari algoritmi e confrontarli
  2. eseguire la selezione delle funzioni sul miglior algoritmo da 1 in alto
  3. ottimizzare i parametri utilizzando le funzioni e l'algoritmo selezionati

Tuttavia, spesso non riesco a convincermi che potrebbe esserci un algoritmo migliore di quello selezionato, se gli altri algoritmi sono stati ottimizzati con il miglior parametro / le funzionalità più adatte. Allo stesso tempo, fare una ricerca in tutti gli algoritmi * parametri * caratteristiche richiede troppo tempo.

Qualche suggerimento sul giusto approccio / sequenza?

Risposte:


8

Suppongo che intendi la selezione delle funzionalità come ingegneria delle funzionalità . Il processo che seguo di solito e vedo che alcune persone lo fanno

  1. Ingegneria delle caratteristiche
  2. Prova alcuni algoritmi, in genere quelli ad alte prestazioni come RandomForest, Gradient Boosted Tree, Neutral Networks o SVM sulle funzionalità.

    2.1 Effettuare una semplice regolazione dei parametri come la ricerca della griglia su una piccola gamma di parametri

Se il risultato del passaggio 2 non è soddisfacente, tornare al passaggio 1 per generare più funzionalità o rimuovere funzionalità ridondanti e conservare quelle migliori, le persone di solito chiamano questa selezione di funzionalità . Se esaurisci le idee per le nuove funzionalità, prova altri algoritmi.

Se il risultato è corretto o vicino a quello che desideri, vai al passaggio 3

  1. Ampia messa a punto dei parametri

La ragione per fare questo è che la classificazione è tutta basata sull'ingegnerizzazione delle funzionalità e, a meno che non si conosca un incredibile classificatore potente come il deep learning personalizzato per un particolare problema, come Computer Vision. Generare buone funzionalità è la chiave. La scelta di un classificatore è importante ma non cruciale. Tutti i classificatori sopra menzionati sono abbastanza comparabili in termini di prestazioni e, il più delle volte, il miglior classificatore risulta essere uno di questi.

L'ottimizzazione dei parametri può aumentare le prestazioni, in alcuni casi, abbastanza. Ma senza buone funzionalità, la messa a punto non aiuta molto. Tieni presente che hai sempre tempo per l'ottimizzazione dei parametri. Inoltre, non ha senso ottimizzare ampiamente i parametri, quindi scopri una nuova funzionalità e ripeti il ​​tutto.


2

Ehi, ho appena visto la tua domanda. È COMPLETAMENTE SBAGLIATO fare prima la selezione delle caratteristiche e poi ottimizzare il modello usando la validazione incrociata. In elementi di apprendimento statistico e in questo post sul blog si dice chiaramente che: il metodo CV è imparziale solo se tutto il tuo modello è realizzato all'interno del ciclo CV. Quindi fai la selezione delle caratteristiche all'interno del loop CV per la regolazione dei parametri. Può essere fatto facilmente usando l'involucro del filtro nel pacchetto MLR in R.


1

Ho già risposto a una domanda simile qui . Il processo sarebbe:

  • Trasformazione e riduzione: coinvolge processi come trasformazioni, ridimensionamento medio e medio, ecc.
  • Selezione funzione: questo può essere fatto in molti modi come la selezione della soglia, la selezione del sottoinsieme, ecc.
  • Progettazione del modello predittivo: progettare il modello predittivo sui dati di allenamento in base alle funzionalità disponibili.
  • Convalida incrociata e messa a punto dei parametri:
  • Previsione finale, convalida

Prova sempre a fare ingegneria delle caratteristiche prima della selezione del modello. Quindi, selezionare il modello in base alle migliori caratteristiche (o le caratteristiche che tendono a influenzare meglio la variabile problema / dipendente).


0

Se sei pronto a passare il tempo a imparare come funziona un nuovo strumento, puoi provare autosklearn. Fa tutto ciò che è necessario per costruire una pipeline ML per te. Preelaborazione, selezione, creazione di ensemble di modelli e messa a punto mediante convalida incrociata. A seconda della quantità di dati disponibili, potrebbe essere o meno un modo più rapido per una buona previsione. Ma è sicuramente promettente.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.