튜토리얼 환경 준비: 데이터셋 준비

  • 본 과정과 관련된 참고 교재는 현 시점에서 제공되지 않는 구 버전의 Tensorflow(1.12.3 버전)를 사용하고 있으므로 실습 불가
    • 본 과정에서는 현 시점에서의 최신 버전의 Tensorflow(2.19.0 버전), PyTorch(2.8.0+cu126 버전)를 이용하여 실습함
  • 본 과정과 관련된 참고 교재는 구 버전의 Tensorflow(1.12.3 버전)에서만 작동하는 도구를 사용하고 있으므로 실습 불가
    • 본 과정에서는 별도의 도구를 사용하지 않음

1. MNIST 데이터셋

  • 데이터셋 개요
    • National Institute of Standards and Technology
    • NIST(미국 국립표준기술연구소)에서 수집한 손글씨 숫자 데이터셋
    • 머신러닝과 딥러닝을 공부하는 사람들이 가장 먼저 접하게 되는 기본적인 데이터셋 중 하나
  • 주요 특징
    • 0부터 9까지의 손글씨 숫자 이미지로 구성
    • 28×28 픽셀 크기의 흑백 이미지 (0~255 사이의 픽셀값)
    • 총 7만 개의 이미지 (6만 개 학습용, 1만 개 테스트용)
    • 머신러닝/딥러닝 모델의 성능 평가에 널리 사용됨
  • 장점
    • 접근성: TensorFlow나 Keras 등 주요 딥러닝 라이브러리에서 쉽게 불러올 수 있음
    • 시각적 검증 용이: 숫자 이미지이기 때문에 모델의 예측 결과를 눈으로 직접 확인하고 평가하기 쉬움
    • 다양한 모델 실험: CNN(Convolutional Neural Network) 등 다양한 딥러닝 모델을 구현하고 테스트하기에 적합
  • 데이터의 기준 정보
    • 각 이미지의 크기: 28 x 28 픽셀
    • 픽셀의 값: 0 ~ 255
    • 각 이미지 데이터에 정답 데이터(0 ~ 9)가 부여되어 있음
    • 총 데이터 수: 7만쌍(이미지, 정답 쌍)
    • 훈련용 데이터셋: 6만쌍 (전체 데이터의 약 85.7%)
    • 테스트용 데이터셋: 1만쌍 (전체 데이터의 약 14.3%)
  • Tensorflow, PyTorch에서 제공하는 데이터셋을 사용함

  • 코드 예시
# TensorFlow에서 불러오기
import tensorflow as tf

(x_train, y_train), (x_test, y_test) = tf.keras.datasets.mnist.load_data()

# PyTorch에서 불러오기
import torchvision

train_dataset = torchvision.datasets.MNIST(root='./data', train=True, transform=transform, download=True)
test_dataset = torchvision.datasets.MNIST(root='./data', train=False, transform=transform, download=True)

2.2 HouseSales 데이터셋

  • 데이터셋 개요
    • 부동산 시장 분석이나 가격 예측에 주로 사용되는 데이터셋
    • 주로 회귀 분석이나 예측 모델링에 활용됨
    • 비슷하지만 조금씩 다른 여러 종류의 데이터셋이 있음
  • 대표적인 데이터셋
    • 캘리포니아 주택 가격 데이터셋
      • 1990년대 초 캘리포니아 주를 약 20,640개 구역으로 나눠 수집한 통계 자료
      • 각 구역별 중간 주택 가격과 다양한 특성(방 개수, 위치 등) 포함
    • Kaggle의 House Prices 데이터셋
      • 판매가(SalesPrice)와 건물 관련 다양한 변수 포함
      • 주택 가격 예측 모델 개발에 널리 사용됨
    • King County 주택 가격 데이터셋
      • 미국 워싱턴주 킹 카운티의 주택 판매 데이터
      • 선형회귀분석 등 다양한 분석 기법을 적용해볼 수 있음
  • 주요 특징
    • 주택의 물리적 특성(면적, 방 개수, 욕실 수 등)
    • 위치 정보(우편번호, 위도/경도 등)
    • 건축 연도, 리모델링 여부
    • 주변 환경(학교, 공원 등과의 거리)
    • 판매 가격(예측 대상 변수)
  • 교재에서 사용되는 데이터셋의 속성
    • 판매 가격: 미국 달러로 표시
    • 거주 면적: 평방피트($ft^2$)
    • 침실 개수
    • 토지 면적: 평방피트($ft^2$)
    • 건물 상태: 1~5의 값으로 표시. 5가 가장 좋은 상태
    • 구조와 디자인에 대한 평점: 1~13의 값으로 표시. 13이 최고 등급
    • 지상층의 면적
    • 지하실의 면적
  • 데이터의 기준 정보
    • 주택 관련 데이터 21,613건 포함
    • 훈련용 데이터셋: 전체의 70% (15,129건)
    • 테스트용 데이터셋: 전체의 30% (6,484건)
  • Kaggle에서 제공하는 kc_house_data.csv 데이터셋을 사용함
    • 다운로드 시 로그인 등 절차가 필요하므로 이번 과정에서는 별도로 제공하는 경로로 다운로드 함
  • 코드 예시
# Pandas를 사용하여 불러오기
import pandas as pd

file_path='https://raw.githubusercontent.com/SkyLectures/LectureMaterials/refs/heads/main/datasets/S03-10-02-02_01-kc_house_data.csv'
df = pd.read_csv(file_path)