2016-04-27 9 views
11

Sto usando this LDA package per R. In particolare sto cercando di fare supervised latent dirichlet allocation (slda). Nel pacchetto collegato, c'è una funzione slda.em. Tuttavia ciò che mi confonde è che richiede parametri alpha, eta e varianza. Per quanto ho capito, ho pensato che questi parametri fossero sconosciuti nel modello. Quindi la mia domanda è, l'autore del pacchetto ha inteso dire che si tratta di ipotesi iniziali per i parametri? Se sì, non sembra esserci un modo per accedervi dal risultato dell'esecuzione di slda.em.R Supervision Latent Dirichlet Allocation Package

Oltre alla codifica dei passaggi EM aggiuntivi nell'algoritmo, esiste un modo suggerito per indovinare valori ragionevoli per questi parametri?

risposta

3

Poiché si sta tentando di generare un modello supervisionato, l'approccio tipico consisterebbe nell'utilizzare la convalida incrociata per determinare i parametri del modello. Quindi tieni alcuni dei dati come set di test, forma un modello sui dati rimanenti e valuta le prestazioni del modello, ripetendo k volte. Quindi si continua a ripetere con diversi parametri del modello per determinare quale risultato si ottiene nella migliore prestazione del modello.

Nel caso specifico di slda, eseguo demo(slda) per vedere l'implementazione dell'autore. Quando esegui la demo, vedrai che imposta alpha=1.0, eta=0.1 e variance=0.25. Suggerirei di utilizzarli come punto di partenza e quindi utilizzare la convalida incrociata per determinare i parametri migliori se è necessario migliorare le prestazioni del modello.

+0

Stai dicendo che il pacchetto LDA citato sopra * non * ha un'opzione per cercare i parametri alpha, eta e varianza (a differenza dell'algoritmo EM nella carta collegata)? Effettuare la convalida incrociata come suggerito sarebbe estremamente lento, a meno che non si abbia un suggerimento su come riciclare le uscite di ogni passaggio. Suppongo che forse i parametri "iniziali" nel modello potrebbero aiutare questo? –

+0

Non ho molta familiarità con questo pacchetto, ma non ho visto alcun accenno a trovare i parametri per te. Non è l'opzione predefinita: puoi vedere che guardando i risultati della demo cambiando i parametri iniziali, si ottengono risultati diversi. Non sono sicuro di cosa intenda per "ricicla gli output di ogni passaggio", ma è vero che il CV può richiedere molto tempo se ci sono molti parametri da cercare. – Tchotchke

+0

@AlexR. Puoi fornire un campione di dati e un po 'più di dettaglio sul tuo obiettivo finale? Ciò renderebbe più semplice fornire una soluzione di codice di esempio. Ci sono almeno due pacchetti in R che possono essere usati per eseguire LDA. Uno è il pacchetto di modelli tematici sviluppato da Bettina Grün e Kurt Hornik e il secondo lda, sviluppato da Jonathan Chang, che lei ha menzionato usando. – Technophobe01

Problemi correlati