2016-06-27 30 views
7

Contesto:Qual è la differenza tra adattamento parziale e avvio a caldo?

Sto usando passivo Aggressor dalla libreria scikit e confuso se utilizzare avvio a caldo o in forma parziale.

sforzi finora:

  1. rinviato questa discussione discussione:

https://github.com/scikit-learn/scikit-learn/issues/1585

  1. passati attraverso il codice scikit per _fit e _partial_fit.

Le mie osservazioni:

  1. _fit a sua volta chiama _partial_fit.

  2. Quando warm_start è impostato, _fit chiama _partial_fit con self.coef_

  3. Quando _partial_fit viene chiamato senza coef_init parametro e self.coef_ è impostato, continua a utilizzare self.coef_

Domanda:

mi sento entrambi sono in ultima analisi, fornendo la stessa functionalities.Then, qual è la differenza fondamentale tra di loro? In quali contesti, vengono utilizzati entrambi?

Mi manca qualcosa di evidente? Qualsiasi aiuto è apprezzato!

risposta

0

Informazioni sulla differenza. Inizio a caldo è solo un attributo di classe. Adattamento parziale è il metodo di questa classe. Sono fondamentalmente cose diverse.

Informazioni sulle stesse funzionalità. Sì, l'adattamento parziale utilizzerà self.coef_ perché è ancora necessario aggiornare alcuni valori durante il periodo di addestramento. E per vuoto coef_init abbiamo appena messo zero valori a self.coef_ e andare al prossimo passo di allenamento.

Descrizione.

Per il primo avvio: Qualunque sia la modalità (con o senza avvio a caldo).Ci alleneremo su coefficienti zero, ma in questo modo risparmieremo la media dei nostri coefficienti.

N + 1 inizio:

Con avvio a caldo. Controlleremo tramite il metodo _allocate_parameter_mem i nostri coefficienti precedenti e portiamolo ad allenarsi. Di conseguenza, risparmiamo i nostri coefficienti medi.

Senza avviamento a caldo. Metteremo coefficienti zero (come prima partenza) e andiamo alla fase di allenamento. Di conseguenza, continueremo a scrivere i coefficienti medi nella memoria.