Ho bisogno di addestrare un modello di regressione su una vasta serie di esercizi , con la possibilità di incorporare funzionalità arbitrarie. Quali algoritmi di apprendimento dovrei prendere in considerazione e perché?Quali algoritmi di apprendimento dovrei prendere in considerazione per addestrare un modello di regressione log-lineare?
un breve riassunto del problema:
- circa 5 milioni di esempi di addestramento
- Aggiunta di esempi di addestramento ad un tasso del 2-4 milioni all'anno
- esempi di formazione attualmente contengono 10 Caratteristiche ciascuno
- Caratteristiche approssimatamente 400k popolate (di uno spazio molto più grande di funzionalità totale)
- Funzioni aggiuntive aggiunte nel tempo
- Riqualificazione o adattare il modello (almeno) al giorno per incorporare nuovi esempi
- criteri di ottimizzazione: minimo quadrato errore percentuale
- uscita: un unico numero a valori reali
ho una certa esperienza di formazione log- modelli lineari su problemi di classificazione di dimensioni simili (usando SVM, Perceptrons medi e votati, ecc.) La possibilità di aggiungere funzionalità arbitrarie è importante, ma in questo caso anche il tempo di addestramento è prezioso.
Ad esempio, il mio unico esperimento finora con SVMLight ha richiesto diverse settimane per convergere su un sottoinsieme di questi dati. Potremmo parallelizzare attraverso una macchina multicore o (eventualmente) un cluster, ma abbiamo bisogno di formare modelli in pochi minuti. La formazione online sarebbe ancora meglio.
Ho addestrato un modello Perceptron medio con successo (e rapidamente). Tuttavia, per quanto ne so, l'AP non viene normalmente applicato alla regressione. L'AP offre garanzie di convergenza per un modello di regressione? C'è un'altra ragione formale per cui non dovrebbe essere applicabile? O è una corrispondenza ragionevole per le mie esigenze?
Quali altre opzioni devo ricercare? Un SVM probabilmente offrirebbe un'accuratezza superiore, ma il tempo di addestramento quadratico non è accettabile. Se gli algoritmi SVM a tempo lineare sono accessibili, potrebbe funzionare bene.
potenziali vantaggi:
- formazione online
- implementazione open-source disponibili (idealmente in Java). Se necessario, possiamo implementare la nostra implementazione, ma se possibile eviterò ciò.
Grazie per il vostro input.
Per la classificazione, ho avuto molto successo con SVM a discesa con gradiente stocastico (http://leon.bottou.org/projects/sgd#) - si potrebbe voler considerare l'adattamento per la regressione. – etarion