xgboost : 최근 샘플에 더 중요


22

xgboost로 데이터를 분석 할 때 최신 포인트에 중요성을 더할 수있는 방법이 있습니까?

답변:


9

여러 xgboost 모델을 빌드하여 일부 최신 데이터로 제한 한 다음 그 결과에 가중치를 적용 할 수 있습니다. 또 다른 아이디어는 최근의 포인트에 더 큰 불이익을주는 맞춤형 평가 메트릭을 만들어 더 중요하게 만드는 것입니다.


4
OP는 단순히 최근 관측치에 더 높은 샘플 가중치를 부여 할 수 있습니다. xgboost
Ricardo Cruz

30

시간 레이블을 기준으로 가중치를 xgb.DMatrix에 추가하기 만하면됩니다. 다음 예제는 R로 작성되었지만 동일한 원칙이 Python 또는 Julia의 xgboost에 적용됩니다.

data <- data.frame(feature = rep(5, 5),
                   year = seq(2011, 2015), 
                   target = c(1, 0, 1, 0, 0))
weightsData <- 1 + (data$year - max(data$year)) * 5 * 0.01

#Now create the xgboost matrix with your data and weights
xgbMatrix <- xgb.DMatrix(as.matrix(data$feature), 
                         label = data$target, 
                         weight = weightsData)

답변 주셔서 감사합니다-코딩 된 예제를 보는 것이 정말 도움이됩니다. 가중치 함수 계수의 크기가 모델에 어떤 영향을 줍니까? xgboost 문서를 살펴 보았지만 이러한 숫자 값의 중요성에 대한 정보를 찾을 수 없습니다.
kilojoules

이 트릭을 몰랐어요. xgboost doc에는이 기능에 대한 약간의 정리가 setinfo()있지만 그 설명은
그리 어렵지

12

파이썬에는 멋진 scikit-learn 래퍼가 있으므로 다음과 같이 작성할 수 있습니다.

import xgboost as xgb
exgb_classifier = xgb.XGBClassifier()
exgb_classifier.fit(X, y, sample_weight=sample_weights_data)

더 많은 정보를 얻을 수 있습니다 : http://xgboost.readthedocs.io/en/latest/python/python_api.html#xgboost.XGBClassifier.fit



1
xgb.XGBClassifier()코드의 두 번째 줄에 있어야 하지만 stackexchange는 6 자 미만의 편집을 허용하지 않습니다 ...
Andre Holzner
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.