2012-08-30 8 views
5

Perché potrebbe essere chePerché Scikit GradientBoostingClassifier non mi consente di usare la regressione dei minimi quadrati?

GradientBoostingClassifier(loss='ls') 

fallisce con:

raise ValueError("``n_classes`` must be 1 for regression") 
ValueError: ``n_classes`` must be 1 for regression 

e funziona perfettamente con loss='deviance'?

Sto utilizzando scikit-learn-0.11 con scipy-0.11.0rc1 in Ubuntu 64 bit Questo è accaduto classificando un set di dati con classe binaria "SÌ" "NO".

+2

Poiché la regressione dei minimi quadrati è per la regressione (http://en.wikipedia.org/wiki/Regression_analysis) e il classificatore di aumento gradiente è per la classificazione (http://en.wikipedia.org/wiki/Classification_in_machine_learning)? – alfa

risposta

6

Questo è un bug in GradientBoostingClassifier. Non dovrebbe esporre la funzione di perdita dei minimi quadrati per la classificazione. Si prega di utilizzare la funzione di perdita "devianza" invece.

Ci scusiamo per gli inconvenienti causati.

PS: Se hai davvero bisogno di meno perdite al quadrato per la classificazione, contattami e possiamo lavorare su questa funzione per una versione futura.

+1

È stato aperto un problema a questo proposito: https://github.com/scikit-learn/scikit-learn/issues/1085 –

+0

Il problema è stato risolto nella versione 0.12 –