본문으로 바로가기
반응형

 

 

 

안녕하세요! 오늘은 삼성 Brightics AI 서비스를 빠르고 효과적으로 배울 수 있는, Brightics Tutorial Document 브라이틱스 튜토리얼을 소개드리려고 합니다. 

 

먼저 간단히 튜토리얼에 대해 살펴본 후, Brightics를 통해 데이터를 업로드하고, 업로드한 데이터를 효율적으로 활용하기 위한 데이터 샘플링을 실습해보도록 하겠습니다.

 

Brightics 튜토리얼은 삼성SDS Brightics AI 웹사이트의 상단 메뉴 중, Documentation 메뉴로 들어가시면 쉽게 찾아볼 수 있습니다. 

 

 

튜토리얼 페이지로 들어가시면, 위와 같은 화면을 만나보실 수 있는데요. 이때 중요한 점이 있습니다!

 

Brightics 튜토리얼 문서를 보기 위해선 좌측 상단과 같이, 버전(2020. 07. 28 기준 Studio 1.1 버전)을 Studio로 설정하고, Documentation 메뉴도 튜토리얼로 설정해주어야 합니다.

 

 

이제 좌측 메뉴에서 다양한 주제를 담고 있는 Brightics 튜토리얼의 카테고리를 만나볼 수 있는데요. 아주 기본적인 사용법을 담고 있는 Common 카테고리부터,

데이터 결합과 이상치 탐지, 결측값 처리 및 문자 데이터 더미변수화 등 다양한 전처리 과정을 담고 있는 Pre-processing, 

요약 통계량부터 T검정, ANOVA, X^2 검정, 비모수 검정, 상관관계 분석, 피어슨 상관분석 및 데이터 시각화 등 다양한 탐색적 데이터 분석 방법을 주제로 다루는 Exploratory Data Analysis,

더욱 효율적/효과적으로 데이터를 다루기 위해서, 또는 직면한 여러 문제의 해결을 위해 종종 사용되는 차원축소를 주제로 다루는 Dimension Reduction,

가장 기본적인 K-means부터 여러가지 군집분석에 대해 다루는 Clustering,

단순 선형회귀분석부터, KNN, 랜덤 포레스트 등과 더불어, 캐글에서 가장 많이 활용되는 앙상블 알고리즘 중 하나인 XGBoost까지 다루는 Regression, 

분류 모델에 관한 방법론을 쭈욱 살펴보는 Classification,

연관성 분석에 대해 살펴보는 Recommendation과 여러 시계열 분석 모델링 기법을 알아보는 Time Series, 

마지막으로 한국어, 영어로 이루어진 텍스트 데이터를 분석하는 여러 주제를 담은 Text Analysis가 준비되어 있습니다.

 

주제 카테고리만 해도 무려 10개에, 총 토픽의 수는 무려 78개에 달합니다. 튜토리얼만 열심히 공부해도 어지간한 ML 기법에 대해서는 큰 무리 없이 학습할 수 있을 것 같다는 생각이 드는데요.

 

또한 Brightics 튜토리얼은 매 주제마다 특정 시나리오를 가정하고, 이에 대한 데이터를 다루는 실습으로 진행되어, 학습자가 손쉽게 실습에 도전해볼 수 있는 구조로 되어 있습니다. 예컨대, Random Forest 회귀분석에 대해 실습한다면, 건물의 관리자 입장에서, 에너지 전력 소비를 최적화하기 위해 시간대별 에너지 사용량 모델을 수립하려 한다는 가정하에, 해당 방법론을 사용하여 강수량, 온도, 습도 등 센서의 데이터를 통해 날씨에 따른 에너지 사용량을 예측하는 문제를 푸는 식으로 진행됩니다.

 

또한, 사전에 데이터가 모두 구비되어 있기 때문에 편리한 실습이 가능한데요. 매 토픽마다 색다른 주제와 데이터를 사용하기 때문에 지루함을 느낄 새가 없다는 점도 큰 장점입니다! 그럼 튜토리얼에 대한 소개는 여기까지 하고, 본격적으로 실습에 들어가보도록 하겠습니다!

 

 

오늘 실습 주제는 데이터 샘플링인데요. 실습 데이터를 다운 받아 Load 함수를 통해 Brightics Studio에 import 시켰습니다.

먼저 데이터를 Train 데이터와 Test 데이터로 나누기 위해, Split Data 함수를 사용합니다.

 

 

위와 같이 Split Data 함수를 사용합니다. TRAIN : TEST 데이터의 비율을 4 : 6으로 나누기 위해, 각각 4와 6의 값을 넣어주었습니다. Train Ratio와 Test Ratio 아래에 보이는 Seed 값은 난수 발생을 위해 넣어주는 값인데요.

동일한 데이터에 대해 다양한 방법으로 모델링을 적용할 때, 매번 Test 데이터와 Train 데이터로 분할되는 데이터들이 달라진다면, 모델 성능 또한 매번 달라지기 때문에 정확하게 모델의 성능을 평가할 수 없게 됩니다.

예를 들어, 두개의 다른 모델에 대해 성능 평가를 하려고 할때, 만약 서로 다른 값을 담은 Train, Test 데이터를 각각 적용하여 모델을 평가한다면, 비록 랜덤으로 추출된 데이터이기 때문에 일정 크기 이상의 데이터를 사용한다면 과도하게 편향된(추출된 데이터가 특정 모델에 과도하게 유리하다던지...) 결과가 나오지는 않겠지만, 결국 두 모델의 성능을 정확하게 비교하기는 어려워집니다. 

 

어쨌든, 우측처럼 두개의 데이터 셋으로 분리되었습니다!

 

 

이제 Random Sampling 함수를 통해 랜덤 샘플링을 해보겠습니다. 함수 설정은 위에서부터 차례로 설명하겠습니다. 

먼저 맨 위의 Method : Number / Fraction의 경우, 샘플링 할 데이터를 갯수로 설정할지, 비율로 설정할지에 대한 부분입니다. 또한, Replacement의 경우 True로 설정하면 복원추출로 설정이 되어, 이미 선택된 데이터가 또 다시 선택될 수 있으며, False의 경우 비복원추출로 이미 뽑힌 데이터는 추출되지 않습니다. Seed는 아까 설명과 같습니다.

 

추출 결과는 우측과 같은데요. 총 1000개의 데이터에서 0.3%가 적용되었으므로, 우측처럼 3개의 데이터가 추출되었습니다.

 

 

다음은 Method를 Number로 적용한 랜덤 샘플링입니다. 이 경우, Number에 넣어준 갯수와 같이 150개의 데이터가 샘플링 된 것을 우측에서 확인할 수 있습니다.

 

 

마지막으로 Group By에 대해 알아보겠습니다. Group By는 Select 버튼을 눌러 데이터의 column을 선택하면 되는데요. 이 경우, 선택한 column의 값에 따라 지정한 비율 또는 갯수만큼 데이터를 샘플링하게 됩니다.

 

먼저 Group By를 선택하지 않은 상황에서는, 위 화면과 같이 Number 5를 설정하였으니 5개의 데이터가 샘플링 된 것을 볼 수 있습니다.

 

 

해당 화면은 Group By에 GROUP Column을 설정해준 결과 화면인데요. 보시는 것과 같이, Number가 5로 설정되어 있으나, Column GROUP이 A, B, C의 3개의 값으로 나눠져 있어, 이에 따라 각 값을 Number의 값 만큼, 5개씩 추출한다는 것을 알 수 있습니다.

 

Method를 Fraction으로 바꾸어서 다시 실행한다면? 당연히 Column의 값 별로 Fraction의 비율만큼 추출되겠습니다!

 

오늘은 Brightics Studio의 튜토리얼과 함께, 데이터 샘플링 실습을 진행해보았습니다. 쓰면 쓸 수록 쉽고 간단하여, 그 매력이 배가 되는 삼성 SDS의 Brightics Studio, Tutorial을 끝마치는 날에는 저도 어엿한 데이터 분석가가 될 수 있을 것만 같은 기대가 되네요.

 

모쪼록 오늘 포스팅은 여기서 마치도록 하겠습니다. 읽어주셔서 감사합니다 :)

반응형