La domanda
Faccio fatica a capire come la previsione viene mantenuta entro l' intervallo quando si esegue la classificazione binaria con Gradient Boosting.
Supponiamo di lavorare su un problema di classificazione binaria e la nostra funzione oggettiva è la perdita del log, , dove è la variabile target e è il nostro modello attuale.
Quando si allena il prossimo studente debole tale che il nostro nuovo modello sia , qual è il meccanismo che dovrebbe mantenere ? O, forse una domanda più pertinente, esiste un tale meccanismo?
Maggiori informazioni su cosa sto facendo
Sto cercando di implementare il potenziamento del gradiente, usando alberi di regressione. Quello che faccio per evitare è che moltiplica per un fattore , in modo tale che non scenda al di sotto di zero o al di sopra uno e seleziono la in questo intervallo che minimizza la funzione di perdita. c ∈ [ 0 , c max ] H + c max h c
Questo porta il seguente problema: dopo alcuni round, ho un punto che è perfettamente classificato e la migliore divisione disponibile per spingere il classificatore nella direzione del gradiente vuole spingere questo punto sopra uno, che mi assicuro non accada impostazione . Pertanto, tutte le iterazioni successive selezioneranno la stessa divisione e la stessa .c = 0
Ho provato pratiche di regolarizzazione comuni
- Diminuendo il tasso di apprendimento moltiplicando per \ mu = 0,01 . Questo ritarda solo il problema.μ = 0,01
- Sottocampionando lo spazio delle caratteristiche, ma alcuni punti sono molto facili da classificare, spuntano quasi tutte le caselle del "è un positivo?" forma, e quasi ogni "buona divisione" mostra questo comportamento.
Penso che questo non sia un problema di parametri, e ci dovrebbe essere un modo più sano per risolvere questo problema. Non sto scartando la possibilità che la mia implementazione venga interrotta, ma non ho trovato nulla che risolva questo problema.
Ciò che stiamo manipolando, nel contesto della perdita logistica, dovrebbe essere una probabilità, quindi come possiamo evitarlo?
La mia intuizione sarebbe quella di mettere il modello che stiamo costruendo, , in una funzione sigmoidea tale che sia limitato a , e immagino che funzionerebbe, ma voglio sapere se ci sono altre soluzioni. Poiché il potenziamento del gradiente sembra essere utilizzato con successo nelle attività di classificazione, dovrebbe esistere una soluzione "corretta" (cioè con giustificazione).[ 0 , 1 ]