AI/파이썬 머신러닝 완벽 가이드

데이터 전처리 실습 with 타이타닉 생존자 예측

ardoh 2024. 7. 16. 21:19

[Step 1] 데이터 로딩

1. 캐글 사이트에서 데이터를 다운로드 한다. 

https://www.kaggle.com/c/titanic/data

 

 

Titanic - Machine Learning from Disaster | Kaggle

 

www.kaggle.com

 

2. pandas 를 import 한다. 

3. read_csv() 를 이용하여 파일을 읽는다. 

 

import pandas as pd

titanic=pd.read_csv('/파일 경로/train.csv')

 

[Step 2] 데이터 확인

🧡 info()

 

🧡 describe()

개략적인 데이터 분포도를 확인할 수 있다. count 는 not null 인 데이터 건수, std 는 표준편차를 의미한다. 

 

🧡 value_counts()

해당 칼럼값의 유형과 건수를 알 수 있다. 

column 분석

  • PassengerID : 탑승객 고유 아이디
  • Survived : 탑승객 생존 유무 (0: 사망, 1: 생존)
  • Pclass : 객실의 등급 (1등석, 2등석, 3등석)
  • SibSp : 동반한 Sibling(형제자매)와 Spouse(배우자)의 수
  • Parch : 동반한 Parent(부모) Child(자식)의 수
  • Ticket :티켓 번호
  • Fare : 티켓의 요금
  • Cabin : 객실번호
  • Embarked : 중간 정착 항구 ( C = Cherbourn, Q = Queenstown, S = Southampton

 

[Step 3] 결손값 처리

머신러닝 알고리즘에서 NaN 값은 평균, 총합 등의 함수 연산 시 제외가 된다. 따라서 NaN 값은 다른 값으로 대체해야 한다. NaN 값이 대부분이면 해당 컬럼을 드롭하는 것이 좋다. 

 

🧡 isna()

우선, 결손 데이터 여부를 확인한다. NaN 여부를 True 나 False 로 알려준다. sum() 함수를 통해 결손 데이터의 개수도 구할 수 있다. 

🧡 fillna()

결손 데이터를 확인했으면, 이제 대체할 차례다. fillna 함수의 파라미터에 대체할 값을 적어준다. 

[Step 4] 문자열 피처 처리

Cabin 값의 분포를 보면 값이 너무 다양하다. 맨 앞에 있는 알파벳만 중요하기 때문에 첫 번째 알파벳만 슬라이싱 해주자.

[Step 5] 레이블 인코딩

Cabin, Sex, Embarked 는 문자열 이기 때문에 이를 숫자형 카테고리 피처로 변환해 주어야 한다. 

 

🧡 LabelEncoder 

카테고리 값의 유형 수에 따라 0부터의 숫자값으로 변환한다. 

 

[데이터 전처리 정리]

Null 처리, 불필요한 피처 제거, 레이블 인코딩 한 번에 실행하는 데이터 전처리 함수 transform_features 를 만들었다. 

[Step 6] 피처 데이터 세트와 레이블 데이터 세트 추출

이제 학습을 시작해보자. 원본 데이터를 재로딩하고, 피처 데이터 세트와 레이블 데이터 세트를 추출하자. 

생존여부를 알아내는 것이 목표이기 때문에 Survived 칼럼만을 추출하여 결정값 데이터 세트를 만든다. 반대로, 피처 데이터 세트에서는 생존 여부를 맞춰야 하기 때문에 Survived 칼럼을 삭제한다. 

그 후에 Null 처리, 불필요한 피처 제거, 레이블 인코딩 을 다시 진행한다. 

[Step 7] 텍스트 데이터 세트 추출

🧡 train_test_split() 

테스트 데이터와 훈련 데이터를 분리한다. 테스트 데이터는 전체의 20% 로 하기 위해 test_size=0.2 로 한다. 

 

'AI > 파이썬 머신러닝 완벽 가이드' 카테고리의 다른 글

SVM  (0) 2024.09.26
분류 실습 with 산탄데르 고객 만족 예측  (0) 2024.07.26
회귀  (0) 2024.07.04
분류  (0) 2024.05.24
평가  (0) 2024.05.24