머신러닝이 무엇인지 맛 보려고 타이타닉을 진행해보았습니다.
'타이타닉'은 영화로 가장 잘 알려져 있는데, 영화로 여러번 보았는데 여기서 만났습니다.
찾아보니 1912년 4월 10일 영국의 사우샘프턴을 떠나 미국의 뉴욕으로 향하던 첫 항해 중에 4월 15일 빙산과 충돌하여 침몰하였다. 타이타닉이 완전히 침몰한 시간은 새벽 2시 20분이다. 타이타닉의 침몰로 1,514명이 사망한 사고 라고 알려져 있습니다. (위키백과)
처음에는 한개씩 따라 치기 시작했는데, 처음이다 보니 그저 읽고 따라치고 이해하려고 애쓰다보니 조금씩 읽히기 시작했다. 처음에는 데이터가 어떤 것이 있는지 살펴보는 것 위주로 진행했고, 여러 신기한 명령어들이 많았습니다. csv파일을 이런 저런 방식으로 차트를 만들면서 데이터를 이해하는 부분이 재밌있기도 했습니다. - 이런 데이터들을 활용한다면 여러 다른 분야에서 데이터를 활용하여 생명을 살릴 수 있는 일들이 있지 않을지!
저는 공식 캐글 블로그에있는 이요한님의 정리를 보면서 처음 필사를 진행해보았습니다. 코랩 환경으로 진행해보았어요.
제가 모르는 것을 위주로 정리를 하다보니 자세하게 하게 되네요. 시작합니다!
이렇게 진행될 예정이에요. - 목차
1. 데이터 셋 확인 ---------------- 캐글의 데이터셋을 불러오고, 데이터를 분석하기 전 데이터를 확인합니다.
- Null data 확인
- 핵심 데이터의 라벨 확인
2. 탐색적 데이터 분석 ---------- 여러 항목들을 차트를 그리면서 어떻게 전처리를 할지 탐색해봅니다. 재밌어요!
사용하는 모듈(패키지)은 다음과 같습니다.
'numpy' - Python에서 과학 연산을 위한 가장 기본적인 패키지 중 하나이며, NumPy는 "Numeric Python"의 약자
'pandas' - 는 파이썬에서 데이터 분석을 위한 가장 많이 사용되는 라이브러리
'matplotlib' - 파이썬에서 가장 대중적인 데이터 시각화 라이브러리
'seaborn' - Matplotlib를 기반으로 다양한 색상 테마와 통계용 차트 등의 기능을 추가한 시각화 모듈
'missingno' - pandas 모듈의 데이터 프레임에서 결측치를 찾는 기능을 제공
import 하기
# import numpy 뒤에 as np를 씀으로 앞으로 약자인 np 로 numpy 모듈을 사용할 수 있습니다.
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
데이터 불러오기
pandas 모듈의 read_csv()함수를 사용해서 파일을 로드합니다. 그리고 나서 df_train이라는 변수에 할당합니다.
df_train = pd.read_csv('train.csv')
# head() 명령어로 훈련시킬 데이터 셋의 상위 5가지 항목을 표시합니다.
df_train.head()
결과
여기서 데이터에 대한 정보를 얻을 수 있습니다.
컬럼 개수는 12개이고, 각 PassengerId , Survived, Pclass, Name, Sex, SibSp, Parch, Ticket, Fare, Cabin, Embarked 항목이 있군요.
궁금해서 찾아봤는데 다음 명령어로 컬럼 개수도 조회해볼 수 있는 것이 재미있네요!
반복문을 사용해서 train 데이터와 test 데이터의 모든 column들의 NaN (결측치, null 값)을 확인합니다.
=> 비슷하게 NaN값이 분포하는 것을 알 수 있습니다. 이 부분에서 print의 새로운 사용법을 확인할 수 있었습니다.
{:>10} : '10글자를 오른쪽 정렬하겠다'
df_train[col].isnull().sum() : df_train의 각 column값의 null(NaN) 값의 합
df_train[col].shape[0] : data_frame의 shape 속성은 (행, 열)의 개수(count)를 뜻합니다.
df_train.shape의 값이 (891, 12) 이니 .shape[0] 값은 891 이네요!
아래의 코드를 통해 df_train, df_test 데이터 셋에서 모든 컬럼의 NaN 값이 얼마나 존재하는지
그리고 두번째 그래프를 통해 NaN값의 분포와 시각화를 해서 볼 수 있군요!
missingno 모듈로 시각화를 해볼 수 있습니다. 여기서는 matrix 차트를 사용했습니다.
(참고로 iloc은 정수 인덱싱을 사용하여 DataFrame에서 데이터를 선택하는 함수입니다.)
여기서는 bar차트를 사용하여 나타냈네요. 옆의 figsize는 figure size를 의미하며 차트의 사이즈를 조절할 수 있습니다.
df_test 데이터도 똑같이 널값 검사를 해봐야합니다. train 데이터와 거의 비슷하게 나오네요. 스크롤의 압박으로 올리지는 않았습니당..ㅎㅎ!!
오늘은 여기까지! 내일은 조금 더 깊숙히 다이브 해봐야겠습니다 !
긴글 봐주셔서 감사합니다.
'IT > 캐글' 카테고리의 다른 글
[캐글] 타이타닉 - 탐색적 데이터 분석(EDA) 정리 (0) | 2024.06.07 |
---|---|
[캐글] 처음 시작하는 캐글 - 타이타닉(4) (0) | 2024.06.04 |
[캐글] 처음 시작하는 캐글 - 타이타닉(3) (0) | 2024.05.29 |
[캐글] 처음 시작하는 캐글 - 타이타닉(2) (0) | 2024.05.28 |
[캐글] 처음 시작하는 캐글 - 타이타닉(1) (0) | 2024.05.24 |