안녕하세요! Brightics 서포터즈 3기
입니다.
오늘은 DACON 물류 유통량 프로젝트의
데이터 전처리 과정에 대해 소개해보도록 하겠습니다!

전체 Flow
오늘 소개해드릴 과정의 전체 Flow는 다음과 같습니다!
데이터 전처리부터 전체적으로 설명드리고 가도록 하겠습니다.ㅎㅎ

데이터 업로드
지난 개인 미션에서 소개해드린 것 처럼
데이터를 업로드하기 위해선는
"Load 함수"
를 사용해야합니다!
데이콘에서 제공하는 데이터는 총 3가지로
모델학습을 위한 train_df.csv와 test_df.csv
대회 제출을 위한 sample_submission.csv
3가지를 Load 함수를 사용해 업로드 해주었습니다.

위에서부터 차례로
test_df.csv
train_df.csv
sample_submission.csv
입니다~
데이터는
하단의 링크 통해 다운받으실 수 있습니다~~
(데이터 분석시 사용할 데이터셋 확보 시, 지적재산권 및 저작권을 침해하지 않도록
Kaggle, 공공 데이터 포탈과 같은 오픈 데이터셋 사이트를 활용했습니다.)
Pre-processing
1) 결측치 확인
우선 데이터 내에 결측치를 확인하기 위해 Profile 함수를 사용해 줍니다. 이 함수는 데이터의 전반적인 Overview를 확인할 수 있습니다ㅎㅎ
순서대로 왼쪽부터 test, train입니다!


하이라이트 쳐진 부분을 보시면 두개의 데이터 전체의 Total Missing 이 0.0%인 것을 확인하실 수 있습니다.! 즉, null 값이 없다는 걸 확인할 수 있었어요
2) 통계량 확인

또한 Variable을 통해 전체 열의 통계를 확인하실 수 있습니다
표와 그래프 각각을 통해 나타내주기 때문에 열의 구성을 한 눈에 확인하실 수 있어 아주 편리해 제가 애정하는 함수 중 하나에요ㅎㅎ
최대, 최소, 평균값과 더불어 중복에 대한 요인까지 모두 제공해준다는 점~
2-1) 통계량 확인 ②
또한 Brightics studio의 Statistic summary 함수를 사용해 Data의 기술통계량을 산출할 수 있습니다. 다만 다른 점은 Statistic summary은 수치형 변수만 가능하다는 점!!
Input Colums을 보시면 String인 물품카테고리를 제외한 열만 출력되었다는 걸 확인하실 수 있습니다.
또한 Target statistic에 최대최소값 이외에도 다양한 조건이 있기 때문에 Profile 함수보다 다양한 종류의 통계량을 확인하실 수 있습니다!

인코딩
자 그렇다면 String인 물품카테고리를 버릴 수는 없겠죠??!
그래서 "범주형 변수 처리 과정"이 필요합니다!
범주형 변수 처리 과정에는 Label Encoder와 One Hot Encoder 2가지가 있는데요,
두 방법의 차이는 크게 Label Encoder은 변수를 일련의 숫자로 표현하여 "하나"의 Column에서 표현하지만
One Hot Encoder은 변수가 다양할 때, 각각의 변수에 대한 Column을 하나씩 생성한다는 차이가 있습니다!
그렇다면 각각 사진을 보여드리며 하나씩 소개해보도록 하겠습니다.
1) Label Encoder

위의 사진을 보시면 하늘색 박스에서 Input Colums으로 물품_카테고리를 선택한
output 값으로
노란색 박스의 물품_카테고리_index 열로 생성된 것을 확인하실 수 있습니다.
물론 suffix에서 이름을 설정함으로써 column name을 바꿀 수 있어요ㅎㅎ
위의 사진은 test_df.csv에 대한 예시입니다!
2) One Hot Encoder

다음으로 one hot 인코더를 적용한 결과입니다.
위의 사진을 보시면 하늘색 박스에서 Input Colums으로 물품_카테고리를 선택한
output 값으로
노란색 박스의 물품_카테고리_# 열로 0,1,2....으로 생성된 것을 확인하실 수 있습니다.
각 행별로 1또는 0의 값이 들어가 있는 모습을 확인하실 수 있어요
Drop last에서 True를 설정해
범주개수-1 개만큼의 더미 변수를 생성할 수 있습니다!
위의 사진은 test_df.csv에 대한 예시입니다!
두 가지 인코더 방법의 차이가 이해되시나요?
One hot 인코더의 단점은 바로....
차원의 저주!입니다.
column이 무분별하게 생성되기 때문에 차원의 수 증가로 인해
차원의 저주에 빠질 수 있다는 단점이 있어요.
하지만 꼭 필요한 경우라면 감수하고라도 사용해야겠죠ㅠ
정리
오늘은 데이터 전처리와 시각화를 진행해보았는데요
굉장히 짧으면서도 모델링까지 들어가야할 것만 같은 기분이 들었지만...!
남은 일정계획을 지키기 위해
전처리까지만 포스팅하도록 하겠습니다...!!
결측치가 없으니까 할 일이 매우 줄어들긴 했네요ㅎㅎ
다음 포스팅에서는 분석 모델링과 가능하다면 모델 비교까지 포스팅하도록 하겠습니다
그럼 다음 포스팅으로 찾아뵙도록 하겠습니다!!!
감사합니다ㅎㅎ

* 본 포스팅은 삼성SDS Brightics 서포터즈 3기 활동의 일환으로 작성하였습니다.
#삼성SDSBrightics#삼성SDS#Brightics#Brightics서포터즈#Brightics서포터즈3기#BrighticsStudio#브라이틱스#모델링#데이터분석#코딩없이데이터분석#브라이틱스와함께하는데이터분석
'삼성 SDS Brightics' 카테고리의 다른 글
| [삼성 SDS Brightics] 15. DACON 물류 유통량 예측_개인미션 4탄(모델링) (0) | 2022.11.03 |
|---|---|
| [삼성 SDS Brightics] 14. DACON 물류 유통량 예측_개인미션 3탄(데이터전처리② Feat. 노코드 AI 오픈소스) (0) | 2022.10.18 |
| [삼성 SDS Brightics] 12. DACON 물류 유통량 예측_개인미션1탄 (0) | 2022.10.06 |
| [삼성 SDS Brightics] 11 팀 영상 미션③ : 브월이네 세포들아 수고했어~! 영상 편집 End! (0) | 2022.09.28 |
| [삼성 SDS Brightics] 10 팀 영상 미션② : 세포들의 귀여운 변신! 시나리오 작성 + 영상 촬영 Start! (1) | 2022.09.19 |
