본문 바로가기
빅데이터 학습자료/03. 데이터분석_R

[빅데이터분석기사_실기] 3. 결측치 처리/기출문제 풀이

by OBIG 2021. 11. 12.

안녕하세요, 여러분 :) 이제 드디어 기출 문제를 함께 풀어보겠습니다. 

단, 꼭 앞 2개의 실습을 진행해보시고 넘어오시길 바랍니다. 꼭이요! ! ! 

 


2021년 2회 실기 기출문제 풀이 

 

[2021년 2회 실기 작업형 제 1유형 문제 12] 

주어진 데이터의 첫 번째 행부터 순서대로 80%까지의 데이터를 훈련데이터로 추출 후

'total_bedrooms'변수의 결측값(NA)을 'total_bedrooms' 변수의 중앙값으로 대체하고

대체 전의 'total_bedrooms'변수 표준편차 값과 대체 후의 'total_bedrooms'변수 표준편차 값의 차이의 절댓값을 구하시오. 

 

여러분이 이 문제를 풀기 위해서는 3가지를 알고 계셔야 합니다. 

1) 데이터 추출 방법 

2) 기초 함수 (중앙값, 표준편차, 절댓값) 

3) 결측치 대체 방법 

 

현재까지 본 블로그에서는 3번만 학습을 진행했었는데요, 추후 자세히 다루도록 하겠습니다. 

여러분들은 보시면서 쭉 따라오시고 모르고 있는 부분을 체크해두셨다가 보완하시면 도움이 되실거에요. :-) 

 


일단 기본 데이터를 가지고 쉬운 문제를 풀어보겠습니다. (꼭 연습하세요.)

 

1) 데이터 불러오기 및 확인 

 

-필요한 데이터는 R 내장 데이터인 airquality입니다. 

-airquality 데이터 중 결측치를 포함하고 있는 Ozone 변수의 결측값 대체 전후 통계량 차이를 살펴볼게요. 

-결측값 대체는 평균값으로 하겠습니다. mean() 함수를 이용하겠죠? 

 

-이전 시간에 Solar.R 변수의 결측치를 제거하여 현재 Ozone 변수만 결측치가 있습니다. 

 

2) Ozone 변수 중앙값 구한 후, 결측치 처리 전 표준편차 구하기 

-Ozone 변수의 평균값을 결측치를 제외하고(na.rm=T) 연산한 후,  mean_ozone 변수에 할당합니다. 

 

-결측치 처리 전 표준편차를 계산하여 sd_before 변수에 할당합니다. 

 

-표준편차 함수는 sd()로 간단하게 구할 수 있습니다. 

 

3)ifelse 조건문 활용하여 결측치를 평균값으로 대체하기

 

-ifelse 조건문을 활용하여 결측치를 평균값으로 대체합니다. 

 

-ifelse 조건문이 잘 이해가 안되신다면 지난 자료를 꼭 참고하세요. (매우 상세하게 풀어놓았습니다.) 

 

4)결측치 처리 후 표준편차 구하고, 전 후의 통계량 차이 출력하기 

-결측치가 평균값으로 대체된 Ozone 변수의 표준편차를 다시 계산하여 sd_after 변수에 할당합니다. 

 

-통계량 차이를 파악하기 위해서 sd_after - sd_before 값을 sd_diff 변수에 할당합니다. 

 

-print 함수를 이용하여 값을 출력합니다. 

 


 

[2021년 2회 실기 작업형 제 1유형 문제 12] 

주어진 데이터의 첫 번째 행부터 순서대로 80%까지의 데이터를 훈련데이터로 추출 후

'total_bedrooms'변수의 결측값(NA)을 'total_bedrooms' 변수의 중앙값으로 대체하고

대체 전의 'total_bedrooms'변수 표준편차 값과 대체 후의 'total_bedrooms'변수 표준편차 값의 차이의 절댓값을 구하시오. 

 

필요한 데이터 : housing.csv (캐글 데이터입니다. 다운로드 받은 후 워킹 디렉토리에 넣고 실습 시작하세요.)

워킹디렉토리를 모르시는 분은 온라인 강의를 먼저 듣고 오세요. 1강에 있습니다. 

housing.csv
1.36MB

 

 

1) 데이터 다운로드 후 데이터 파악

- 실습 데이터 (housing.csv) 다운로드 후 data에 할당

 

- 데이터 요약 : 우리가 활용할 total_bedrooms에 결측치가 207건 있는 것을 확인할 수 있습니다. 

 

2) 데이터 샘플링 (훈련 데이터 80%, 평가 데이터 20%)  *이 부분은 일단 따라오세요! ! 

-데이터를 분할합니다. 

 

-data_train : 훈련 데이터 (80%) 

 

-data_test : 평가 데이터 (20%) 

 

-훈련데이터로 문제를 풀 것이기 때문에 data_train과 data_train$total_bedrooms 데이터를 살펴봅니다. 

 

3) 중앙값 구하고, 결측치 제거 전 표준편차 계산 

-중앙값은 median() 함수로 구할 수 있습니다. 결측치를 제외하고 중앙값을 구한 후 data_median에 할당합니다. 

 

-결측치 제거 전 표준편차를 구합니다. 

 

4) 결측치 중앙값 대체, 표준편차 구하고 결측치 처리 전 후 표준편차 통계량 차이 출력 

-ifelse 조건문을 통해 결측치를 중앙값으로 대체합니다. 

 

-결측치가 대체된 데이터의 표준편차를 구합니다. 

 

-차이를 계산하여 sd_diff에 할당한 후 print() 함수를 통해서 값을 출력합니다. 

 


여기까지 잘 따라오셨으면 결측치 관한 문제는 잘 푸실 수 있으실거에요. 화이팅입니다. :-) 

다음 내용은 결측치 처리만큼이나 중요한 이상치에 대해서 공부해보도록 하겠습니다. 

 

 

문의사항 및 강의 문의는 댓글 또는 bigdataleader@naver.com 으로 문의주세요.