카테고리 없음
Machine Learning Day 1 | Missing Data
Michellee12
2022. 9. 28. 00:33
누락된 데이터(Missing Data)를 처리하는 2가지 방법
1. 관측값을 지우고 무시하기
큰 데이터 세트가 있고 그 중에 1퍼센트 정도만 누락됐을 때 그 관측값을 지우는건 모델의 학습 품질에 큰 영향을 끼치지 않는다.
x = x.dropna() # 결측치가 있는 행 전부 삭제
x = x.dropna(axis = 1) # 결측치가 있는 열 전부 삭제
- 결측치가 있는 행은 전부 삭제
2. 누락된 열의 평균값을 내서누락된 데이터를 대체
가장 표준적인 방법
평균값 대신 중간값도 가능
from sklearn.impute import SimpleImputer
imputer = SimpleImputer(missing_values = np.nan, strategy = 'mean')
imputer.fit(x[:, 1:3])
x[:, 1:3] = imputer.transform(x[:, 1:3])
- SimpleImputer는 누락된 데이터를 처리하는 데 도움이 되는 사이킷런 클래스입니다.
- 매개변수 설명 : 무엇을(missing_value=) 무엇으로(strategy=) 대체할 거이냐
- np.nan : Not a Number의 약자. 데이터 자체가 없음을 의미한다.
- 실제로 큰 데이터 세트를 가지고 분석할 때는 결측치가 어디에 있는지 알기 힘들기 때문에 일반적으로 모든 숫자열에 적용해주는게 좋다.
- strategy 파라미터의 default는 mean(평균)이고, median(중앙값), most_frequent(최빈값), constant(지정값)을 파라미터로 지정해줄 수 있다
- fit()으로 strategy에 해당하는 값을 계산한다. transform()으로 누락된 값을 계산된 값으로 채워준다.
- fit()과 transform() 대상이 같은 경우에는 fit_transform()으로 바로 처리할 수 있다.