2016-06-22 5 views
2

spark (scala api)에서 xgboost를 사용하고 있습니다. 나는 다음과 같은 매개 변수를 사용하여 내 모델을 훈련 해요 : Spark에서 xgboost의 잘못된 확률

val params = List("eta" -> "0.1", "max_depth" -> "2", 
        "silent" -> "1", "objective" -> "binary:logistic").toMap 
XGBoost.train(trainRDD, params, 10, 10) 

은 그럼 점수를 두 predict 기능을 제공합니다. 하나는 DMatrix이고 드라이버에서는 로컬로 작동하며 하나는 RDD[Vector]이며 분산 모드로 작동하는 드라이버입니다.

동일한 테스트 데이터 집합에 대해이 두 함수는 다른 값을 반환합니다. 즉, 로컬로 작동하는 값은 -1.23 또는 1.34와 같은 값을 반환하지만 다른 하나는 0.21 또는 0.71을 반환합니다. 두 번째 것은 0과 1 사이의 확률을 반환하지만 첫 번째 것은 다른 것을 반환합니다.

누군가가이 내용을 자세히 설명해 주시겠습니까?

답변

1

문제점을 발견했습니다. 로컬로 출력 마진 값을 조작하는 predict 기능. 즉, 우리는 확률을 얻기 위해 그 값에 물류 변환을 적용해야합니다.