이제 모델링에 부적절한 일부 변수를 무시하는 작업이다.
IDs and Outputs
앞에서도 언급했듯이 risk 변수는 아웃풋 변수이다.
이 변수는 모델링에서 할 역할이 없다.
항상 조심해야 하는데 아웃풋 변수를 모델링에 인풋으로 넣는 점이다.
입문자가 흔히 저지르기 쉬운 실수 중 하나다.
> igonre <- union(id, if(exists("risk")) risk) // union : 합집합(중복되는 값 제외)
어떤 관찰 결과에도 일정한 값을 가지는 변수가 없는지 확인해야 한다.
이런 것들은 종종 식별자이고 만약 그렇다면 이 또한 무시해야할 대상이다.
(ids <- which( sapply(ds, function(x) length(unique(x))) == nrow(ds)))
// sapply return the simplest data object, such as vector or matrix instead of list.
// sapply select columns meeting the condition
// nrow return the number of rows
## date
## 1
> ignore <- union(ignore, names(ids))
[1] FALSE FALSE FALSE
All Missing
다음으로 전체 값이 측정되지 않은 변수를 제거한다.
각각의 변수의 missing values(결측값) 의 수를 카운트한 다음, missing values 를 가진 변수명을 나열한다.
> mvc <- sapply(ds[vars], function(x) sum(is.na(x)))
// is.na(x) : x값들이 NA이면 TRUE 아니면 FALSE를 리턴하는 함수로, sum은 TRUE를 1, FALSE를 0으로 카운트한다.
> mvn <- names(which(mvc == nrow(ds))) // 100% 수준
> ignore <- union(ignore, mvn)
Many Missing
70% 이상의 결측만 보이는 변수에 대해서만 무시.
> mvn <- names(which(mvc >= 0.7*nrow(ds))) // 70% 수준
> ignore <- union(ignore, mvn)
'프로그래밍 Programming' 카테고리의 다른 글
Data Preparation (9) - Clean (Deal with Missing Values) (0) | 2014.11.29 |
---|---|
Data Preparation (8) - Clean (Ignore MultiLevel, Constants) (0) | 2014.11.29 |
Data Preparation (6) - Review (Variable Roles) (0) | 2014.11.29 |
Data Preparation (5) - Review (Data Formats) (0) | 2014.11.28 |
Data Preparation (4) - Review (Meta Data Cleansing) (0) | 2014.11.28 |