캐글 타이타닉 ( 1 )
공부 기록 블로그 시작!!
어떻게 쓰는건지 잘 모르겠다...
일기도 안 쓰고 기록이란걸 너무 오랜만에 해봐서..어떻게든 되겠지!!!
일단 go on
시작은 캐글 타이타닉 데이터로
https://youtu.be/_iqz7tFhox0?list=PLC_wC_PMBL5MnqmgTLqDgu4tO8mrQakuF
캐글 타이타닉 Titanic -1. Dataset check
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
plt.style.use('seaborn')
sns.set(font_scale=2.5)
import missingno as msno
# ignore warnings
import warnings
warnings.filterwarnings('ignore')
%matplotlib inline
df_train = pd.read_csv('../input/titanic/train.csv')
df_test = pd.read_csv('../input/titanic/test.csv')
사용하는 lib
- numpy
-pandas: csv, exel 등 다양한 파일 읽을 수 있다.
-matplotlib
-seaborn
-missingno : 채워지지 않은 널 값을 쉽게 보여주는 lib
-warnings : ignore로 하여 경고가 뜨지 않게 한다.
시작전에 스타일과 폰트 사이즈를 지정해서 매번 지정하는 번거로움을 줄인다.
%matplotlib inline : 코드 아래에 바로 표현되게 하는 것
*sklearn : 머신러닝을 하는 lib
df_train.head : 데이터셋의 처음 부분을 출력 / 기본값 : 5개
df_train.describe() : 간단한 통계적 수치 알려준다.( 개수, 평균 등)
df_train[col].isnull().sum() : df_train 열에 널값의 합을 의미
![]() |
![]() |
msno.matrix(df=df_train.iloc[:,:], figsize=(8,8), color = (0.8,0.5,0.2))
matrix의 흰 부분은 널값을 의미
msno.bar(df=df_train.iloc[:,:], figsize=(8,8), color = (0.8,0.5,0.2))
matrix를 bar로 바꾸면 오른쪽 그림처럼 나온다.
캐글 타이타닉 Titanic - 2. EDA - Pclass
-EDA : 탐색적 데이터 분석
https://youtu.be/sDH2zr48gTE?list=PLC_wC_PMBL5MnqmgTLqDgu4tO8mrQakuF
f, ax = plt.subplots(1,2,figsize=(18,8))
df_train['Survived'].value_counts().plot.pie(explode=[0,0.1], autopct='%1.1f%%', ax=ax[0], shadow=True)
ax[0].set_title('Pie plot - Survived')
ax[0].set_ylabel('')
sns.countplot('Survived', data=df_train, ax=ax[1])
ax[1].set_title('Count plot - Survived')
plt.show()
f, ax = plt.subplots(1,2,figsize=(18,8))
-> 도화지 그리는 것 (행, 열 , 사이즈(가로, 세로))
- explode : 쪼개는 것
- autopct : 퍼센트의 형식을 나타냄
- shadow : 그림자
df_train[['Pclass', 'Survived']].groupby(['Pclass'], as_index=True).count()
- Pclass로 묶어서 Survived의 갯수를 나타냄.
pd.crosstab(df_train['Pclass'], df_train['Survived'], margins= True).style.background_gradient(cmap='cool')
-crosstab
-margin : All의 유무를 나타냄
-style.background_gradient(cmap='cool') : 테마를 지정할 수 있다.
df_train[['Pclass', 'Survived']].groupby(['Pclass'], as_index=True).mean().sort_values(by='Survived', ascending=False).plot()
df_train[['Pclass', 'Survived']].groupby(['Pclass'], as_index=False).mean().sort_values(by='Survived', ascending=False).plot()
![]() |
![]() |
- 두 그래프는 as_index=True / False의 차이이다.
- as_index는 index로의 사용 여부를 결정한다.
- ascending : 오름차순을 의미
y_position = 1.02
f, ax = plt.subplots(1,2,figsize=(18,8))
df_train['Pclass'].value_counts().plot.bar(color=['#CD7F32','#FFDF00','#D3D3D3'], ax=ax[0])
ax[0].set_title('Number of passengers By Pclass', y=y_position)
ax[0].set_ylabel('Count')
sns.countplot('Pclass', hue='Survived', data=df_train, ax=ax[1])
ax[1].set_title('Pclass : Survived vs Dead', y=y_position)
plt.show()
-hue : 색깔로 구분시켜줄 때 사용