2012-05-16 3 views
4

현재 gbm.fit 모델을 사용하여 R에 adaBoost 모델을 맞추려고합니다. 내가 할 수있는 모든 것을 시도했지만 결국에는 내 모델이 [0,1] 외부의 예측 값을 계속 제공합니다. 나는 type = "response"가 bernoulli에 대해서만 작동한다는 것을 이해하지만, 나는 0,1의 바깥에서 값을 계속 얻는다. 이견있는 사람? 감사!adaBoost ~ predict() 값이 [0,1] 외부에있는 GBM입니다.

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") 
+0

y 범위는 무엇입니까? 우리에게'summary (training.responses)'를 보여주세요. – smci

답변

2

손실 기능으로 "adaboost"를 선택한 gbm 패키지로 [0,1] 외부의 y 범위를 얻는 것이 정확합니다. 교육을받은 후 adaboost는 출력의 부호로 카테고리를 예측합니다.

예를 들어, 이진 클래스 문제인 y {-1,1}의 경우 lable 클래스는 출력 y의 부호에 서명됩니다. 따라서 y = 0.9 또는 y = 1.9를 얻으면 동일한 결과를 얻을 수 있습니다. 관측 값은 y = 1 클래스에 속합니다. 그러나 y = 1.9는 y = 0.9보다 더 확신 할 수있는 결론을 제시합니다. (이유를 알고 싶다면 마진 기반의 설명을 읽으라고 제안합니다. SVM과 비슷한 결과를 얻을 수 있습니다).

희망이 도움이 될 수 있습니다.

-1

이 수학적으로 완전히 정확하지 않을 수 있습니다,하지만 난 그냥 pnorm (예측치)했고, 당신은 에이다 부스트 값이 정상에 조정을 한 것으로 나타났습니다 예상하기 때문에, (0,1) 0에서 1까지의 값을 얻을 .

+0

나는 이것이 옳다고 생각하지 않습니다. –

관련 문제