본문 바로가기
머신러닝 (지도학습)/로지스틱 회귀분석

[로지스틱 회귀분석] 타이타닉 데이터

by 만다린망고 2023. 10. 6.
반응형

타이타닉 데이터를 이용하여 로지스틱 회귀분석을 수행하는 예제입니다. 단계별 수행 내용은 주석으로 달아놓았습니다. 검증은 repeated k-fold 교차검증을 사용하였습니다. 

 

import seaborn as sns  
import pandas as pd
from sklearn.model_selection import RepeatedKFold
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import cross_val_score
import numpy as np

#1. 데이터 불러오기
dt = sns.load_dataset('titanic')  

#2. 나이 데이터 결측치 평균으로 대체
dt['age'].fillna(value=dt['age'].mean(),inplace=True)

#3. 문자열 범주형 데이터를 숫자로 매핑
dt['sex']=dt['sex'].map({'male':1,'female':0})

#4. 피처와 타겟 설정
feature=dt[['sex','age','pclass']]
target=dt['survived']

#5. fold 나누기
folds = RepeatedKFold(n_splits=10,n_repeats=100, random_state=3)

#6. 모델 생성하기
my_model = LogisticRegression()

#7. repeted K-fold CV로 모델 평가하기
scores = cross_val_score(my_model, feature, target,scoring='roc_auc', cv=folds)

#8. 결과 출력
print('AUC : %.3f (%.3f)' % (np.mean(scores),np.std(scores)))

 

결과는 아래와 같습니다. 

 

>>> print('AUC : %.3f (%.3f)' % (np.mean(scores),np.std(scores)))
AUC : 0.846 (0.044)

 

아래는 타이타닉데이터 피처들의 설명입니다. 

1. survived : 생존 여부 (0이면 사망, 1이면 생존)
2. pclass : 객실 등급 (1,2,3등급)
3. sex : 성별 
4. age
5. sibsp : 함께 탑승한 형제 및 배우자 수)
6. parch : 함께 탑승한 자녀 및 부모 수)
7. fare : 요금
8. embarked : 탑승지 (C는 Cherbourg, Q는 Queenstown, S는 Southampton)
9. class : 객실 등급 (First면 1등급, Second면 2등급, Third면 3등급)
10. who 남자, 여자, 아이 (man, woman, child)
11. adult_male : 성인 남자인지 여부
12. deck : 선실 번호 첫 알파벳 
13. embark_town 탑승지 이름 (Cherbourg, Queenstown, Southampton)
14. alive : 생존여부 (no면 사망, yes면 생존)
15. alone : 혼자 탑승했는지 여부

반응형

댓글