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)
    • 극악한 클래스 불균형: 품질 34 (매우 소수) 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 (범위 검사: 알코올 015%, 산도 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: 모듈별 학습 (실습 데이터셋)

모듈주요 데이터셋주의사항
M1Iris, Titanic, Boston Housing작은 데이터셋부터 시작
M2NYC Airbnb (결측치/이상치 풍부)EDA 시각화 연습 중점
M3Iris (분류), MNIST (신경망), Wine (회귀)알고리즘별 최적 데이터 선택
M4Iris (단순), Wine (복잡)Pydantic 검증 규칙 작성
M5House Prices (복잡), Titanic (중간)Pipeline + Feature Engineering
M6Iris (경량), 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 Hubaihub.or.krAI 학습용 정제된 데이터셋

추천 정부 데이터셋

입문용

  • “서울시 공공자전거 이용 현황” (시간대별 이용 수, 역별)
  • “서울시 인구 통계” (구별, 연령별)

중급용

  • “서울시 시간별 대기질 데이터” (오염도, 시계열)
  • “교통사고 분석 데이터” (TAAS, 시간/장소별)

고급용

  • “서울시 부동산 거래 통계” (가격, 지역, 시간)
  • “전력 사용량 데이터” (시계열, 예측 모델링)

참고 링크

Kaggle 데이터셋 직접 검색

한국 데이터

강의 연계 자료