전처리는 왜 필요할까?🤔 특징 추출 (feature extraction)을 통하여 문제를 좀 더 쉽게 정의함으로써 기존 보다 좀 더 쉽게 문제를 해결할 수 있다!
1. 결측치, 중복값 제거
결측치 혹은 팍 튀는 값 등을 제거 .loc[lambda x : x > 1] : 하나보다 많은 값 찾기 .drop.na : 결측치 제거 .drop.duplicates : 중복값 제거 .reset_index(drop = True) : 인덱스 순서 정리 .to_date : object로 불러와진 날짜를 datetime으로 변경해줌
2. 스케일링
범위가 제각각인 데이터 분포 및 범위를 동일한 기준으로 조정
⭐아웃라이어 제거
# 2 ~ 50 사이의 데이터가있어요 이걸 0 ~ 100 범위로 나눠주고 싶어요
# 2 ~ 50 사이의 데이터에 최소값(2) 를 전부 빼요
# 0 ~ 48 범위의 데이터가 되겠죠
# 여기다 최대값(48)으로 전부 나눠요
# 0 ~ 1범위의 데이터가 됩니다
# 여기다 100을 곱해요
# 0~100 범위의 데이터가 탄생
test2016['scaled'] = (test2016['모기지수(주거지)'] - test2016['모기지수(주거지)'].min())/(test2016['모기지수(주거지)'].max()-test2016['모기지수(주거지)'].min()) * 100
3. 이상치 제거
plot으로 차트를 그린 후 팍 튀는 값 제거 혹은 수정 여름인데 모기지수가 0이거나 겨울인데 모기지수가 0이 아니면 수정
데이터 합치기
전처리가 끝난 데이터를 다시 합쳐준다
concat : 일렬로 쭉 합쳐줌 merge : 기준을 가지고 합쳐줌
느낀점
처음 받아보는 날것(?)의 데이터에 에이블러 모두가 당황을 했는데, '문제', '데이터', '도메인 기본 정보', '문제 해결 가이드'가 제공되어 있어서 안심했습니다. 모르는 부분에서도 튜터분들께서도 실시간으로 1:1 질문을 받고 답변을 해주셔서 무리없이 진행할 수 있었습니다👍
특히나 전처리를 어떻게 해야하냐가 막막했는데, 어느 부분에서 이상치가 있고 비슷한 부분을 에이블러 각자 생각해서 처리할 수 있어서 좋았던 것 같습니다. 모두에게 익숙한 모기 데이터의 경우 계절마다 모기의 활용해 이상치를 제거할 수 있었습니다. 여름에 모기가 많고, 겨울에 모기 없는 이 정보도 하나의 도메인 정보가 될 수 있었던 것 같습니다.
맞고 틀림을 판단하기보다, 어떤 데이터가 필요한가에 따라 전처리와 스케일링 과정을 진행하는 것이 중요했던 것 같습니다.