본문 바로가기

삼성 SDS Brightics

[삼성 SDS Brightics] 개인 분석 과제 - 2. EDA 탐색적 데이터 분석 Exploratory Data Analysis (2)

안녕하세요, 은서예요! ^_^

오늘은 개인 분석 미션 세 번째 포스팅 <EDA 2편>을 들고 왔습니닷

이게 맞는 건지,, 많은 고민이 있지만

그걸 '혼자서' 파헤쳐 나간다는 게 참 의미 있는 일인 것 같아요

멘토님께서도 하나부터 열까지 혼자서 분석해 나가는 일 자체가 의미 있을 거라고 조언해 주셨으니

이번 포스팅도 힘내 봅시당

파이팅 (ノ・∀・)ノ


데이터 타입 살펴보기

먼저 저번 포스팅에서는 어떤 변수가 있는지 살펴보았었죠?

이번에는 그 변수들을 면밀히! 파헤쳐 봅시닷

이해를 돕기 위해 변수를 정리했던 내용을 가지고 왔어요

<소비자 신상 정보 부분>

ID : 소비자 ID

Year_Birth : 출생년도

Education : 교육 수준

Marital_Status : 혼인 여부

Income : 수입

Kidhome : 가정 내 아이 수

Teenhome : 가정 내 10대 수

Dt_Customer : 회원 등록일

Recency : 마지막 구매일 이후 지난 날

Complain : 2년 간 컴플레인 여부

<구매 관련 변수>

MntWines 와인

MntFruits 과일

MntMeatProducts 고기류

MntFishProducts 어류

MntSweetProducts 간식류

MntGoldProds 금품

<구매처>

NumWebPurchases : 웹사이트

NumCatalogPurchases : 카탈로그

NumStorePurchases : 가게에서 직접

NumWebVisitsMonth : 지난 달 웹사이트에 방문한 횟수

<프로모션 관련>

AcceptedCmp1-5 :

이 변수는 1부터 5까지, 소비자가 몇 번째 캠페인에서 제안을 수락했는지를 알려 주는 변수

NumDealsPurchases : 할인을 받아서 구매한 횟수

Response : 지난 캠페인에서 제안 수락 여부

그리고 select column 함수로 손쉽게 변수들의 데이터 타입을 확인해 주었습니다

그리고 전처리가 필요한 변수들을 추려 보았는데욥

가장 먼저 Year_birth 변수를 이용해 Age 변수를 만들어 준 뒤 범주화를 통해 10대, 20대 등으로 나누어 줄 예정입니다

또 각 변수들의 결측값을 확인해 준 뒤 대체 혹은 삭제해 줘야겠죠?

구매 관련 변수들도 범주를 나누어 주는 것이 군집 분석을 하는 데 큰 도움이 될 거예요!

데이터들이 아주 중구난방이더라구요,, ^_^

결측값 처리

가장 먼저 결측값 처리부터 해 주겠습니다

일단 수치형 변수들의 처리를 위해서 Statistic summary 함수로 결측값이 있는 변수를 추려내 볼게요

이제 statistic summary 화면은 너무 익숙하죠?!

Null count만 체크한 뒤 돌려 주었더니, 수치형 변수에서는 유일하게 Income에만 결측값이 있는 것을 발견했습니다

하지만 수입과 관련된 변수는 마케팅 대상 분석에 있어서 매우! 중요한 요인이라고 생각하기 때문에

결측값이 있는 행은 모두 삭제해 주기로 결정했어요

Delete missing data 함수를 이용해서 Income에 결측값이 있는 행을 모두 삭제해 주었더니

이렇게 행이 2,240개에서 2,216개로 줄어든 것을 확인할 수 있었습니닷

결과 데이터 우측 상단에는 항상 열과 행 개수가 표시되어 있으니까 이렇게 행을 삭제할 때에는 확인해 보세요!

(저는 처음에 실수로 다른 column을 선택했다가 저 표시를 보고 뒤늦게 문제점을 알았습니다,,)

이번에는 String summary 함수를 이용해 명목형 변수들의 결측값을 확인해 주었는데,

null count를 보시면 모두 0인 것을 확인하실 수 있겠습니다~!

새로운 열 생성

그 다음으로는 Year_birth 컬럼을 이용해서 Age 나이 컬럼을 만들어 줄 거예요

Add function column 함수를 사용해 주겠습니당

이렇게 코드를 넣고 돌리면

나이 열이 생긴 것을 확인할 수 있어요 !_!

이게 정말 정말 편하답니다,,

연속형 데이터 범주화

이번에는 앞에서 만들었던 Age 컬럼을 10대, 20대 등으로 범주화해 줄 거예욧

지금 사용해 볼 함수는 제가 처음 사용하는 함수인데요 ! !

바로 Bucketizer 라는 함수입니다 XD

Brightics에서 연속형 데이터를 범주화할 수 있는 함수예요

Bucketizer의 설정 창은 위와 같습니다

Bucket Type 에는 “Left Closed, Right Open”과 “Right Closed, Left Open”의 선택지가 있다. 여기서 Closed와 Open은 차례대로 폐구간(닫힌 구간, Closed Interval)과 개구간(열린 구간, Open Interval)을 뜻한다. 좀 더 상세하게 들어가자면 폐구간은 실수의 집합에서 양 끝 수를 그 집합에 포함시키는 것인데 이상과 이하가 그 예시이다. 그리고 개구간은 실수의 집합에서 양 끝 수를 그 집합에 포함시키지 않는 것인데 초과와 미만이 그 예시이다.

Split Type 의 경우 기본적으로 “List Format”으로 설정되어있는데 이는 연속형 데이터를 어느 지점에서 자를지 직접 하나씩 지정하는 방법이다.

“Range Format”으로 할 경우 다음과 같은 설정이 뜨는데 이는 등차수열을 기반으로 구간을 생성하여 그 값을 기반으로 연속형 데이터를 잘라준다. 여기서 From은 시작, To는 끝, by는 증분을 뜻한다.

출처: https://datadoctorblog.com/2020/10/06/Br-function-block-bucketizer/

 

이해를 돕기 위해 쉽게 설명된 글을 가져와 보았습니다 ㅎ.ㅎ

저는 left closed, right open / list format으로 연령대를 나누어 보았어요

이렇게 구간을 정해 준 다음 돌려 보았더니

이렇게 연령대 column이 생겼습니다 !


오늘은 데이터 타입 확인부터 전처리까지 진행해 보았는데요!

다음 포스팅에서는 시각화를 통해서 변수 간 관계, 기술통계 등을 살펴볼 생각입니다 ㅎ.ㅎ

Brightics의 최대 장점 중 하나인 시각화를 다음 포스팅에서 더 자세히 보여 드릴 수 있겠네욥

다음 포스팅도 많은 기대 부탁드려요 XD

그럼 안농~!

본 포스팅은 삼성 SDS Brightics 서포터즈 활동의 일환으로 작성되었습니다.

#삼성SDS #Brightics #BrighticsA#브라이틱스 #데이터분석 #데이터사이언스 #인공지능 #브라이틱스서포터 #EDA #데이터전처리 #서포터즈#대외활동#분석프로그램 #Xgboost #Regression #선형회귀 #Kaggle #KaggleCompetition #HousePrice #데이터시각화 #R#Rstudio#Python#SamsungSDS#삼성서포터즈#코딩#통계#iris#삼성#분석플랫폼#모델링#머신러닝#데이터분석툴#빅데이터#브라이틱스서포터즈2기#서포터즈2기#삼성SDSBrightics #BrighticsStudio #브라이틱스 #모델링 #데이터분석 #데이터 #브라이틱스서포터즈 #Brightics서포터즈 #브라이틱스다운 #모델링 #데이터시각화 #프로그램설치

#Brightics설치방법 #파이썬 #python #R #Rstudio #코딩 #코딩없이분석 #삼성SDS #삼성서포터즈 #데이터분석대외활동 #대외활동 #코딩하는법