-
빅데이터분석기사 실기 준비 - Day 3자격증/빅데이터분석기사 2021. 11. 26. 06:41반응형
4. 변수 변환
- 로그 변환: np.log / 제곱근 변환: np.sqrt
5. 결측치 처리
- 전체 데이터에 대한 결측치 확인 => df.isnull() or pd.isnull(df) or df.notnull() or pd.notnull()
- 변수 별 결측치 개수 확인 => df.isnull().sum() or df.notnull().sum()
- 행 별 결측치 개수 확인 => df.isnull().sum(1)
- 결측값 제거 => df.dropna(0) : 행 제거, df.dropna(1) : 열 제거
- 결측값 대체
- 결측값을 특정 값으로 대체
df.fillna(method='ffill') or df.fillna(method='pad') 결측값을 앞에 있는 값으로 채움
df.fillna(method='bfill') or df.fillna(method='backfill') 결측값을 뒤에 있는 값으로 채움 - 결측값을 변수별 평균으로 대체 => data.fillna(data.mean())
- 결측값을 다른 변수의 값으로 대체
data2['sales']가 결측값이 아니면 sales 값 그대로 사용하고 결측값이면 salary 값 사용 - 결측값을 그룹 평균값으로 대체
다음은 분석자가 지정한 대로 결측값 채우기
변수 별로 대체 방법을 한 번에 적용 (interpolate() 는 보간법)
- 결측값을 특정 값으로 대체
6. 데이터 정제 실전과제
- 먼저 데이터 읽어오기
- describe(), hist() 통해 기술통계량과 히스토그램 확인
히스토그램을 살펴보면 bedrooms, households, rooms가 왼쪽으로 치우쳐저 있고 아주 큰 값을 가지는 이상치가 있음
- bedrooms 변수 세부 검토
bedrooms 가 0.6 이상에서 보임
bedrooms 변수가 0.6 미만인 데이터의 분포 확인
bedrooms가 0.6 이상인 경우의 데이터 개수는 14개 밖에 없음
- households 변수 세부 검토
100 이하가 아닌 10 이하부터 봐도 될듯
22개 밖에 없어서 제거하나 마나
- rooms 변수 세부 검토
20 미만인 경우 자세히 보자
20보다 큰 경우의 데이터개수
- 정제된 데이터셋 생성한 후 기술통계량 확인
- 히스토그램 확인
확인하면 모든 변수들의 분포가 비슷
- 선형회귀 적용
분석 단계
=> 데이터 불러오기 -> describe() or hist() 사용해 기술통계량 분포 확인 -> 이상치 처리 -> feature target 나누기 -> train test 나누기 -> 데이터 정규화 -> 모델 생성해서 적용
반응형'자격증 > 빅데이터분석기사' 카테고리의 다른 글
빅데이터분석기사 실기 준비 - Day 5 (2) (0) 2021.12.01 빅데이터분석기사 실기 준비 - Day 5 (1) (0) 2021.11.30 빅데이터분석기사 실기 준비 - Day 4 (0) 2021.11.30 빅데이터분석기사 실기 준비 - Day 2 (0) 2021.11.25 빅데이터분석기사 실기 준비 - Day 1 (0) 2021.11.24