본문 바로가기

Data Analysis '◡'✿/삼성SDS Brightics AI & Studio

[Brightics AI] Brightics Studio 튜토리얼(Tutorial) 실습 : EDA편 (1) 그룹별 평균, 배열 생성

 

 

 

 

 

 

 

안녕하세요, Soa입니다!

٩( ᐛ )و

 

 

 

 

이번 포스팅에서는 튜토리얼 중에서 EDA 편을 실습해보려고 합니다!

 

 

 

EDA는 'Exploratory Data Analysis'의 약자로

탐색적 자료 분석이라는 미국의 통계학자가 창안한 자료 분석 방법론입니다.

 

대표적인 예로는 Box Plot이 있습니다!

 

데이터 시각화 과정에서 중요한 부분을 차지하는 것이 바로 EDA입니다~

 

 

 

그 과정에서, 그룹별 평균과 배열을 생성하는 튜토리얼을 배워보고

튜토리얼 프로세스를 토대로 실습을 진행해보려고 합니다!

 

 

 

 

 

 


 

 

 

■ Tutorial - EDA (1) 그룹별 평균, 배열 생성 : 실습

 

 

 

[ Manual View Setting Condition ]

● Studio 1.1, 분석 프로세스별 보기, Exploratory Data Analysis - '그룹별 평균, 배열 생성'

 

 

실습에 필요한 데이터와 모델은 튜토리얼 맨 아래에 있습니다!

다운로드를 진행해주세요~

 

 

 

 

 

 

 

입력 데이터는 15_py_sns_usage_time.csv 이고,

참고 모델은 15_py_aggregation.json 인데

입력 데이터는 참고 모델을 그대로 모델 import 한 이후에

Load 함수에서 저 데이터를 입력해주면 되는 거랍니다!

 

 

 

15_aggregation.json
0.04MB

 

우선 Brightics Studio에서 저 모델을 불러왔다는 조건 하에서

바로 실습을 진행하도록 하겠습니다~

 

 

 

 

 

먼저 해당 프로세스의 시나리오와 목표를 보면서

어떤 용도로 사용이 가능한지, 무엇이 중요한지에 대해서 한번 살펴보겠습니다.

 

 

 

 

 

 

그룹별로 데이터를 나누고 시각화, 그룹별로 데이터를 배열 형태로 변환하는 것이

이번 프로세스의 가장 큰 특징이네요!

 

 

 

 

[ EDA - Create average value and array by group : Process ]

1) Data Load

2) Exploratory Data Analysis

 

 

 

위와 같은 프로세스를 따라서 실습을 진행하겠습니다.

 

 

 

 

 


 

 

 

 

1) Data Load

 

 

 

 

위에서 첨부한 파일이나 튜토리얼에서 파일을 다운로드 받아서

위와 같이 잘 import 하셨다면, Open을 클릭해주세요~

 

 

 

 


 

 

[Model Import Error]

 

 

 

 

 

모델 import 에러 발생..!

이건 뭐죠..? 모든 함수가 빨간색으로 표시되었습니다;;

 

데이터 입력이 된 것은 아닙니다! 왜냐면 아예 함수창이 켜지지 않기 때문이죠..

 

막 눌러보다 보니, 이게 함수를 검색해서 설정하고

이름을 재설정해주는 등의 작업을 진행해줘야 하더라고요!

 

 

 

 

 

이렇게 빨갛게 에러 처리가 된 함수 위에 마우스를 올리면 나타나는

함수 우측의 북쪽 아이콘인 'Change Function'을 눌러주세요!

 

 

에러 발생 이유는 정확한 건 아니지만,

다른 버전의 튜토리얼(ML 등)에서 모델을 다운받게 되어서 그런 것 같습니다..

 

 

 

 

 

처음에 불러온 모델에서 설정해놓은 함수 이름을 토대로,

튜토리얼 프로세스에 첨부된 이미지에서 볼 수 있는

최대한 비슷한 함수를 찾아서 함수를 변경해주세요!

 

거의 대부분이 원래 함수 이름에 모델 특징을 덧붙여 써놓았거나,

원래 함수 이름과 동일한 케이스이니 쉽게 찾을 수 있을 거예요!

 

 

 

저렇게 다시 함수를 셋팅했다면 다시 프로세스로 돌아가보겠습니다~!

 

 

 

 


 

 

 

 

 

Load 함수에서 Path를 설정하겠습니다.

그런데 upload 폴더에는 이 데이터가 없네요..

 

그렇다면 Add Data를 통해서 데이터를 추가하겠습니다.

 

 

 

 

 

이전에 다운로드 받았던 data를 Local에서 불러오고, Next를 눌러주시면 됩니다.

 

 

 

 

 

 

 

Delimiters는 Comma로 설정해주시면 됩니다!

 

 

 

 

 

 

age_grp의 그룹을 확인해보면 60세 이상은 60 and over라고 설정된 것을 볼 수 있습니다.

그 그룹은 String이므로 꼭 Type을 String으로 변경해주셔야 합니다.

 

마지막으로 data format을 확인해준 다음에 Finish를 눌러주시면 Path가 설정됩니다.

 

 

 

 

그런데 아까 시나리오와 목표에서 확인했던 것 기억 나시나요?

 

 

연령대별 SNS 사용시간의 분포와 전체적인 분포를 확인하는 것이 필요하다고 했으니,

Load 함수에서 연령대별 Boxplot과 Histogram으로 데이터를 한번 확인해보겠습니다.

 

 

 

 

 

 

 

 

이렇게 추가한 후에 위와 같이 정렬하면 더 보기 편하답니다~

 

그런데 데이터가 뭔가 보기 불편한 것을 알 수 있죠?

그룹별로 데이터를 보는 것을 설정하지 않았기 때문입니다!

 

 

 

 

Chart Setting에서 설정해주면 됩니다!

 

 

먼저 Box plot의 chart를 셋팅하겠습니다.

 

 

X축은 age_grp, Y축은 use_time으로 설정해주시고

색깔로 구분하는 옵션인 Separate Color를 On 해주시면 됩니다.

 

 

 

그 다음에는 Histogram의 chart를 셋팅하겠습니다.

 

 

 

X축을 use_time으로 설명하면 됩니다.

 

 

 

 

그럼 이렇게 차트가 바뀐 것을 볼 수 있는데,

맨 아래에 Show rows를 눌러서 활성화하는 데이터 개수를 늘려주지 않으면

데이터가 한정적이라서 그룹별로 나누는 것이 불가능해집니다!

(1000번까지는 모두 age_group이 30이기 때문에)

 

 

 

 

 

데이터를 업로드하고 그룹별로 출력되는 테이블, Box Plot, Histogram을 확인했습니다.

 

 

 

 

 


 

 

(2) Exploratory Data Analysis

 

 

첫번째로 Statistic Summary 함수를 이용해서

연령대별 SNS 평균 사용시간(그룹별 평균)을 산출하겠습니다.

 

 

 

파라미터를 다음과 같은 조건으로 설정해주세요~

 

[ parameter setting ]

 

 

Input Column : use_time

Target Columns : Average

Group By : age_grp

 

 

 

위와 같이 설정을 마쳤으면 Run을 눌러주시면 됩니다.

 

 

 

그럼 이렇게 데이터 테이블을 확인할 수 있습니다.

 

 

 


 

 

 

 

두번째로 Pivot 함수로 연령대별 SNS 평균 사용시간을 산출해보겠습니다.

 

 

파라미터 설정은 다음과 같습니다.

 

[ parameter setting ]

 

Rows : age_grp

Values : use_time

Aggregate Function : MEAN

 

 

 

위와 같이 설정해준 후에 Run을 통해 Table 대신 Bar를 선택해서

데이터를 확인해보도록 하겠습니다.

 

 

 

 

Bar를 통해서 그룹별 평균 사용 시간에 대해서 확인할 수 있습니다.

 

 

 

 


 

 

 

이번에는 Statistic Derivation 함수를 사용해서

연령대별(그룹별) SNS 평균 사용시간을 산출하겠습니다.

 

 

 

Statistic Summary와 동일한 작업을 수행하지만 이 함수의 output은

원래의 데이터의 형태에 추가로 대상 통계량이 붙여진다는 점에서 Statistic Summary와 차이가 있습니다.

 

 

 

 

[ parameter setting ]

Columns : use_time

Group by : age_grp

Target Statistic : Average, Median

 

 

위와 같이 파라미터를 설정해주시면 됩니다.

 

 

 

 

Statistic Summary와 Statistic Derivation의 출력값을 비교해볼까요?

 

 

Statistic Summary의 출력값은 다음과 같고,

 

 

 

 

Statistic Derivation의 출력값은 다음과 같습니다.

 

 

 

 

Summary에서는 그룹 별 SNS 사용 시간의 평균만을 나타내고 있고,

Derivation에서는 데이터 별로 어떤 그룹에 속해 있는지와 사용 시간 평균에 대한 정보를 나타내주었습니다.

 

두 함수의 차이는 출력에서 rank, 대상 통계량 유무라고 할 수 있습니다.

 

 

 

 


 

 

 

Statistic Derivation 함수 옆에 있는 Add Function Column을 이용해서

연령대 평균 대비 SNS 사용량의 gap인 차이를 산출하겠습니다!

 

 

Statistics derivation의 결과로 얻어진 각 연령대별 평균값을 빼주는 과정을 위해 사용합니다.

 

 

 

파라미터 설정값은 다음과 같습니다.

 

 

[ parameter setting ]

New Column Name : avr_over

Expression Type : SQLite

 

Expression :

use_time - use_time_avg

 

 

 

 

함수창에서는 이렇게 설정해주면 됩니다.

 

 

 

 

 

 

출력값을 한번 살펴볼까요?

 

 

위에서 Statistic Derivation과 비교했을 때, 차이는 avr_over가 추가된 것을 알 수 있습니다.

 

 

 

 

 

 


 

 

 

 

다음은 Binarizer라는 함수로

평균대비 사용량이 많으면 1, 그렇지 않으면 0으로 하는 컬럼을 생성하겠습니다.

 

 

 

파라미터 설정값은 다음과 같습니다.

 

[ parameter setting ]

Input columns : avg_over

Threshold Type : 1 if value>threshold

Threshold : 0

Out Column Name : binarized_avg_over

 

 

 

함수창은 위의 설정값을 참고해, 다음과 같이 설정해주시면 됩니다.

 

 

 

 

 

평균 대비 사용량을 1과 0으로 나누었으니

그 비중, 비율이 어떻게 되는지를 살펴보겠습니다.

 

 

char type을 pie로 바꿔주시면 됩니다!

 

 

 

거의 반반이네요!

 

 

 

 

 


 

 

 

 

마지막으로 Transpose라는 함수를 사용해보도록 하겠습니다.

 

이 함수는 각 연령대별 사용시간을 가로축으로 변환하는데,

추후 데이터를 가공해서 배열을 만들거나 할때 쓸 수 있습니다.

 

 

 

 

파라미터 설정값은 다음처럼 해주시면 됩니다.

 

[ parameter setting ]

Columns : use_time

Group by : age_grp

 

 

 

 

 

 

 

그럼 출력값을 한번 살펴볼까요?

 

 

 

이 함수를 통해서 각 연령대별 사용시간을 배열(array) 형태로 변환했습니다!

 

가로축이 매우 긴데, 쭉 넘겨보면 X50,000까지 있는 것을 확인할 수 있습니다.

볼 수 있는 row만큼 생성되었네요~

 

 

 

 

 


 

 

위 실습을 통해서

 

1) 비교적 다양한 함수를 활용해서 그룹별로 평균의 차이를 시각화

2) Statisctics Derivation 함수를 사용하여 원래의 데이터에 연령대별 평균과 중위수(median) 컬럼을 추가

3) add function column 함수를 이용하여 각각 평균 대비 SNS 사용량의 gap을 산출

4) Binarizer를 함수를 이용하여 평균과 비교해 많으면 1, 그렇지 않으면 0으로 표현

5) Transpose를 이용하여 각 그룹별 데이터를 배열(array) 형태로 변환

 

이 다섯가지에 대해서 실습을 진행하면서

각 함수의 용도, 사용 방법 등에 대해서 알 수 있었습니다.

 

 

 

 

 

 


 

 

 

 

끄읏-!

 

 

이번 시나리오에서는 그룹별로 데이터를 정리하고 시각화하는 과정을 진행했습니다!

 

단순히 데이터를 분석하는 것으로 끝나는 과정이 아니라

targeting 대상을 찾기 위한 전 단계이며, 활용 분야가 굉장히 넓습니다!

 

마케팅 분야에서 많이 쓰일 수 있을 것 같네요!

 

 

 

 

 

생각해보니 저는 마케팅에 관심이 있었습니다..!

(갑자기 깨닳음)

 

 

그러니 앞으로 마케팅 분야에서 활용 가능한 데이터 분석 관점으로,

비전공자들도 쉽게 알 수 있도록 좀 더 친절한 포스팅을 진행하도록 하겠습니다!

 

 

 

갑자기 반성을 하면서......

다음 포스팅으로 돌아오겠습니다~!

 

 

 

다음 포스팅은 원래 순서대로 해보려고 했는데,

계획에 차질이 생겨서....

 

앞서 말씀드린 것처럼 마케팅에서 활용될 수 있는 데이터 분석 위주로 진행하고자 해서,

다음에는 튜토리얼 프로세스 중에서 'Dimension Reduction'의 '설문지 데이터 요인분석'을 진행할까 합니다!

 

 

설문지 응답 데이터를 활용해서 그룹별로 데이터를 분석하고

설문지의 신뢰도를 측정하는 프로세스입니다.

 

광고 데이터 분석이라는 수업에서 설문지 데이터를 활용해서

분석을 진행했었기 때문에 충분히 마케팅 관점에서도 유익한 분석인 것 같..습니다!

 

 

우선 최대한 빠른 시일 내로 유익한 포스팅으로 돌아오겠습니다~!

 

 

 

 

혹시라도 건너 뛰는 과정에서 이해가 힘든 부분이 있으면

댓글에 어려운 부분에 대해서 말씀해주시거나,

이전 포스팅을 참고해주시면 감사하겠습니다! :)

 

 

 

 

다음 포스팅에서 만나요!

٩( ᐛ )و

 

 

 

 

* Brightics 서포터즈 활동의 일환으로 작성된 포스팅입니다. *

반응형