본문 바로가기
머신러닝 & 딥러닝

4. 타이타닉 데이터셋

by 곽정우 2024. 6. 10.

1. 캐글(Kaggle)

    • 소개: 구글에서 운영하는 전 세계 AI 개발자 및 데이터 사이언티스트들이 데이터를 분석하고 토론할 수 있는 플랫폼입니다. 데이터 분석, 머신러닝, 딥러닝 대회를 개최하며 다양한 데이터셋, 파이썬 자료, R 자료 등을 제공합니다.
    • 주요 기능:
      • 데이터 분석 및 머신러닝, 딥러닝 대회 개최
      • 다양한 데이터셋 제공 (공개, 비공개)
      • 파이썬, R 프로그래밍 언어 학습 자료 제공
      • 데이터 과학 커뮤니티 운영
    • 활용 방법:
      • 대회 참여: 머신러닝 실력 향상, 새로운 데이터셋 발굴
      • 데이터셋 활용: 개인 연구, 프로젝트 진행
      • 커뮤니티 참여: 다른 데이터 과학자들과 교류, 정보 공유
    • 링크: https://www.kaggle.com/

 

 

sklearn.datasets

Utilities to load popular datasets and artificial data generators. User guide. See the Dataset loading utilities section for further details. Loaders: Sample generators:

scikit-learn.org

 

2. 데이콘(Dacon)

  • 소개: 국내 최초 AI 해커톤 플랫폼으로 전문 인력 채용 및 학습을 위한 다양한 AI 자료를 제공합니다.
  • 주요 기능:
    • AI 경진 대회 개최: 다양한 분야의 AI 문제 해결 능력 경쟁
    • 온/오프라인 교육 제공: 데이터 과학 및 머신러닝 교육 프로그램
    • 문제 기반 학습 서비스: 실제 문제 해결을 통한 학습 경험 제공
  • 활용 방법:
    • 대회 참여: AI 실력 검증, 경력 개발
    • 교육 참여: 데이터 과학 및 머신러닝 지식 습득
    • 학습 서비스 활용: 실무에 도움이 되는 실질적인 문제 해결 능력 향상
  • 링크: https://dacon.io/
  • https://dacon.io/
 

데이터사이언티스트 AI 컴피티션

10만 AI 팀이 협업하는 데이터 사이언스 플랫폼. AI 경진대회와 대상 맞춤 온/오프라인 교육, 문제 기반 학습 서비스를 제공합니다.

dacon.io

 

 

3. AI 허브

  • 소개: 한국지능정보사회진흥원에서 운영하는 AI 통합 플랫폼으로 AI 기술 및 제품 서비스 개발에 필요한 AI 인프라를 제공합니다.
  • 주요 기능:
    • AI 알고리즘, 데이터셋, 컴퓨팅 자원 등 제공
    • AI 모델 개발, 훈련, 평가를 위한 도구 제공
    • AI 관련 기술 및 동향 정보 제공
  • 활용 방법:
    • AI 모델 개발: 알고리즘, 데이터셋, 컴퓨팅 자원 활용
    • AI 모델 훈련 및 평가: 제공되는 도구 활용
    • AI 기술 및 동향 파악: 관련 정보 활용
  • 링크: https://www.aihub.or.kr/
  • https://www.aihub.or.kr/
 

AI-Hub

[한국어] 감성 대화 말뭉치 #코퍼스 # 감성대화 # 감성 챗봇 # 우울증 예방 조회수 84,889 관심등록 259 다운수 10,235

www.aihub.or.kr

 

4. 타이타닉 데이터

 

  • 소개: 타이타닉 침몰 사고와 관련된 승객 정보 데이터
  • 데이터 구성:
    • PassengerId: 승객 ID
    • Survived: 생존 여부 (0: 사망, 1: 생존)
    • Pclass: 좌석 등급
    • Name: 이름
    • Sex: 성별
    • Age: 나이
    • SibSp: 형제, 자매, 배우자 수
    • Parch: 부모, 자식 수
    • Ticket: 티켓 번호
    • Fare: 요금
    • Cabin: 선실 번호
    • Embarked: 탑승 항구
  • 활용:
    • 머신러닝 모델 학습: 생존 여부 예측 모델 개발
    • 데이터 분석: 생존 여부에 영향을 미치는 요인 분석
    • 데이터 시각화: 데이터 패턴 및 통계 분석 결과 시각화
  • 링크: https://bit.ly/fc-ml-titanic

 

train.csv
0.06MB

import pandas as pd
df = pd.read_csv('https://bit.ly/fc-ml-titanic')
df

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

 

5. 데이터 전처리

  • 넓은 범위의 데이터 정제 작업을 뜻함
  • 필요없는 데이터를 삭제하고, 필요한 데이터만 취하는 것, null값이 있는 행을 삭제하는것, 정규화 등의 많은 작업들을 포함하고 있음
  • 머신러닝, 딥러닝 실무에서도 전처리가 50% 이상의 중요도를 차지함

5-1.  독립 변수와 종속 변수로 나누기

 

  • 독립 변수: 모델에 입력되는 변수 (예: 나이, 성별, 혈압)
  • 종속 변수: 모델이 예측하는 변수 (예: 생존 여부, 질병 유무, 주택 가격)
# feature = ['Pclass', 'Sex', 'Age', 'Fare'] # 독립변수
# label = ['Survived'] # 종속변수
columns = ['Pclass', 'Sex', 'Age', 'Fare', 'Survived']
df[columns].head()

df['Survived'].head()

df['Survived'].value_counts()

 

5-2. 결측치 처리

  • 누락된 데이터 값 처리 방법
      • 삭제: 결측치가 있는 행/열 제거 (데이터 손실 발생 가능성)
      • 보간: 평균, 중앙값, 최빈값 등으로 결측치 채우기 (데이터 분포 변형 가능성)
      • 예측: 다른 변수를 활용하여 결측치 예측 (모델 학습 필요)
df.info()

df.isnull().sum()

df.isnull().mean()

df['Age'] = df['Age'].fillna(df['Age'].mean())
df['Age']

 

 

5-3. 라벨 인코딩(Label Encoding)

  • 문자(Categorycal)를 수치(Numerical)로 변환
  • 각 범주에 고유한 값 (숫자) 할당
  • 단점: 범주 간 순서 반영 불가능, 희소 행렬 발생 가능성
df.info()

df['Sex'].value_counts()

# 남자는 1, 여자는 0으로 변환하는 함수
def convert_sex(data):
    if data == 'male':
        return 1
    elif data == 'female':
        return 0
df['Sex'] = df['Sex'].apply(convert_sex)
df.head()

from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
df['Embarked'].value_counts() # null은 제거

embarked = le.fit_transform(df['Embarked'])
embarked # null: 3

le.classes_ # array(['C', 'Q', 'S', nan]

 

5-4. 원 핫 인코딩(One Hot Encoding)

  • 독립적인 데이터는 별도의 컬럼으로 분리하고 각각 컬럼에 해당 값에만 1, 나머지는 0값을 갖게 하는 방법
  • 범주형 데이터를 수치형 데이터로 변환하는 방식
  • 각 범주에 대해 새로운 컬럼 생성
  • 장점: 범주 간 순서 반영 가능, 모델 학습 용이
  • 단점: 데이터 차원 증가, 희소 행렬 발생 가능성 증가
df['Embarked_num'] = LabelEncoder().fit_transform(df['Embarked'])
df.head()

pd.get_dummies(df['Embarked_num'])

df = pd.get_dummies(df, columns=['Embarked'])
df.head()

df = df[columns]
df

df = pd.get_dummies(df, columns=['Pclass', 'Sex'])
df.head()

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(df.drop('Survived', axis=1), df['Survived'], test_size=0.2, random_state=2024)
X_train.shape, X_test.shape

y_train.shape, y_test.shape

X_train

'머신러닝 & 딥러닝' 카테고리의 다른 글

6. 의사 결정 나무  (1) 2024.06.11
5. 선형 회귀  (0) 2024.06.11
3. 아이리스 데이터셋  (0) 2024.06.10
2. 사이킷런(Scikit-Learn)  (0) 2024.06.10
1. 머신러닝  (0) 2024.06.10