Perché la regressione di Gradient Boosting prevede valori negativi quando non ci sono valori y negativi nel mio set di allenamento?


8

Mentre aumenta il numero di alberi in scikit imparare s' GradientBoostingRegressor, ho previsioni più negative, anche se non ci sono valori negativi nella mia formazione e testing set. Ho circa 10 funzioni, la maggior parte delle quali binarie.

Alcuni dei parametri che stavo sintonizzando erano:

  • il numero di alberi / iterazioni;
  • profondità di apprendimento;
  • e tasso di apprendimento.

La percentuale di valori negativi sembrava al massimo a ~ 2%. La profondità di apprendimento di 1 (ceppi) sembrava avere la percentuale maggiore di valori negativi. Questa percentuale sembrava anche aumentare con più alberi e un tasso di apprendimento più piccolo. Il set di dati proviene da una delle competizioni del parco giochi Kaggle.

Il mio codice è simile a:

from sklearn.ensemble import GradientBoostingRegressor

X_train, X_test, y_train, y_test = train_test_split(X, y)

reg = GradientBoostingRegressor(n_estimators=8000, max_depth=1, loss = 'ls', learning_rate = .01)

reg.fit(X_train, y_train)

ypred = reg.predict(X_test)

1
Qualche possibilità di un esempio riproducibile con codice e dati?
Spacedman il

2
che competizione di giochi è?
TheAxeR,

Risposte:


8

In generale, i modelli di regressione (qualsiasi) possono comportarsi in modo arbitrario al di là del dominio esteso dai campioni di addestramento. In particolare, sono liberi di assumere la linearità della funzione modellata, quindi se ad esempio si allena un modello di regressione con punti:

X     Y
10    0
20    1
30    2

è ragionevole costruire un modello f(x) = x/10-1, che x<10restituisce valori negativi.

Lo stesso vale "tra" i tuoi punti dati, è sempre possibile che a causa della presunta familiarità delle funzioni (che può essere modellata con un metodo particolare) otterrai valori "dai tuoi campioni di allenamento".

Puoi pensarci in un altro modo - "cosa c'è di così speciale nei valori negativi?", Perché trovi strana l'esistenza di valori negativi (se non forniti nel set di addestramento) mentre non ti allarmi dall'esistenza di diciamo. .. valore 2131.23? A meno che non sia stato sviluppato in questo modo, nessun modello tratterà valori negativi "diversi" rispetto a quelli positivi. Questo è solo un elemento naturale dei valori reali che possono essere raggiunti come qualsiasi altro valore.


Per quanto riguarda la tua serie di domande, penso che sia puramente che i valori negativi siano più facili da identificare come anomalie perché hanno quel "-" davanti a loro o vanno chiaramente sotto lo zero sui grafici. La domanda potrebbe essere altrettanto facilmente: "Perché la regressione di Gradient Boosting prevede valori mai visti prima?". Forse potresti provare ad espanderci? Ti farebbe sicuramente ottenere un voto positivo da parte mia.
Josh,

@lejlot - In generale, questo non è vero. I modelli di regressione con attivazioni logistiche o tanh sono spesso garantiti con output entro alcuni limiti.
user48956

@utente48956 afferma che "può comportarsi in modo arbitrario", non sto affermando che non puoi forzare alcuni vincoli, ovviamente puoi - rispondi solo afferma che non esiste un vincolo "dipendente dai dati" (a meno che tu non abbia un modello molto specifico che ha questo costruito in costruzione) - se lo aggiungi manualmente come esperto - dipende da te.
lejlot,

5

Ricordare che GradientBoostingRegressor(assumendo una funzione di perdita dell'errore al quadrato) si adatta successivamente gli alberi di regressione ai residui della fase precedente. Ora, se l'albero nello stage i prevede un valore maggiore della variabile target per un particolare esempio di allenamento, il residuo dello stage i per quell'esempio sarà negativo, e quindi l'albero di regressione allo stadio i + 1 dovrà affrontare valori target negativi (quali sono i residui della fase i). Poiché l'algoritmo di potenziamento aggiunge tutti questi alberi per fare la previsione finale, credo che questo possa spiegare perché potresti finire con previsioni negative, anche se tutti i valori target nel set di allenamento erano positivi, specialmente mentre hai detto che questo accade di più spesso quando aumenti il ​​numero di alberi.


Questa è la risposta corretta
hahdawg,
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.