2012-04-20 3 views
0

내 데이터는 1,785,000 개의 레코드이며 271 개의 기능이 있습니다. 모델을 빌드하는 데 사용되는 기능의 수를 줄이려고합니다.누락 된 데이터 및 특성 선택

Q1. 데이터를 탐색하는 동안 일부 기능에는 거의 모든 데이터가 누락 된 것으로 나타났습니다. 단 25 개의 레코드가이 기능에 가치가 있고 다른 레코드에는 값이 없어서 유익하지 않으며 그러한 기능을 손상시키는 것이 좋습니다. 권리? 그리고 만약 내가 옳다면, 내가 할 수있는 레벨에 대해 말하자면,이 피쳐들을 제거하기로 결정할 수있을 때, 각 피쳐의 90 %, 80 % 등이 값을 잃어 버렸다면 말입니다. (종속 변수임을 고려하면 N/Y이며 전체 데이터의 % 1.157 만 Y에 속합니다).

2. 데이터 집합의 각 개체에 대해 64 개의 trait_type이 나열되며 각 개체는 [1 또는 3 또는 5] 값 중 하나를 사용할 수 있습니다. 제 질문은 : 일부 특성 유형이 가치를 취하거나 모든 레코드에 대해 dat을 누락했다면 어떤 가치가 있습니까? 아니면 다시 그 특성을 제거 할 수 있습니까?

3. 선택이 이러한 기능을 삭제하는 경우 R에서 data.frame에서 열을 삭제하는 방법?

당신에게

업데이트 감사합니다 나는 변수 선택을 할 caret 패키지를 사용하려고 해요 . 는 I이 적용된 : x 270 개 종속 변수가 Y는 N/Y 값을 갖는 독립 변수의 계수 인 data.frame이다

ctrl<- rfeControl(functions = lmFuncs, method="cv", verbose = FALSE, returnResamp= 
"final") 

lmprofile<- rfe(x,y, sizes = subsets, rfeControl = ctrl) 

. 이 오류가 있습니다.

Error in { : 
    task 1 failed - "contrasts can be applied only to factors with 2 or more levels" 
enter code here 
In addition: There were 11 warnings (use warnings() to see them) 

어떤 도움을 주시겠습니까?

+1

다음은 색인 번호를 사용하여 열을 삭제하는 한 가지 방법입니다. 첫 번째 열을 삭제하는 'dat <- dat [, - 1]'. 'dat-dat [, - (colnames (dat) == "YourColumnName")]'다른 질문은 http://stats.stackexchange.com에서 더 잘 물어볼 수 있습니다. 프로그래밍에 관한 것이 아니기 때문입니다. Q1, 내 추측은 모든 데이터에서 PCA 또는 유사한 데이터 감소/구조 감지를 수행하여 기능 간의 차이에 가장 많이 기여하는 변수를 찾고 이러한 변수를 사용하는 것입니다. Q2, 예, 아마도 예. – Ben

+1

나는 이것을 세 가지 질문으로 나눌 것을 제안합니다. 하지만 질문 3만이 적절합니다. 처음 두 사람은 crossvalidated.com으로 이동해야합니다. –

답변

1

하나의 열에있는 많은 데이터가 누락되었다고해서 열이 예측 적이 지 않음을 의미하는 것은 아니며, 그 열에 동일한 값이 여러 개있는 것과 같습니다.

물론 컷오프가 있습니다. 그 열이 소수의 경우 만 구분할 수 있다면 제거 할 수 있으며 전체 모델 강도에만 조금 영향을 줄 수 있습니다.

열을 유지할지 여부를 결정할 수 있도록 데이터 집합에 해당 열과 종속 변수가 포함되어있는 단 변수 모델을 작성하고 해당 모델의 강도를 확인하십시오. 무작위보다 훨씬 좋지 않으면 칼럼을 떨어 뜨리는 것이 안전 할 것입니다.

관련 문제