2017-02-19 4 views
0

데이터 프레임에 "0"과 "1"플래그가있는 열이 많이 있습니다. 그들은 데이터 프레임을 가져올 때 클래스 "정수"에 속합니다.Xgboost - 정수가 0 & 1 만인 경우 계수로 변환해야합니까?

0은 부재를 나타내고 1은 모든 열에 존재 함을 나타냅니다.

내가 fators로 변환해야합니까?

나중에 예측 모델을 구축 할 xgboost 사용하려면 [현재 그들은 거의 정수 불구하고 0 & 1 유사하지만 요소는 레벨 1 & 2를 만들 것입니다]. Xgboost는 숫자 열에서만 작동하므로 열을 factor로 변환하면 숫자로 변환하기 위해 열을 인코딩해야합니다.

(측면 질문 : 우리가 공선 성을 제거하기 위해 하나의 뜨거운 인코딩을 할 경우 우리는 항상 하나 개의 열을 삭제해야합니까)

+0

하지 권리 포럼을 사용합니다. [Cross Validated] (http://stats.stackexchange.com)를 사용해보십시오. –

+0

알려 주셔서 감사합니다. – Aman

+0

나는 @ KarthikArumugham과 다르다는 것을 간청한다. 이것은 SO의 범위에 속하는 프로그래밍 문제이다. – abhiieor

답변

0

짧은 대답은 : 따라 다릅니다. 네, 더 나은 변수 해석을 위해서. 아니요 0/1 변수는 정수 및 요소 모두 동일합니다.

당신이 내 개인적인 의견을 묻는다면, 나는 예스쪽으로 나아갑니다. 문자열 값 또는 0과 1 이외의 2 개 이상의 정수 수준을 갖는 일부 범주 변수를 가질 확률이 높기 때문에 0/1 변수 정수와 인수 모두가 동일하지 않습니다. 0/1 2 진수 레벨의 특정 경우에만; 정수 변수 및 요소는 동일합니다. 따라서 코딩의 일관성을 유지하고 심지어 0/1 경우에도이를 채택하고자 할 수도 있습니다.

자신을 참조하십시오 :

여기
a <- c(1,2,1,2,1,2,5) 
c<-as.character(a) 
b<-as.factor(c) 
d<-as.integer(b) 

난 그냥 결국 나에게주는 a 벡터, 함께 연주하고있다 : 당신이 값이 변화하는 이유를 디버깅하지 않으려면 그래서

> d 
[1] 1 2 1 2 1 2 3 

을 앞으로는 as.factor()을 사용하십시오.

답안 : 예. 및 contrasts.arg을 검색하여 R로 처리하십시오.

0

오류는 xgb.DMatrix이 데이터가 정수인 숫자 값을 사용한다고 설명합니다.

train[] <- lapply(train, as.numeric) 

숫자 사용

로 데이터를 변환 한 다음이 물어

xgb.DMatrix(data=data.matrix(train))