본문 바로가기

카테고리 없음

[삼성 SDS Brightics #2-2] 브라이틱스 스튜디오로 Kaggle Competition 참여해보기 1탄 (macOS 유저)

안녕하세요 여러분~

2주 차 개인 프로젝트 2탄입니다!!!

앞으로 3주 동안 미니 프로젝트를 해야 되는데,

저는 매주 총 두개를 할 예정이에요,, (가능하면 최대한 많이 하려고 노력 중입니다 ㅎㅎ)

한개는 브라이틱스 샘플 다큐먼트를 참고하여 매주 다른 데이터를 분석할 예정이고,

한개는 Kaggle의 Titanic Competition을 참가해볼 예정입니다!

타이타닉 대회는 전처리할 부분이 상당히 많은 것 같아

3주에 걸쳐 데이터 분석하는 과정 올리겠습니다..!

타이타닉 대회는 캐글의 꽃이라고 볼 수 있죠!

캐글의 시작 단계로 많이들 참가하는데,

저는 아직 해본 적이 없어서,

이번 기회에 Brightics Studio를 활용해 대회에 참가해보겠습니다!

prediction 값을 캐글에 submit 하면

등수와 점수가 나온다고 하네요.

 

Kaggle을 사용해본 적이 없으신 분들은

먼저 계정을 만들고 와주세요!

https://www.kaggle.com/

 

 

이번 실습을 위해, 아직 브라이틱스 스튜디오 설치 안 하신 분들은

아래 블로그를 확인해 주세요!!

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

설치하셨다면 바로 아래 링크를 클릭해 주세요

http://127.0.0.1:3000/

 

Step 1) 스튜디오에 데이터 업로드하기

먼저 여기서 test.csv 파일과 train.csv 파일을 다운로드해 주세요.

https://www.kaggle.com/c/titanic/data

저는 'Kaggle Titanic Competition'이라는 이름으로 'New Model'을 만들어 주었습니다.

템플레잇은 'Default'로 하고 OK 버튼을 눌러줍니다.

그다음은, 우측에 있는 Palette에서 'Python Script'함수를 불러옵니다.

평소 같으면 'Load'를 쓸 텐데

왜 굳이 Python Script를 쓰냐면,,

csv 파일 정리가 상당히 복잡하게 되어있기 때문이죠.

원래 CSV 파일을 보면,

 

이렇게 나와야 되는데,

이걸 파일을 스튜디오에 'Read CSV'해버리면

 

 

Survived 데이터가 PassengerId로 가고

Pclass에는 1,2,3 대신 승객의 이름이 나와있죠.

이 문제가 생겨 바로 제 멘토님께 sos를 보냈더니

친절한 답변이 왔습니다!!

멘토님이 설명을 잘해주셔서 인용구에 적어볼게요 ㅎㅎ

 

csv의 separator 도 comma이고, Name이라는 칼럼 내의 글자 안에도 comma 가 포함되어 있어서, 그것 역시 separator로 인식해 버려서 데이터가 전체적으로 꼬여버리는 이슈예요.

Brightics에서도 그 quote를 인지할 수 있게 하는 옵션이 있어서

'Read CSV'함수 -> quote 옵션 -> true로 바꾸면 됩니다!

하지만

저는 macOS 사용자라

두 번째 방법인 'Python Script' 함수를 사용하게 되었습니다.

브라이틱스에서 python 언어도 쓸 수 있다는 게 신기하죠?!

역시 매우 똑똑한 툴인 것 같습니다.

Python Script에서 pandas를 사용해 csv 파일을 읽는 작업을 할게요.

 

코딩 부분은

1) import pandas as pd

2) df = pd.read_csv('파일명 path.csv')

Outputs에는

'df'라고 설정하고 'OK'누르면 됩니다!

맥북에서 파일명 path를 보는 방법은

csv 파일을 우클릭하고 option 을 누르면

Copy '파일명' as Pathname이라고 뜬답니다!

저같은 경우엔 데스크톱에 저장해놔서

/Users/hasongcho/Desktop/train (3).csv

이렇게 뜨네요

아래 사진도 멘토님이 보내주셨는데,

정리를 잘 해주셔서 첨부할게요!

 

 

Train.csv 파일을 업로드했다면,

Test.csv 도 똑같은 방법으로 업로드해 주세요.

Step 2) 데이터 전처리

그다음은 데이터 전처리를 할 건데요,

먼저 'Statistic Summary'로 null 값이 있는지 확인해보겠습니다.

 

Input Columns는 Select All 하고,

Target Statistic은 null count만 해줬어요.

이건 train 파일인데, age에 null 값이 177이나 됩니다.

그다음엔 'String Summary'에 가서 똑같이

null 값이 어디에 있는지 확인해볼게요.

Input Columns는 select all 해줄게요

사진에선 안 보이지만, 테이블 맨 끝으로 가면

Cabin의 null count는 687

Embarked는 2라고 떠요.

오늘은 일단 train 세트를 업로드하고

둘러보았는데요

age, cabin, embarked는 null 값이 있고

passenger id 와 passenger name 은 모델링 할 때 불필요한 정보일 것 같아요.

하지만 모델링 하기 전에

채워야 될 값 그리고 transform 해야 할 값이 몇 가지 있어서,

다음 캐글 타이타닉 대회 2탄에서

확인해보겠습니다!

 

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