본문 바로가기
Learn Coding/python

파이썬 머신러닝 - Titanic 생존자 예측하기(Kaggle)#1

by 북극성매니아 2021. 11. 25.
반응형

출처-kaggel

 

머신러닝(Machine Learing) 학습과정 순서

1. 문제정의
2. 데이터수집(크롤링, 공공데이터, IOT센서데이터, 설문조사)
3. 데이터전처리(결측치,특성공학)
4. 탐색적 데이터분석(시각화, EDA)
5. 모델선택(머신러닝(지도학습:분류,회귀), (비지도학습:군집,연관), 딥러닝, 강화학습)
6. 모델학습
7. 모델평가(오차,R2,F1,엔트로피)
8. 예측, 추론


1) 문제정의

  • 실제 kaggle 데이터인 타이타닉 데이터를 이용해 머신러닝을 진행
  • 타이타닉 데이터의 승객들 정보를 가지고 이 승객의 사망여부를 예측
  • 이진분류 문제(생존/사망)

 

2) 데이터수집

Kaggel사이트에서 데이터파일 다운로드(Download All)

 

 

Titanic - Machine Learning from Disaster | Kaggle

 

www.kaggle.com

 

Titanic 데이터 다운받기

Titanic 데이터 다운로드

 

3개의 Data파일

1. gender_submission.csv

: test데이터를 기반으로 생존자예측하여 kaggle에 제출(일종의 답안지)

 

2. test.csv

: 승객 891명의 데이터로 Survived(생존여부) 포함 12개 컬럼 데이터

 

3. train.csv

: 승객 418명의 데이터로 Survived(생존여부)를 제외한 11개 컬럼 데이터

 

데이터 기본 정보

Titanic 데이터 기본정보


3) 데이터전처리(결측치,특성공학)

# 라이브러리 import하기
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

# 데이터파일 읽어오기
train = pd.read_csv("data/titanic_train.csv", index_col="PassengerId")
test = pd.read_csv("data/titanic_test.csv",index_col="PassengerId")

# 데이터 행과 열 파악
train.shape, test.shape

((891, 11), (418, 10))

# 데이터 기본 정보
train.info()

<class 'pandas.core.frame.DataFrame'>
Int64Index: 891 entries, 1 to 891
Data columns (total 11 columns):
 #   Column    Non-Null Count  Dtype  
---  ------    --------------  -----  
 0   Survived  891 non-null    int64  
 1   Pclass    891 non-null    int64  
 2   Name      891 non-null    object 
 3   Sex       891 non-null    object 
 4   Age       714 non-null    float64
 5   SibSp     891 non-null    int64  
 6   Parch     891 non-null    int64  
 7   Ticket    891 non-null    object 
 8   Fare      891 non-null    float64
 9   Cabin     204 non-null    object 
 10  Embarked  889 non-null    object 
dtypes: float64(2), int64(4), object(5)
memory usage: 83.5+ KB

# 데이터(train) 결측값 파악
train.isnull().sum(axis=0)

Survived      0
Pclass        0
Name          0
Sex           0
Age         177
SibSp         0
Parch         0
Ticket        0
Fare          0
Cabin       687
Embarked      2
dtype: int64

# 데이터(test) 결측값 파악
test.isnull().sum(axis=0)

Pclass        0
Name          0
Sex           0
Age          86
SibSp         0
Parch         0
Ticket        0
Fare          1
Cabin       327
Embarked      0
dtype: int64

 

반응형

댓글