2012-08-30 32 views
5

为什么它可能是为什么Scikit GradientBoostingClassifier不会让我使用最小二乘回归?

GradientBoostingClassifier(loss='ls') 

失败:

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

,并与loss='deviance'完美的作品?

我在scipy-0.11.0rc1中使用了scikit-learn-0.11在Ubuntu 64位 这发生了用二进制类'YES''NO'分类数据集。

+2

由于最小二乘回归用于回归(http://en.wikipedia.org/wiki/Regression_analysis),梯度提升分类器用于分类(http://en.wikipedia.org/wiki/Classification_in_machine_learning)? – alfa

回答

6

这是GradientBoostingClassifier中的一个错误。它不应该暴露最小二乘损失函数进行分类。请改用“偏差”损失函数。

对不起,造成的不便。 PS:如果您确实需要最小平方损失进行分类,请与我联系,我们可以在将来的版本中使用此功能。

+1

为此打开了一个问题:https://github.com/scikit-learn/scikit-learn/issues/1085 –

+0

该问题已在发布0.12中修复 –