<서론>
지난번에 작성한 이유한님의 케글 필사와 똑같은 타이타닉 데이터셋이다!
다만 이번에 필사한 것은 다른 해외 분의 케글을 필사하였다.
https://www.kaggle.com/code/ash316/eda-to-prediction-dietanic/notebook
EDA To Prediction(DieTanic)
Explore and run machine learning code with Kaggle Notebooks | Using data from Titanic - Machine Learning from Disaster
www.kaggle.com
지난번 이유한님의 케글 필사는 EDA 까지였다
하지만 이번에는 EDA 부터 Feature Engineering, 그리고 모델링까지 진행하였다!
느낀 부분
1. 오탈자 수정
data['Initial'].replace(['Mlle','Mme','Ms','Dr','Major','Lady','Countess','Jonkheer','Col','Rev','Capt','Sir','Don'],
['Miss','Miss','Miss','Mr','Mr','Mrs','Mrs','Other','Other','Other','Mr','Mr','Mr'],inplace=True)
Initial 컬럼에 있는 값을 그냥 버릴 줄 알았지만, 수정하여 활용한 부분이 신기했다.
영어 성이 익숙치 않아 생각치 못한 부분에 대한 접근을 하는 것이 신기했다. (한국 이었다면 '박' 이란 성을 '빅'으로 쓴 오탈자를 수정한 것)
2. 호칭별 평균 연령을 이용한 결측치 처리
## Assigning the NaN Values with the Ceil values of the mean ages
data.loc[(data.Age.isnull())&(data.Initial=='Mr'),'Age']=33
data.loc[(data.Age.isnull())&(data.Initial=='Mrs'),'Age']=36
data.loc[(data.Age.isnull())&(data.Initial=='Master'),'Age']=5
data.loc[(data.Age.isnull())&(data.Initial=='Miss'),'Age']=22
data.loc[(data.Age.isnull())&(data.Initial=='Other'),'Age']=46
위에 처리한 오타를 수정 후 각 호칭 별 평균 연령을 구한 후, 해당 값을 가지고 있는데 Null값들을 채워주었다.
이렇게 함으로써 Age 에서의 Null 값은 없어지게 되었다.
3. 데이터 성격별 다른 결측치 처리
data['Embarked'].fillna('S',inplace=True)
나이 같은 연속형 값은 구간별 평균을 이용해 Null값을 할당하였다면,
범주형 값들은 Null값을 최빈값을 이용해 할당하였다.
4. 여러 모델을 이용한 앙상블
여러 머신러닝 패키지들을 불러와 앙상블을 진행하였다.
사용한 예측 모델들 (여어 반갑고~)
1)Logistic Regression
2)Support Vector Machines(Linear and radial)
3)Random Forest
4)K-Nearest Neighbours
5)Naive Bayes
6)Decision Tree
7)Logistic Regression
사용한 앙상블 기법들
1)Voting Classifier
2)Bagging
3)Boosting
앙상블 기법들 중 가장 높은 점수를 받은 AdaBoost에다가
하이퍼 파라미터 수정을 하여 최대값이 83.16% (n_estimators=200 , learning_rate=0.05) 나왔다. (원작자 기준)
나도 같은 AdaBoost 에 하이퍼 파라미터 값을 수정하여 최대값 82.94% (n_estimators = 100, learning_rate=0.1) 이 나왔다.
아마 랜덤 셔플 및 여러 변수들에 의해 값이 조금 다르게 나온것 같다!
<후기>
오랜만에 사용하는 ML 모델 및 앙상블 기법들을 사용해보니 반가우면서 어색했다.. (어색한 친구 만난느낌..?)
이 모델을 왜썼더라? 모델의 특성이 뭐였더라...? 등들이 기억이 나지 않았다...
(다시 복습해야할 것 같다..)
또한 컬럼간의 상관관계에서의 느껴야 하는 부분, 각 EDA를 통해 피쳐 엔지니어링을 어떻게 진행할 지에 대한 고찰등을 많이 느끼게 되었다.
나의 필사
https://colab.research.google.com/drive/1UR8_eBsUJbdqdR9zv7ITlZwU9RmffAhs?usp=sharing
Kaggle Titanic Practice_2
Colaboratory notebook
colab.research.google.com
'IT > Analysis' 카테고리의 다른 글
[Kaggle] 케글 필사 - Porto Seguro’s safe driver prediction 2 (0) | 2024.02.23 |
---|---|
[Kaggle] 케글 필사 - Porto Seguro’s safe driver prediction (0) | 2024.02.23 |
[Kaggle] 케글 필사 - Titanic (0) | 2024.02.13 |
데이터 분석 - AARRR 모델 (AARRR Model) (1) | 2024.02.08 |
데이터 분석 - 코호트 분석(Cohort Analysis) (2) | 2024.02.08 |