1. 결측치 처리 (Missing Values)
결측 데이터 제거
결측이 있는 데이터들을 제거합니다.
- 가장 쉬운 방법이긴 한데 정보의 손실이 있습니다.
결측을 제거 한 후 결과를 확인해 봅니다.
단순 대체
범주형 데이터
- 결측 자체도 하나의 범주값으로 보고, 결측을 의미하는 범주를 생성하여 대체합니다.
ex) Embarked 를 보니 아래와 같이 결측이 있습니다. (nan)
2개에 결측이 있네요.
‘Unk’ (Unknown) 으로 대체해 보겠습니다.
2. 최빈값으로 대체
ex)
Cabin은 복수의 요소로 구성이 되어 있고, 공백으로 구분 되어 있습니다. 이 중 맨 처음 나오는 Cabin만 남깁니다.앞자리 알파벳을 CabinType 그리고, 뒷자리 숫자는 CabinNo로 나누어 파생 변수를 만듭니다.CabinType을 Pclass 별로 CabinType의 최빈값으로 대체합니다. 만일 동수가 등장할 경우 사전순으로 앞에 있는 것으로 대체합니다.
CabinType 최빈값은 C 네요
수치형 데이터
- 평균(중심 통계량: 평균, 중앙값, 최빈값)으로 대체
ex)
- 보간법(Interpolation)순서가 있는 데이터(시간순, 위치순)인 경우에 앞, 뒤 값을 활용하여 결측치를 대체합니다.
Regression
- 다른 변수를 이용하여 결측치를 예측하는 모델을 만들어, 모델의 예측값으로 결측치을 대체합니다.
ex)
Age’의 결측값을 ‘Pclass’, ‘Sex’, ‘SibSp’, ‘Parch’, ‘Fare’, ‘Embarked’ 를 이용하여 예측 모델을 만들어 예측치로 결측값을 대체합니다.예측 모델은 Random Forest Regression 모델로 하고, Pclass, Sex, Embarked는 가변수화 합니다. 나머지 입력값은 그대로 모델에 사용합니다.
이상치 처리 (Outliers)
- IQR(Inter Quantile Range)을 통한 이상치 판별
이상치 제거
- 이상치로 판단된 데이터를 제거합니다.
각 변수가 상하선 또는 하한선을 벗어 났는지 확인합니다.
이상치가 하나라도 있는 행을 뽑아 봅니다.
이상치에 해당하는 인덱스로, 이상치를 제거한 DataFrame을 df_berry2로 지정합니다
범위 한정(clipping)
하한값을 벗어난 경우 하한값으로 대체하고
상한값을 벗어나 경우 상한값으로 대체시킵니다.
ex)