import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.linear_model import LogisticRegression
titaninc_df = pd.read_csv('/Users/t2023-m0017/Desktop/[파이썬]/ML/titanic/train.csv', encoding= 'utf-8')
titaninc_df.head(3)
2. 데이터 살펴보기
숫자형 데이터: age, sibsp, parch, fare
범주형 데이터: pclass, sex, cabin, embarked
이산형 데이터: survived
# info(): 데이터에 대한 결측치, 데이터전체 갯수 등을
titaninc_df.info()
null 값이 있는 데이터: cabin > age > embarked
3. 분석하기
가설 1. 성별과 생존의 관계, 여성일 수록 생존확률이 높을 것이다
방법: pivot table > 그래프
피벗테이블로 확인하기
pt = pd.pivot_table(titaninc_df, # 피벅할 데이터프레임
index= 'Sex', # 행 위치에 들어갈 열 -> female, male
columns = 'Survived', # 열 위치에 들어갈 열 -> 0,1
aggfunc = 'size') # 데이터 집계함수 -> 수량
4. 평가하기
정확도 = 예측하여 맞춘갯수 / 전체데이터
* 여성은 전부 살았고 남성은 전부 적었다 라고 가정할 때 실제로 생존한 여성: 233, 실제로 사망한 남성: 468
total_p = len(titaninc_df) # 전체데이터
(233+468)/total_p*100 # 정확도 계산
>> 78.67564534231201
약 79% 정확함
💡정확도 계산하기
(TP +TN)/(TP+FP+TN+FN) = 실제생존한 여성의 수 + 실제 사망한 남성의 수 / 전체 인원수
그래프 그리기
sns.countplot(titaninc_df, x = 'Sex', hue ='Survived')