2016-09-26 5 views
1

저는 Caret에서 GBM의 두 가지 파생어를 사용하고 있습니다. 나는 동일한 데이터 세트에서 algo를 시도했지만 서로 다른 정확도를 반환하고 서로 다른 시간에 수행합니다. 이름으로, 나는 처음에는 Linear 함수를 어딘가에서 사용하고 다른 하나는 트리를 사용한다고 생각할 수 있습니다. 어쨌든, 트리가 아닌 선형을 사용하는 곳을 이해하지 못합니다. GBM 알고리즘이 트리를 예측 자로 사용한다는 것을 알고 있습니다. 첫 번째 사례는 교육과 같이 다른 구조를 사용합니까? 이 주제에 관한 문서는 어디에서 찾을 수 있습니까?캐럿 xgbLinear 및 xgbTree

감사

답변

5

당신은 모델에 대한 모든 코드가 위치한 캐럿 GitHub의 페이지에 별도의 models에 대한 자세한 내용을 확인할 수 있습니다. 캐럿 문서는 here입니다.

그러나 당신이 2 개 개의 모델 사이에 사용되는 매개 변수의 차이에주의해야합니다

  • xgbLinear 사용 :
  • xgbTree 사용 nrounds, 람다, 알파, ETA : nrounds, MAX_DEPTH, ETA, 감마, colsample_bytree, min_child_weight

이러한 선택 사항은 모델 결과에 영향을 미치며 다른 예측 결과가 발생합니다. 따라서 정확도도 다릅니다. xgboost에서 사용할 수있는 다른 옵션은 xgboost의 기본 설정과 함께 사용됩니다.

캐럿 모델에는 dotdotdot (...) 옵션이 있습니다. 따라서 gammaxgbLinear으로 설정하려면 train 기능에서 지정할 수 있습니다. 그러나 그리드 매개 변수에는 없습니다. 다른 모든 xgboost 매개 변수에도 동일하게 적용됩니다.

(아주 나쁜) 예 :

grid = expand.grid(nrounds = c(10,20), lambda= c(0.1), alpha = c(1), eta = c(0.1)) 
train(Species ~ ., data = iris, method = "xgbLinear", tuneGrid = grid, gamma = 0.5)