튜토리얼 환경 준비: 데이터셋 준비
- 본 과정과 관련된 참고 교재는 현 시점에서 제공되지 않는 구 버전의 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)