SKALA 3기 강의 실습용 데이터셋 추천 (모듈별 3-5개)
데이터분석 및 MLOps 7개 모듈별 실습 데이터셋 추천 기준: 행 수 1,000~50,000 | 포맷 CSV/직접 로드 가능 | 공개 데이터(Kaggle + 정부)
Module 1: 데이터 분석을 위한 Python 이해 (24h)
학습 목표: Python 기초 + 데이터 로드 + 타입 검증 + 환경설정
추천 데이터셋 1: Iris Dataset
- 출처: UCI Machine Learning Repository / Kaggle
- 링크: https://www.kaggle.com/datasets/uciml/iris
- 행/열: 150행, 5열 (매우 소형)
- 특징:
- 가장 작은 데이터셋으로 Python 기본 조작 학습에 최적
- 4개의 수치형 특성(꽃잎 길이/너비, 꼭지 길이/너비) + 종(Species) 분류 레이블
- 결측치 없음 → 데이터 로드 후 즉시
info(),describe(),head()활용 가능
- 난이도: 초급
- 포맷: CSV (직접 pandas.read_csv() 로드)
- 활용 방법:
import pandas as pd df = pd.read_csv('iris.csv') print(df.info()) # 타입 검증 print(df.describe()) # 기초 통계
추천 데이터셋 2: Titanic Dataset
- 출처: Kaggle (kaggle.com/competitions/titanic)
- 링크: https://www.kaggle.com/competitions/titanic/data
- 행/열: 891행(학습), 12열
- 특징:
- 혼합 자료형: 수치형(Age, Fare), 범주형(Sex, Embarked), 텍스트(Name) 포함
- 실제 결측치 있음(Age ~20%, Cabin ~77%) → 데이터 품질 문제 경험
- Pydantic 모델 설계 실습 가능: 승객 정보 스키마 정의
- 난이도: 초급~중급
- 포맷: CSV
- 활용 방법:
- Python venv/poetry 설정 연습
- Pydantic BaseModel로 데이터 검증
- 타입 힌트와 validator 조합 학습
추천 데이터셋 3: Boston Housing Dataset (또는 대체: California Housing)
- 출처: Kaggle / sklearn.datasets
- 링크: https://www.kaggle.com/datasets/altruistdelhihigh/boston-housing-dataset
- 행/열: 506행, 14열 (원본 Boston) / 20,640행, 9열 (California Housing)
- 특징:
- 순수 수치형 데이터셋 → 타입 검증이 간단
- 회귀 문제(주택 가격 예측) 준비
- 모든 특성 설명 명확함
- 난이도: 초급
- 포맷: CSV
- 활용: 환경 변수 설정, 데이터 로드 경로 관리 연습
추천 데이터셋 4: Breast Cancer Dataset (UCI)
- 출처: UCI Machine Learning Repository / Kaggle
- 링크: https://www.kaggle.com/datasets/uciml/breast-cancer-wisconsin-data
- 행/열: 569행, 32열
- 특징:
- 모두 수치형 (floats) → 타입 일관성 학습
- 이진 분류(Malignant/Benign) 레이블
- 결측치 없음 → 깨끗한 데이터의 특성 경험
- 난이도: 초급~중급
- 포맷: CSV
추천 데이터셋 5: Student Performance Dataset
- 출처: UCI Machine Learning Repository / Kaggle
- 링크: https://www.kaggle.com/datasets/uciml/student-performance-data
- 행/열: ~395행, 33열
- 특징:
- 혼합 자료형: 수치형(나이, 결석일수) + 범주형(성별, 학교, 가족 상황)
- 교육 도메인 실습 데이터 → 강의 맥락과 일치
- Enum/타입 검증 연습에 최적
- 난이도: 중급
- 포맷: CSV
Module 2: 데이터 분석 개요 및 기초통계 (24h)
학습 목표: EDA 8단계 + 결측치/이상치 탐지 + 시각화
추천 데이터셋 1: NYC Airbnb Open Data
- 출처: Kaggle (dgomonov)
- 링크: https://www.kaggle.com/datasets/dgomonov/new-york-city-airbnb-open-data
- 행/열: ~49,000행, 16열
- 특징:
- 결측치 다양함: price (0), reviews_per_month (~10%), last_review 등
- 수치형 + 범주형 혼합: 위치(위도/경도), 가격대, 방 타입
- 이상치 풍부: 극단적 가격, 리뷰 편향 등
- EDA 시각화 연습에 최적 (단변량→이변량→다변량)
- Matplotlib/Seaborn 코드 예시 풍부 (Kaggle 노트북)
- 난이도: 중급
- 포맷: CSV
- 활용:
# 결측치 탐지 df.isnull().sum() # 이상치 탐지 (IQR) Q1 = df['price'].quantile(0.25) Q3 = df['price'].quantile(0.75) IQR = Q3 - Q1 outliers = df[(df['price'] < Q1 - 1.5*IQR) | (df['price'] > Q3 + 1.5*IQR)] # 시각화 import matplotlib.pyplot as plt plt.hist(df['price'], bins=50) sns.boxplot(data=df, y='price', x='room_type')
추천 데이터셋 2: Credit Card Fraud Detection
- 출처: Kaggle (kaggle.com/datasets/mlg-ulb/creditcardfraud)
- 링크: https://www.kaggle.com/datasets/mlg-ulb/creditcardfraud
- 행/열: 284,807행 (이상 다운샘플링 권고), 31열
- 특징:
- 불균형 데이터: 정상 98.3% vs 부정거래 1.7% → 이상치 탐지의 극단적 사례
- 수치형만 (PCA 전처리된) → 타입 일관성
- 이상치 탐지 실습: Z-score, IQR, Isolation Forest 비교 가능
- 정규화(Robust Scaler, Standard Scaler) 비교 연습
- 난이도: 중급~고급
- 포맷: CSV
- 활용:
# 이상치 비율 확인 df['Class'].value_counts(normalize=True) # Robust Scaler (이상치에 강함) from sklearn.preprocessing import RobustScaler scaler = RobustScaler() df_scaled = scaler.fit_transform(df)
추천 데이터셋 3: Wine Quality Dataset
- 출처: UCI Machine Learning Repository / Kaggle
- 링크: https://www.kaggle.com/datasets/yasserh/wine-quality-dataset
- 행/열: ~6,500행, 12열 (적색+백색 와인 결합)
- 특징:
- 모두 수치형 + 1개 분류 레이블 (품질 0~10)
- 극악한 클래스 불균형: 품질 3
4 (매우 소수) vs 56 (다수) - 이상치 탐지: 독특한 산도/알코올 함량 조합
- 상관관계 분석(Correlation Matrix) 시각화 좋음
- 난이도: 중급
- 포맷: CSV
추천 데이터셋 4: Heart Disease UCI
- 출처: UCI Machine Learning Repository / Kaggle
- 링크: https://www.kaggle.com/datasets/johnsmith88/heart-disease-dataset
- 행/열: ~1,000행, 14열 (원본) 또는 더 큰 버전 70,000행
- 특징:
- 혼합 자료형: 수치형(나이, 혈압), 범주형(흉통 유형)
- 의료 도메인 데이터 → 실무 맥락 제시 가능
- 결측치 패턴 분석 (열별로 다름)
- 난이도: 중급
- 포맷: CSV
추천 데이터셋 5: Seoul Open Data (한국 공공데이터)
- 출처: 서울열린데이터광장 (data.seoul.go.kr)
- 링크: https://data.seoul.go.kr/dataList/datasetList.do
- 예시 데이터셋:
- “서울시 구별 인구 통계” (~25개 구, 연도별)
- “서울시 공공자전거 이용 현황” (시간대별, 역별)
- “서울시 대기질 데이터” (측정소별, 오염물질)
- 행/열: 데이터셋마다 다름 (보통 1,000~10,000)
- 특징:
- 한국 맥락의 실제 데이터
- 공공데이터 접근 방법 학습
- 시계열 데이터 포함 가능
- 난이도: 중급
- 포맷: CSV / Excel / JSON (다양함, 전처리 필요할 수 있음)
Module 3: 머신러닝 및 딥러닝 이해 (24h)
학습 목표: Decision Tree + Ensemble + 신경망 구현 + 모델 성능 평가(AUC, F1)
추천 데이터셋 1: Iris Dataset (재사용)
- 출처: UCI / Kaggle
- 링크: https://www.kaggle.com/datasets/uciml/iris
- 행/열: 150행, 5열
- 특징:
- 3진 분류(Decision Tree 시각화 용이) → 의사결정나무 트리 그리기
- 작은 크기이므로 손으로 계산 검증 가능 (Gini/Entropy 계산)
- 신경망 과적합 연습용 (너무 작은 데이터)
- 난이도: 초급~중급
- 포맷: CSV
- 활용:
from sklearn.tree import DecisionTreeClassifier, plot_tree clf = DecisionTreeClassifier(max_depth=3) clf.fit(X_train, y_train) plot_tree(clf, feature_names=['sepal_length', ...]) # 시각화 # Gini 계산 검증 print(clf.tree_.feature) # 분할 특성 print(clf.tree_.threshold) # 분할 기준
추천 데이터셋 2: Titanic Dataset (재사용)
- 출처: Kaggle
- 링크: https://www.kaggle.com/competitions/titanic/data
- 행/열: 891행, 12열
- 특징:
- 이진 분류 (생존 여부) → Logistic Regression, Random Forest 비교
- 혼합 자료형 → 전처리 필수 → Feature Engineering 학습
- 범주형 변수 인코딩 연습
- Random Forest vs Gradient Boosting 성능 비교에 적합
- 난이도: 중급
- 포맷: CSV
- 활용:
from sklearn.ensemble import RandomForestClassifier, GradientBoostingClassifier from sklearn.metrics import roc_auc_score, roc_curve rf = RandomForestClassifier(n_estimators=100) gb = GradientBoostingClassifier(n_estimators=100) rf.fit(X_train, y_train) gb.fit(X_train, y_train) # AUC 비교 auc_rf = roc_auc_score(y_test, rf.predict_proba(X_test)[:, 1]) auc_gb = roc_auc_score(y_test, gb.predict_proba(X_test)[:, 1])
추천 데이터셋 3: MNIST (손글씨) 또는 Fashion-MNIST
- 출처: TensorFlow / Keras (직접 로드 가능)
- 링크: https://keras.io/api/datasets/mnist/
- 행/열: 70,000개 이미지, 28×28 픽셀
- 특징:
- 신경망 시작 데이터셋 (TensorFlow 공식 튜토리얼)
- 이진→다진 분류 (10개 숫자)
- Forward Pass + Backpropagation 구현 및 검증 가능
- 모듈 3-4의 신경망 구현에서 손계산 검증용
- 난이도: 중급
- 포맷: 직접 로드 가능 (
.load_data()) - 활용:
from tensorflow.keras.datasets import mnist (X_train, y_train), (X_test, y_test) = mnist.load_data() # X_train shape: (60000, 28, 28)
추천 데이터셋 4: Breast Cancer Dataset (재사용)
- 출처: UCI / Kaggle
- 링크: https://www.kaggle.com/datasets/uciml/breast-cancer-wisconsin-data
- 행/열: 569행, 32열
- 특징:
- 이진 분류 (암 여부)
- 모두 수치형 → 신경망 입력 정규화 간단
- 결측치 없음 → 모델에 집중
- 신경망 성능 벤치마크 (scikit-learn MLPClassifier vs TensorFlow)
- 난이도: 중급
- 포맷: CSV
추천 데이터셋 5: Wine Quality Dataset (재사용)
- 출처: UCI / Kaggle
- 링크: https://www.kaggle.com/datasets/yasserh/wine-quality-dataset
- 행/열: ~6,500행, 12열
- 특징:
- 다진 회귀(품질 점수 0~10) 또는 이진 분류(좋음/나쁨)로 변환 가능
- 특성 중요도(Feature Importance) 분석: Random Forest vs 선형 모델
- Ensemble 기법 (Voting, Stacking) 연습용
- 난이도: 중급
- 포맷: CSV
Module 4: 모델 서빙을 위한 Python 심화, FastAPI (16h)
학습 목표: FastAPI 기초 + 입력 검증(Pydantic) + Docker 컨테이너화
추천 데이터셋 1: Iris Dataset (재사용)
- 출처: UCI / Kaggle
- 링크: https://www.kaggle.com/datasets/uciml/iris
- 행/열: 150행, 5열
- 특징:
- API 서빙용 가장 단순한 모델: 꽃 특성 4개 입력 → 종 분류 출력
- Pydantic 스키마 설계 간단
- Docker 이미지 최소화(빠른 빌드)
- 난이도: 초급
- 포맷: CSV
- 활용 (FastAPI):
from pydantic import BaseModel from fastapi import FastAPI class IrisRequest(BaseModel): sepal_length: float sepal_width: float petal_length: float petal_width: float class IrisResponse(BaseModel): prediction: str confidence: float app = FastAPI() @app.post("/predict", response_model=IrisResponse) def predict(request: IrisRequest): # 모델 예측 return IrisResponse(prediction="setosa", confidence=0.95)
추천 데이터셋 2: Wine Quality Dataset (재사용)
- 출처: UCI / Kaggle
- 링크: https://www.kaggle.com/datasets/yasserh/wine-quality-dataset
- 행/열: ~6,500행, 12열
- 특징:
- 더 복잡한 API: 11개 입력 특성 → 품질 점수 회귀
- Pydantic Field validation (범위 검사: 알코올 0
15%, 산도 01.6 등) - 실무 수준의 입력 검증 연습
- 난이도: 중급
- 포맷: CSV
- 활용:
from pydantic import BaseModel, Field class WineRequest(BaseModel): fixed_acidity: float = Field(..., ge=0, le=16) # 0~16 범위 alcohol: float = Field(..., ge=0, le=15) # ... 11개 특성
추천 데이터셋 3: House Prices Dataset (Kaggle)
- 출처: Kaggle
- 링크: https://www.kaggle.com/c/house-prices-advanced-regression-techniques/data
- 행/열: 1,460행(학습) + 1,459행(테스트), 81열
- 특징:
- 회귀 문제 (주택 가격 예측)
- 혼합 자료형(범주형 + 수치형) → 전처리 필요
- API 입력 검증: 특성 범위가 명확함 (e.g., 방 개수, 년도)
- 모듈 5 “Feature Engineering”과 연계
- 난이도: 중급~고급
- 포맷: CSV
추천 데이터셋 4: Bank Marketing Dataset
- 출처: UCI Machine Learning Repository / Kaggle
- 링크: https://www.kaggle.com/datasets/janiobachmann/bank-marketing-dataset
- 행/열: ~45,000행, 21열
- 특징:
- 이진 분류 (고객 가입 여부)
- 혼합 자료형: 수치형(나이, 잔액) + 범주형(직업, 혼인 상태)
- 실무적 비즈니스 케이스 (마케팅 자동화)
- API로 고객 가입 확률 예측
- 난이도: 중급
- 포맷: CSV
추천 데이터셋 5: Adult Income Dataset (UCI)
- 출처: UCI Machine Learning Repository / Kaggle
- 링크: https://www.kaggle.com/datasets/uciml/adult-census-income
- 행/열: ~32,000행, 15열
- 특징:
- 이진 분류 (연소득 >50k 여부)
- 혼합 자료형: 연령, 교육, 직업, 시간 등
- 범주형 변수 인코딩(OneHotEncoder) 필요
- API 테스트: 다양한 사용자 프로필 입력
- 난이도: 중급
- 포맷: CSV (데이터 정제 필요)
Module 5: 모델 개발 및 최적화 (16h)
학습 목표: sklearn Pipeline + ColumnTransformer + Feature Engineering + GridSearchCV + 데이터 누수 방지
추천 데이터셋 1: House Prices Dataset (재사용)
- 출처: Kaggle
- 링크: https://www.kaggle.com/c/house-prices-advanced-regression-techniques/data
- 행/열: 1,460행 + 1,459행, 81열
- 특징:
- 대규모 특성 + 혼합 자료형 → Pipeline 필수
- Feature Engineering 풍부: 파생 특성 생성, 이상치 처리
- 데이터 누수 사례: 모든 특성이 훈련 데이터에서만 의미있음
- GridSearchCV 하이퍼파라미터 최적화 권장 (RandomForest, Gradient Boosting)
- 난이도: 고급
- 포맷: CSV
- 활용:
from sklearn.compose import ColumnTransformer from sklearn.pipeline import Pipeline from sklearn.preprocessing import StandardScaler, OneHotEncoder from sklearn.ensemble import RandomForestRegressor from sklearn.model_selection import GridSearchCV, cross_val_score preprocessor = ColumnTransformer( transformers=[ ('num', StandardScaler(), numerical_features), ('cat', OneHotEncoder(handle_unknown='ignore'), categorical_features) ]) pipeline = Pipeline(steps=[ ('preprocessor', preprocessor), ('model', RandomForestRegressor()) ]) # 데이터 누수 방지: fit_transform은 train만, test는 transform만 X_train_transformed = pipeline.fit_transform(X_train) X_test_transformed = pipeline.transform(X_test) # GridSearchCV param_grid = { 'model__n_estimators': [100, 200], 'model__max_depth': [10, 20] } grid_search = GridSearchCV(pipeline, param_grid, cv=5) grid_search.fit(X_train, y_train)
추천 데이터셋 2: Titanic Dataset (재사용)
- 출처: Kaggle
- 링크: https://www.kaggle.com/competitions/titanic/data
- 행/열: 891행 + 418행, 12열
- 특징:
- Feature Engineering: 호실 번호→갑판 추출, 이름→칭호(Mr/Mrs) 추출
- 결측치 전략(결측 여부 자체가 특성): Cabin 있음/없음
- Pipeline과 데이터 누수: 불균형 처리(SMOTE) 위치 중요
- 교차검증 AUC ≥ 0.85 목표
- 난이도: 중급~고급
- 포맷: CSV
추천 데이터셋 3: Credit Card Fraud Detection (재사용)
- 출처: Kaggle
- 링크: https://www.kaggle.com/datasets/mlg-ulb/creditcardfraud
- 행/열: 284,807행 (다운샘플링), 31열
- 특징:
- 불균형 데이터 → Pipeline 내에서 SMOTE 또는 class_weight 처리
- 모든 특성이 이미 정규화됨 → 추가 정규화 필요 없음
- GridSearchCV: 임계값 최적화 (기본 0.5 vs 커스텀)
- 성능 지표: Precision, Recall, F1 (정확도는 의미 없음)
- 난이도: 고급
- 포맷: CSV
추천 데이터셋 4: Adult Income Dataset (재사용)
- 출처: UCI / Kaggle
- 링크: https://www.kaggle.com/datasets/uciml/adult-census-income
- 행/열: ~32,000행, 15열
- 특징:
- 대규모 범주형 특성 → OneHotEncoder 필요
- 결측치 처리: 시뮈표 ”?” → 대체 전략
- Feature Engineering: 나이 구간화, 직무 그룹화
- 교차검증 + GridSearchCV 필수
- 난이도: 중급~고급
- 포맷: CSV (정제 필요)
추천 데이터셋 5: Wine Quality Dataset (재사용)
- 출처: UCI / Kaggle
- 링크: https://www.kaggle.com/datasets/yasserh/wine-quality-dataset
- 행/열: ~6,500행, 12열
- 특징:
- 모든 특성이 수치형 → 정규화만 필요, OneHotEncoder 불필요
- 특성 생성: 산도×알코올, 이산화황 비율 등
- 회귀 또는 분류(좋음/나쁨) 모두 가능
- 하이퍼파라미터 튜닝 후 교차검증 성능 비교
- 난이도: 중급
- 포맷: CSV
Module 6: MLOps 구성 및 모델 서빙 (16h)
학습 목표: Docker 컨테이너 + Docker Compose 오케스트레이션 + 모니터링 + 로깅
추천 데이터셋 1: Iris Dataset (재사용)
- 출처: UCI / Kaggle
- 링크: https://www.kaggle.com/datasets/uciml/iris
- 행/열: 150행, 5열
- 특징:
- 모델 최소화: 작은 pickle 파일 (KB 단위) → Docker 이미지 경량화
- API 단순함 → Docker, Traefik 설정에 집중 가능
- 헬스체크 엔드포인트 구현 간단
- 난이도: 초급~중급
- 포맷: CSV
추천 데이터셋 2: Wine Quality Dataset (재사용)
- 출처: UCI / Kaggle
- 링크: https://www.kaggle.com/datasets/yasserh/wine-quality-dataset
- 행/열: ~6,500행, 12열
- 특징:
- 모델 크기 중간 → Docker 레이어 캐싱 최적화 연습
- 성능 모니터링: 예측 시간, 메모리 사용률
- 구조화된 로깅: 요청 ID, 모델 버전, 예측 결과 추적
- 난이도: 중급
- 포맷: CSV
추천 데이터셋 3: House Prices Dataset (재사용)
- 출처: Kaggle
- 링크: https://www.kaggle.com/c/house-prices-advanced-regression-techniques/data
- 행/열: 1,460행 + 1,459행, 81열
- 특징:
- 모델 복잡도 높음 → Pipeline 직렬화(pickle, joblib) 문제 경험
- 프로덕션 배포 고려: 특성 목록 저장, 전처리 코드 관리
- Docker Compose: DB(결과 저장) + FastAPI + 모니터링
- 실제 운영 파이프라인 구축
- 난이도: 고급
- 포맷: CSV
추천 데이터셋 4: Time Series 데이터 - 전기 부하 예측
- 출처: Kaggle
- 링크: https://www.kaggle.com/datasets/saurabhshahane/electricity-load-forecasting
- 행/열: ~10,000행, 2열 (시간, 전력량)
- 특징:
- 시계열 데이터 모니터링: 시간대별 패턴 추적
- 실시간 예측 API: 상태 관리(마지막 예측 시간)
- 구조화된 로깅: 예측 오차, 모델 드리프트 감지
- MLOps 개념 “모델 모니터링”의 실제 예
- 난이도: 고급
- 포맷: CSV
추천 데이터셋 5: 한국 공공 시계열 데이터
- 출처: 공공데이터포털(data.go.kr) 또는 서울열린데이터광장
- 예시:
- “서울시 시간별 대기질” (측정소별, 오염물질)
- “서울시 공공자전거 이용 현황” (시간대별, 역별)
- 행/열: 데이터셋마다 다름 (보통 시간대별 1년 데이터 ~8,760행)
- 특징:
- 실제 한국 운영 환경 데이터
- 공공 API 또는 CSV 다운로드 가능
- 시계열 모니터링 + 실시간 예측
- MLOps 거버넌스: 데이터 정책, 업데이트 주기
- 난이도: 중급~고급
- 포맷: CSV / JSON / API
Module 7: 데이터 분석 Mini-project (16h)
학습 목표: End-to-end 프로젝트 (EDA→모델→API→Docker 배포) + GitHub 관리
추천 데이터셋 1: House Prices Dataset (재사용)
- 출처: Kaggle
- 링크: https://www.kaggle.com/c/house-prices-advanced-regression-techniques/data
- 행/열: 1,460행 + 1,459행, 81열
- 특징:
- Project Scope: 중소 규모 (1개월 충분)
- 학습 내용 통합: EDA(모듈 2) → 모델 개발(모듈 3,5) → API(모듈 4) → 배포(모듈 6)
- GitHub 관리: README, requirements.txt, Docker 설정, 결과 리포트
- Kaggle Competition 지원 가능 (선택사항)
- 난이도: 고급
- 포맷: CSV
- 프로젝트 산출물:
house-prices-project/ ├── README.md # 프로젝트 설명, 사용 방법 ├── requirements.txt # 의존성 ├── data/ │ ├── train.csv │ └── test.csv ├── notebooks/ │ └── 01_eda.ipynb # EDA 분석 결과 ├── src/ │ ├── train.py # 모델 학습 스크립트 │ ├── model.pkl # 훈련된 모델 │ └── preprocessing.py # 전처리 파이프라인 ├── app/ │ ├── main.py # FastAPI 앱 │ └── schemas.py # Pydantic 모델 ├── Dockerfile # Docker 이미지 ├── docker-compose.yml # 멀티서비스 구성 (선택) └── results/ └── model_report.md # 최종 보고서 (성능, 인사이트)
추천 데이터셋 2: NYC Airbnb Open Data (재사용)
- 출처: Kaggle
- 링크: https://www.kaggle.com/datasets/dgomonov/new-york-city-airbnb-open-data
- 행/열: ~49,000행, 16열
- 특징:
- Project Scope: 중소 규모
- 실제 비즈니스 케이스: Airbnb 숙박 가격 예측 → 호스트 시뮤ilation 도구
- 지리적 데이터 시각화(위도/경도) 추가 가능
- 모듈 전체 학습 내용 적용
- 난이도: 중급~고급
- 포맷: CSV
추천 데이터셋 3: Credit Card Fraud Detection (재사용, 고급 선택)
- 출처: Kaggle
- 링크: https://www.kaggle.com/datasets/mlg-ulb/creditcardfraud
- 행/열: 284,807행 (다운샘플링 후), 31열
- 특징:
- Project Scope: 중~대 규모 (불균형 처리, 성능 평가 복잡)
- 금융 도메인 실무 사례
- 모델 모니터링: False Positive Rate 추적, 모델 드리프트 감지
- 고급 MLOps: 모델 버전 관리, A/B 테스팅
- 난이도: 고급
- 포맷: CSV
- 추가 도전과제:
- SMOTE 불균형 처리
- 임계값 최적화 (ROC-AUC 최대화)
- 실시간 사기 탐지 API
추천 데이터셋 4: Adult Income Dataset (재사용)
- 출처: UCI / Kaggle
- 링크: https://www.kaggle.com/datasets/uciml/adult-census-income
- 행/열: ~32,000행, 15열
- 특징:
- Project Scope: 중소 규모
- 혼합 자료형 전처리 실습
- 실제 소득 예측 모델 → 정책 분석 or 자산 관리 API
- GitHub에서 찾기 쉬운 자료 많음 (학습 참고)
- 난이도: 중급
- 포맷: CSV
추천 데이터셋 5: 시계열 데이터 - 전기 부하 또는 주식 데이터 (선택)
- 출처: Kaggle
- 링크: https://www.kaggle.com/datasets/saurabhshahane/electricity-load-forecasting (또는 주식 데이터)
- 행/열:
10,000행, 25열 - 특징:
- Project Scope: 중~대 규모 (시계열 모델링 복잡)
- LSTM/GRU 신경망 구현 (모듈 3 심화)
- 실시간 예측 대시보드 (선택사항)
- 시계열 모니터링: 예측 오차 추적, 시즈널리티 변화 감지
- 난이도: 고급
- 포맷: CSV / API
추천 진행 전략
Phase A: 모듈별 학습 (실습 데이터셋)
| 모듈 | 주요 데이터셋 | 주의사항 |
|---|---|---|
| M1 | Iris, Titanic, Boston Housing | 작은 데이터셋부터 시작 |
| M2 | NYC Airbnb (결측치/이상치 풍부) | EDA 시각화 연습 중점 |
| M3 | Iris (분류), MNIST (신경망), Wine (회귀) | 알고리즘별 최적 데이터 선택 |
| M4 | Iris (단순), Wine (복잡) | Pydantic 검증 규칙 작성 |
| M5 | House Prices (복잡), Titanic (중간) | Pipeline + Feature Engineering |
| M6 | Iris (경량), Wine (중간), House Prices (복잡) | Docker/Compose 난이도 조정 |
| M7 | 프로젝트 1개 선택: House Prices / Airbnb / 시계열 | End-to-end 통합 |
Phase B: 프로젝트 데이터셋 선택 (Module 7)
학생 수준별 추천:
| 난이도 | 추천 데이터셋 | 이유 |
|---|---|---|
| 입문 | Adult Income (32K행, 15열) | 혼합 자료형, 정제 간단 |
| 중급 | NYC Airbnb (49K행, 16열) | 실무적, EDA→회귀 전체 경험 |
| 고급 | House Prices (1.5K행, 81열) | 대규모 특성, Feature Engineering, Kaggle 경쟁 |
| 매우 고급 | Credit Card Fraud (285K행, 불균형) | 실무 도전과제(불균형, 모니터링) |
한국 공공데이터 활용 팁
주요 플랫폼
| 플랫폼 | URL | 특징 |
|---|---|---|
| 공공데이터포털 | data.go.kr | 중앙정부 + 지자체 통합 |
| 서울열린데이터광장 | data.seoul.go.kr | 서울시 특화 (교통, 대기질 등) |
| 국토교통부 통합 플랫폼 | data.molit.go.kr | 부동산, 교통 전문 |
| 통계청(KOSIS) | kostat.go.kr | 공식 통계 (인구, 경제) |
| AI Hub | aihub.or.kr | AI 학습용 정제된 데이터셋 |
추천 정부 데이터셋
입문용
- “서울시 공공자전거 이용 현황” (시간대별 이용 수, 역별)
- “서울시 인구 통계” (구별, 연령별)
중급용
- “서울시 시간별 대기질 데이터” (오염도, 시계열)
- “교통사고 분석 데이터” (TAAS, 시간/장소별)
고급용
- “서울시 부동산 거래 통계” (가격, 지역, 시간)
- “전력 사용량 데이터” (시계열, 예측 모델링)
참고 링크
Kaggle 데이터셋 직접 검색
- https://www.kaggle.com/datasets
- 필터:
File Type: CSV,Rows: 1K-100K로 좁혀서 검색
한국 데이터
- 공공데이터포털: https://www.data.go.kr/
- 서울 오픈데이터: https://data.seoul.go.kr/
강의 연계 자료
- 모듈별 학습 목표: lecture-planning-2026 > 모듈별-학습-목표
- EDA 가이드: exploratory-data-analysis-eda
- ML Pipeline: ml-pipeline