수색…


0 또는 0에 가까운 편차가있는 지형지 물 제거

차이가 거의 0 인 기능은 제거하기 좋은 후보입니다.

자신의 한계 값 이하의 수치 차이를 수동으로 감지 할 수 있습니다.

data("GermanCredit")
variances<-apply(GermanCredit, 2, var)
variances[which(variances<=0.0025)]

또는 캐럿 패키지를 사용하여 거의 제로 분산을 찾을 수 있습니다. 여기서 장점은 분산의 수치 계산이 아닌 희소성의 함수 인 제로에 가까운 분산을 정의한다는 것입니다.

"nearZeroVar는 하나의 고유 한 값 (즉, 제로 분산 예측 변수) 또는 다음 두 가지 특성을 모두 갖는 예측자를 예측합니다. 샘플 수와 가장 일반적인 값의 빈도에 대한 고유 값이 거의 없습니다 두 번째로 가장 일반적인 값의 빈도가 크다 ... "

library(caret)
names(GermanCredit)[nearZeroVar(GermanCredit)]

NA가 높은 기능 제거

지형지 물에 데이터가 거의없는 경우 지우는 것이 좋습니다.

library(VIM)
data(sleep)
colMeans(is.na(sleep))

   BodyWgt   BrainWgt       NonD      Dream      Sleep       Span       Gest 
0.00000000 0.00000000 0.22580645 0.19354839 0.06451613 0.06451613 0.06451613 
      Pred        Exp     Danger 
0.00000000 0.00000000 0.00000000 

이 경우 NonD와 Dream을 제거하기를 원할 수 있습니다. 각각의 값은 약 20 %가 손실됩니다 (컷오프는 다를 수 있음)

밀접하게 상호 연관된 기능 제거

밀접하게 상호 연관된 기능은 모델에 차이를 추가 할 수 있으며 상관 관계가있는 쌍 중 하나를 제거하면이를 줄일 수 있습니다. 상관 관계를 탐지하는 데는 여러 가지 방법이 있습니다. 여기에 하나 있습니다 :

library(purrr) # in order to use keep()

# select correlatable vars
toCorrelate<-mtcars %>% keep(is.numeric)

# calculate correlation matrix
correlationMatrix <- cor(toCorrelate)

# pick only one out of each highly correlated pair's mirror image
correlationMatrix[upper.tri(correlationMatrix)]<-0  

# and I don't remove the highly-correlated-with-itself group
diag(correlationMatrix)<-0 

# find features that are highly correlated with another feature at the +- 0.85 level
apply(correlationMatrix,2, function(x) any(abs(x)>=0.85))

  mpg   cyl  disp    hp  drat    wt  qsec    vs    am  gear  carb 
 TRUE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE 

나는 MPG가 무엇과 밀접하게 연관되어 있는지 살펴보고, 무엇을 지키고 무엇을 던져야 할지를 결정하고자합니다. cyl 및 disp와 동일합니다. 또는 강력하게 상호 연관된 일부 기능을 결합해야 할 수도 있습니다.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow