2012-08-30 5 views
5

は、なぜそれがなぜScikit GradientBoostingClassifierで最小二乗回帰を使用できないのですか?</p> <pre><code>raise ValueError("``n_classes`` must be 1 for regression") ValueError: ``n_classes`` must be 1 for regression </code></pre> <p>、それは<code>loss='deviance'</code>と完璧に動作します:

GradientBoostingClassifier(loss='ls') 

がで失敗していることだろうか?

私はscipy-learn-0.11とUbuntu 64ビットのscipy-0.11.0rc1を使用しています これはバイナリクラス 'YES' 'NO'でデータセットを分類していました。

+2

最小自乗回帰は回帰(http://en.wikipedia.org/wiki/Regression_analysis)であり、勾配ブースティング分類器は分類用です(http://en.wikipedia.org/wiki/Classification_in_machine_learning)。 – alfa

答えて

6

これはGradientBoostingClassifierのバグです。それは、分類のための最小二乗損失関数を公開してはならない。代わりに "deviance"ロスト関数を使用してください。

ご迷惑をおかけして申し訳ございません。

PS:分級に実際に最小二乗損失が必要な場合は、私に連絡してください。将来のリリースでこの機能を使用することができます。

+1

この問題を公開しました:https://github.com/scikit-learn/scikit-learn/issues/1085 –

+0

この問題はリリース0.12で修正されています –

関連する問題

 関連する問題