4

現在、gbm.fit モデルを使用して、R で adaBoost モデルを適合させようとしています。私はできる限りのことを試しましたが、最終的に私のモデルは [0,1] の範囲外の予測値を与え続けます。type = "response" はベルヌーイでのみ機能することを理解していますが、0,1 のすぐ外側の値を取得し続けています。何かご意見は?ありがとう!

GBMODEL <- gbm.fit(
               x=training.set,
               y=training.responses,
               distribution="adaboost",
               n.trees=5000,
               interaction.depth=1,
               shrinkage=0.005,
               train.fraction=1,
               )

predictionvalues = predict(GBMODEL, 
                  newdata=test.predictors,
                  n.trees=5000,
                  type="response")
4

2 に答える 2

2

損失関数として「adaboost」を選択するgbmパッケージで[0,1]外のy範囲を取得することは正しいです。トレーニング後、adaboost は出力の符号によってカテゴリを予測します。

たとえば、バイナリ クラスの問題 y{-1,1} の場合、クラス ラベルは出力 y の符号に署名されます。したがって、y=0.9 または y=1.9 を取得した場合、同じ結果が得られます。観測は y=1 クラスに属します。ただし、y=1.9 は y=0.9 よりも信頼性の高い結論を示唆しているだけです。(理由を知りたい場合は、adaboost のマージンベースの説明を読むことをお勧めします。SVM でも非常によく似た結果が得られます)。

これがあなたを助けることを願っています。

于 2013-03-27T01:26:14.693 に答える
-1

これは数学的に完全に正確ではないかもしれませんが、pnorm( 予測値) を実行したところ、0 から 1 の値が得られます。

于 2012-09-23T21:23:12.630 に答える