トレーニングセットに負のy値がない場合、勾配ブースティング回帰は負の値を予測するのはなぜですか?


8

私は木の数を増やすと学ぶscikitさんGradientBoostingRegressor、私は私のトレーニングやテストセットには負の値が存在しないにもかかわらず、多くの負の予測を取得します。私は約10の機能を持っていますが、そのほとんどはバイナリです。

私が調整していたパラメーターのいくつかは次のとおりです。

  • 木/反復の数;
  • 深さを学ぶ;
  • そして学習率。

負の値のパーセンテージは、最大で2%のようです。学習深度1(切り株)は、負の値の最大の%を持っているように見えました。このパーセンテージは、ツリーが多く、学習率が小さいほど増加するように見えました。データセットは、kaggle遊び場コンテストの1つからのものです。

私のコードは次のようなものです:

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
コードとデータの再現可能な例の可能性はありますか?
Spacedman 2014年

2
どの遊び場の競争ですか?
TheAxeR 2014年

回答:


8

一般に、回帰モデル(any)は、トレーニングサンプルが及ぶドメインを超えて任意の方法で動作できます。特に、モデル化された関数の線形性を自由に想定できるため、たとえば、ポイントを使用して回帰モデルをトレーニングするとします。

X     Y
10    0
20    1
30    2

負の値f(x) = x/10-1x<10返すモデルを作成するのが妥当です。

同じことがデータポイントの「中間」にも当てはまります。関数の想定される柔軟性(特定の方法でモデル化できる)により、「トレーニングサンプルから」値が得られる可能性は常にあります。

これについて別の方法で考えることができます。「負の値の特別なところは何ですか?」と言うと、存在の存在に驚かされずに、負の値の存在が奇妙である(トレーニングセットで提供されていない場合)のはなぜですか。 ..値2131.23?そのような方法で開発されない限り、どのモデルも、正の値と「異なる」負の値を扱いません。これは、他の値として達成できる実際の値の自然な要素です。


一連の質問に関しては、負の値の前に「-」が付いているか、グラフ上で明らかにゼロ未満になっているため、純粋に負の値が異常であると識別しやすいと思います。問題は、「なぜ勾配ブースティング回帰が以前に見られなかった値を予測するのか」と同じくらい簡単かもしれません。たぶんあなたはそれを拡張しようとすることができますか?それは確かに私からの賛成票を獲得するでしょう。
ジョシュ

@lejlot-一般的に言って、これは真実ではありません。ロジスティックまたはtanhアクティベーションを使用した回帰モデルでは、多くの場合、出力が一定の範囲内にあることが保証されています。
user48956 2016年

@ user48956回答は「任意の方法で動作する可能性がある」と述べていますが、一部の制約を強制できないとは主張していません。もちろんできます-「データに依存する」制約がないと回答するだけです(これを含む非常に具体的なモデルがない限り)ビルトイン構造)-これをエキスパートとして手動で追加する場合-それはあなた次第です。
lejlot 2016年

5

GradientBoostingRegressor(二乗誤差損失関数を想定)は、回帰ツリーを前の段階の残差に連続的に当てはめることを覚えておいてください。ここで、ステージiのツリーが特定のトレーニング例のターゲット変数より大きい値を予測する場合、その例のステージiの残差は負になるため、ステージi + 1の回帰ツリーは負のターゲット値に直面します。 (これはステージiからの残差です)。ブースティングアルゴリズムがこれらすべてのツリーを合計して最終予測を行うので、トレーニングセットのすべてのターゲット値が正であったとしても、これが負の予測になる可能性がある理由を説明できると私は信じています。多くの場合、木の数を増やします。


これが正解です。
hahdawg
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.