본문 바로가기

카테고리 없음

[삼성 SDS Brightics] #12 브라이틱스로 Kaggle 데이터 분석하기 - 팀분석프로젝트편 마지막

 

 

안녕하세요~

이번주는 팀프로젝트 마지막주입니다!

저희가 제출해야할것은:

1. 팀프로젝트 모델 (json file)

2. 프로젝트 보고서 PPT

3. 튜토리얼 영상

입니다.

 

오늘 블로그는 모델의 각 단계별로

어떻게 브라이틱스를 썼는지

알려드리려고 합니다~

 

우선 시작하기 앞서,

브라이틱스 스튜디오로 팀 프로젝트 하는방법을

알고싶다면 아래 블로그를 참고해주세요!

1. Data Load

 

사용된 함수: Load

 

이건 저희 workflow이고 총 5파트로 구성이됩니다.

 

우선 Data Load 부분은

Load 함수를 써줬습니다.

 

캐글에 있던 데이터를 바로 안올리고

python 으로 작업을 한 파일을 csv로 import했어요.

 

저희가 총 세가지 파일이있는데

1. train

2. test

3. people

 

people 은 각각 train 과 test랑 합쳐야

작업하기가 편할것같아 brightics의 join함수를 쓰려고했지만

join 한 파일이 너무 커서 그 뒤에 one hot encoding할때

시간이 너무 오래걸리더라구요.

 

그래서 저희는 파이썬으로 두개 파일을 합치고,

샘플링을 해서 데이터 크기를 좀 줄였습니다.

 

이런식으로 샘플은 1000개 people 과 train / people과 test 를

merge 시켜줬습니다.

2. Pre- Processing

 

사용된 함수: Datetime Formatter, One Hot Encoding, PCA, Select Column, Bind Row

 

전처리를 진행하기전에

Descriptive Analysis도 했지만

그건 샘플링파일이 아니라 전체파일로 진행했기때문에

여기 workflow에는 없어요.

 

3탄 보면 어떤식으로 했는지 보실 수 있습니다.

3탄을 안 보고 오신 분들은 아래 링크 클릭해주세용!

https://blog.naver.com/hasong0131/222473956346

 

 

맨 처음 전처리는 Datetime Formatter 함수를 사용했습니다.

이건 날짜가 2022-06-17로 되어있는걸

202206으로 바꿔주기 위해 사용했습니다.

 

그 다음 전처리는 One Hot Encoding 함수를 사용했습니다.

하지만 원핫인코딩을 한번에하면 칼럼이 정말 많아져서 ㅠ-ㅠ

people.csv 에 있던 칼럼 따로, train.csv 에 있던 칼럼 따로

원핫인코딩을 해주었더니 잘 됐습니다.

 

아 그리고 Drop Last 세팅을 True 로하면

칼럼수가 원래보다 1개 줄어서 꽤 유용합니다.

 

그다음은 PCA 함수를 사용 했는데요,

방금 사용한 One hot Encoding 과 연결시켜주었습니다.

 

조작부에 input column 은 원핫인코딩을한 변수를 넣었습니다.

 

여기서 사용하는 PCA는

데이터를 보다 분석하기 좋게 분산을최대로 만들어

데이터를 분석하는 기법입니다.

 

제 1주성분은 변동을 최대로 설명해주고

제 2는 제1주성분 다음으로 설명해주는식..

 

처음에 그냥 돌려서 나오는 그래프를 보고

number of components를 정하면되는데요

저희는 6으로 설정했습니다.

 

그 다음은 여태했던 전처리를 다 합치기위해

Bind Row Column 함수를 사용했습니다.

 

이 함수를 블로그에서 소개하는건 처음인거같은데,

 

간단하게 row 일지 column일지 정해서

run 버튼만 눌러주면 끝!

3. Modeling + Evaluation

 

사용된 함수: Split Data, Logistic Regression Train, Logistic Regression Predict, Decision Tree Classification Train, Decision Tree Classification Predict, Random Forest Classification Train, Random Forest Classification Predict

 

먼저 Split Data 를 사용해서

train / test 로 만들고,

train 은 Train 함수,

test 는 Predict 함수랑 연결해주었습니다.

 

저희는 총 3개의 classification 알고리즘을 사용하기로 했습니다.

 

그중 accuracy 가 가장 높은 모델은:

1) Decision Tree Classification 0.9799

2) Random Forest Classification 0.9793

3) Logistic Regression Classification 0.797

 

Decision Tree였네요!

 

 

이렇게 블로그로

저희가 한 프로젝트를 소개해드렸는데요,

조만간 튜토리얼 영상도 나올테니

많은 관심 부탁드려용

 

 

[본 포스팅은 Brightics 서포터즈로서 직접 체험하고 작성한 리뷰입니다.]