DS and stats

[Kaggle] Titanic - Machine Learning from Disaster 본문

Kaggle

[Kaggle] Titanic - Machine Learning from Disaster

으르미 2022. 6. 27. 03:47

여름 논문시즌이 시작되면서 시간이 좀 남게 되었다.

수업이 모두 다 끝나면서 미팅때문에 학교 가는 것 아니면 (이것도 나만 감 ,,, 주로 온라인이 대세)

주중에는 개인적으로 작업하는 시간이 되어버려서 

집중이 잘 안되고 취업도 아직 입사하려면 최소 3개월은 더 있어야해서 

graduate scheme이 아닌 나는 잠시 붕 뜬 상태가 되버렸음 ㅜㅜ

그래서 그 동안 kaggle을 이용해서 포트폴리오를 쌓을 계획이다 ㅋㅋㅋ

 

toward datascience를 구독하던 중에

https://towardsdatascience.com/10-datasets-from-kaggle-you-should-practice-on-to-improve-your-data-science-skills-6d671996177

 

10 Datasets from Kaggle You Should Practice On to Improve Your Data Science Skills

Hone your skills by working through these 10 datasets

towardsdatascience.com

kaggle에서 연습해야하는 10가지 데이터 셋 관련된 아티클을 보게 되었다. 

그래서 그 날 당장 접속해서 1번째 데이터셋인 Titanic - Machine Learning from Disaster을 분석하기 시작함ㅋㅋㅋ

 

특히 2학기부터는 R을 더 많이 사용하고 논문도 R을 이용하고 있어서

이번에는 파이썬을 중심으로 분석하려고 한다 

자꾸 안쓰니까 까먹을라함 ㅜㅜ

 

우선 이 분석의 목적은 어떤 분류의 사람이 살아남을 가능성이 높은지 예측하는 것이다.

 

3개의 데이터셋과 1개의 오리지널 데이터셋을 주는데

train: 우리가 예측모델을 만들어야하는 데이터 셋, 생존 결과도 포함되어 있다

test: train을 이용하여 만든 모델로 잘 예측되었는지 test하는데 사용될 데이터

gender_submission: 예측 결과 예시, 여성을 대상으로 생존인지 아닌지를 나타내고 있다. 

 

survival rate for men:  18.89 %
survival rate for women:  74.2 %

성별로는, 여자보다 남자가 생존확률이 약 4배 정도 더 높은 것을 확인할 수 있었고, 

 

survival rate for first class:  62.96 %
survival rate for second class:  47.28 %
survival rate for third class:  24.24 %

Pclass(티켓등급)을 기준으로, 1등급에 있는 승객들의 생존확률이 가장 높고, 등급이 낮을 수록 생존확률도 희박하다는 것을 볼 수 있었다. 

 

그 외에도 correlation matrix를 통해서도 성별과 티켓 등급, 요금의 상관관계가 가장 높다는 것을 볼 수 있었는데

요금과 티켓 등급사이에는 강한 상관관계가 있으므로 요금과 관련해서는 따로 분석을 진행하지 않았다.

 

그 이후에는 랜덤포레스트 라이브러리를 이용해서

분류를 진행하였다. 

random forest = decision tree+bagging+random shape method 인데, 

 

bagging이란: 더 많은 데이터를 모으기 보다는, 교차로 사용하여 통계량을 계산하고

정확도를 높이는 bootstrapping을 적용하여 추정량을 결과로 내는 것

 

random shape(=subspace) method: 피쳐들에 부트스트랩을 적용하고 중복된 데이터를 제거하는 것

 

그리고 크게 2가지 타입으로 나눌 수 있는데

분류 트리(Y/N) : 지니계수가 최소화되거나 information gain이 최대가 될 때 쪼갠다.

 

회귀 트리(데이터가 연속적임): 분산이 최소가 되거나 information gain이 최대가 될 때 쪼갠다.

정규분포에 적합함. 

 

성능을 측정하려면 confusion matrix나 ROC 커브를 사용하면 된다. 

케글은 제출 후에 점수가 나와서 따로 성능을 체크하진 않았는데

포트폴리오로 사용하려면 성능 체크를 하는 것까지 마무리하는 것이 좋긴 할 것 같다. 

Comments