Python(Colab) 타이타닉 데이터 셋 (Titanic data set)(LabelEncoder)

2023. 6. 12. 16:24파이썬/머신러닝 및 딥러닝

1. 기초 설정

import numpy as np
import pandas as pd
 
df.head()
 

 

 

 

2. 데이터 정보 확인

df.info()
 

 

 

 

3. 데이터 셋 컬럼 설명

* PassengerId : 승객 아이디
* Survived : 생존 여부
* Pclass : 좌석 등급
* Name : 이름
* Sex :  성별
* Age : 나이
* SibSp : 형제자매 배우자수
* Parch : 부모 자식 수  
* Ticket: 티켓번호
* Fare: 요금  
* Cabin: 선실번호  
* Embarked : 탑승 항구

 

 

 

4. 학습 데이터와 검증 데이터 나누기

 

독립변수 column : 성별, 요금, 나이, 좌석등급

종속변수 column : 생존 여부

 

# 독립변수
feature = ['Sex','Fare','Age','Pclass'] 
 
 
# 종속변수
label = ['Survived'] 
 
df[feature].head()
 
 
df[label].head()
 

 

 

 

5. 결측치 확인 및 처리

df.isnull().sum()
 
#나이, 선실번호, 탑승항구  NaN 값 확인
 
 
 
#나이 결측치를 평균을 넣어서 처리 
df['Age'] = df['Age'].fillna(df['Age'].mean())

 

 

 

 

6. 라벨 인코딩 (Label_Encoding)

문자를 수치로 변환하는 작업

1) apply(함수)를 이용하기

def conver_sex(data):
    if data == 'male':
        return 1
    else:
        return 0
 
df['Sex'] = df['Sex'].apply(conver_sex)

 

2) 라벨인코딩 모듈 사용해보기

from sklearn.preprocessing import LabelEncoder
 
le = LabelEncoder()
 
le.fit_transform(df['Embarked'])
 

 

 

 

 

7. le(라벨인코딩) 숫자의미 확인하기

 

.classes_

le.classes_
 

 

 

 

 

8. 원 핫 인코딩하기(One Hot Encoding)

✔ 원 핫 인코딩 

> 독립적인 데이터는 별도의 컬럼으로 분리하고 각각 컬럼에 해당하는 값에만 1, 나머지는 0의 값을 갖게하는 법

 

새로운 파생변수로 라벨 인코딩 

df['Embarked_num'] = LabelEncoder().fit_transform(df['Embarked'])
 
df.head()
 

탑승 항구 원 핫 인코딩

pd.get_dummies(df['Embarked'])
 

 

 

9. 학습데이터와 검증데이터를 분할 후 학습시키기

from sklearn.model_selection import train_test_split
 
 
# 검증데이터 20% / 데이터가 변하지 않게 random_state를 준다
X_train, X_test, y_train, y_test = train_test_split(df[feature]
                                                    ,df[label]
                                                    ,test_size=0.2
                                                    ,random_state=10)
728x90