본문 바로가기
데이터분석데브코스 8/이론

Classification 모델, Regression 모델

by DataJ 2025. 5. 29.

🧠 지도학습(Supervised Learning)의 한 종류

Classification(분류) 모델은 주어진 데이터를 여러 클래스(범주) 중 하나로 분류하는 작업입니다. 예를 들어, 이메일을 스팸이냐 일반메일이냐로 나누거나, 사진 속 동물이 고양이인지 강아지인지 구분하는 것 등이 있습니다.


분류 모델의 종류

✅ 이진 분류 (Binary Classification)

  • 클래스가 2개인 경우
  • 예: 이메일 스팸 여부, 암 진단 (양성/음성)

🔢 다중 클래스 분류 (Multiclass Classification)

  • 클래스가 3개 이상인 경우
  • 예: 숫자 손글씨 인식 (0~9)

🏷 다중 레이블 분류 (Multilabel Classification)

  • 하나의 데이터가 여러 클래스에 속할 수 있음
  • 예: 뉴스 기사 → 정치, 경제, 사회 등 여러 태그

Classification 알고리즘 예시

1. 로지스틱 회귀 (Logistic Regression)

  • 간단한 이진 분류에 자주 사용
  • 회귀처럼 보이지만, 확률을 예측해서 분류하는 방식

2. 결정 트리 (Decision Tree)

  • 나무처럼 가지를 치며 분류
  • 직관적이고 시각화가 쉬움

3. 랜덤 포레스트 (Random Forest)

  • 여러 결정 트리를 조합한 모델로 정확도 높음

4. 서포트 벡터 머신 (SVM)

  • 고차원 특징 공간에서 데이터 분리

5. 딥러닝 (Deep Learning)

  • 이미지나 음성 인식처럼 복잡한 문제 해결에 탁월

모델 성능 평가 방법

📊 혼동 행렬 (Confusion Matrix)

예측 실제 스팸 실제 정상

스팸 TP (정답) FP (오답)
정상 FN (오답) TN (정답)
  • Precision (정밀도): 예측한 스팸 중 실제 스팸 비율
  • Recall (재현율): 실제 스팸 중 스팸이라고 맞춘 비율
  • Accuracy (정확도): 전체 중 정답의 비율

📈 ROC 커브와 AUC

  • ROC: TPR(재현율) vs. FPR(오탐률) 그래프
  • AUC: 이 ROC 그래프 아래 면적 (1에 가까울수록 좋은 모델)

scikit-learn으로 모델 만들기

🔧 데이터 전처리(Feature Engineering)

  • 결측값 채우기: 평균 등으로 빈 칸 채우기
  • 카테고리 → 숫자 변환: OneHotEncoder, LabelEncoder 사용
  • 피처 스케일링: 값들을 일정한 범위로 조정 (0~1)

🔁 훈련/테스트 분리

  • train_test_split() 함수로 분리
  • 교차 검증(Cross Validation)으로 일반화 성능 확인

🔗 파이프라인 사용

  • 전처리 + 모델링을 한 번에 수행
  • 예: make_pipeline(StandardScaler(), LogisticRegression())

실습 예시

🛳 타이타닉 생존자 예측

  • 캐글에서 유명한 튜토리얼 예제
  • Binary Classification 문제
  • AUC, F1-score로 성능 평가

💉 당뇨병 예측

  • UCI 데이터셋 기반
  • 8개의 피처(나이, 혈압, BMI 등)로 당뇨병 여부 예측

요약 및 실전 활용 팁

요약

  • Classification은 대표적인 머신러닝 문제로 지도학습에 속함
  • 로지스틱 회귀, SVM, 딥러닝 등 다양한 알고리즘 사용
  • scikit-learn을 통해 쉽게 구현 가능
  • 모델 성능 평가는 혼동 행렬, AUC, F1 등 다양한 지표로 가능

실전 팁

  1. 데이터 전처리가 성능에 큰 영향을 미침
  2. 간단한 문제는 로지스틱 회귀, 복잡한 문제는 딥러닝 고려
  3. 성능 비교를 위해 다양한 모델 실험해보는 것이 중요
  4. 실습은 구글 Colab에서 가능하고 kaggle 예제 활용 추천

🤔 회귀(Regression)란 무엇인가요?

Regression(회귀) 모델은 연속적인 숫자 값을 예측하는 데 사용하는 지도학습(Supervised Learning) 알고리즘입니다. 예를 들면,

  • 집 값 예측
  • 주식 가격 예측
  • 날씨 온도 예측

처럼 결과값이 숫자인 경우 사용됩니다. 반면 결과값이 카테고리(예: '스팸' or '정상')인 경우는 **Classification(분류)**을 사용합니다.


대표적인 회귀 알고리즘

📈 Linear Regression (선형 회귀)

  • 가장 기본적인 회귀 모델
  • 예측값은 직선 형태로 모델링
  • 예: y = a * x + b

📊 Polynomial Regression (다항 회귀)

  • 선형 회귀로는 부족할 때 곡선 형태로 확장

🌳 Decision Tree & Random Forest

  • 데이터를 분기해서 예측하는 트리 구조
  • Random Forest는 여러 트리를 결합해 안정성과 성능을 높임

🧠 Deep Learning (딥러닝)

  • 복잡하고 비선형적인 문제를 처리할 때 유용
  • 대규모 데이터에서 강력한 성능 발휘

회귀 모델 성능 평가 지표

회귀 모델의 예측 성능은 다음과 같은 오차 지표로 평가합니다.

  • MAE (Mean Absolute Error): 절대값 기준의 평균 오차
  • MSE (Mean Squared Error): 제곱 기준의 평균 오차
  • RMSE (Root Mean Squared Error): MSE의 제곱근으로 직관적 해석 가능

예측과 실제 가격의 차이가 작을수록 성능이 좋은 모델입니다.


실습 예시: 보스턴 주택 가격 예측

📌 데이터 설명

  • 미국 보스턴 지역의 주택 데이터 (총 506개 레코드)
  • 13개의 특성과 1개의 타겟(중간 주택 가격) 포함
  • 예측 목표: 지역별 중간 주택 가격(MEDV)

주요 피쳐 예시

  • RM: 평균 방 개수
  • LSTAT: 저소득층 비율
  • CRIM: 범죄율
  • DIS: 도심 접근성

실습: 회귀 모델 만들기

🛠 Linear Regression 사용

  1. 데이터셋 로딩
  2. 훈련 데이터/테스트 데이터 분리
  3. LinearRegression 모델 학습 및 예측
  4. 성능 평가 (RMSE 등)

🌳 Decision Tree 사용

  • DecisionTreeRegressor로 모델 생성
  • Grid Search를 통해 하이퍼파라미터 튜닝

🪵 Random Forest 실습

  • RandomForestRegressor로 다수의 트리 조합
  • 과적합 방지 및 성능 향상
from sklearn.ensemble import RandomForestRegressor

rf = RandomForestRegressor(n_estimators=100, random_state=42)
rf.fit(X_train, y_train)

요약 및 실전 활용 팁

요약

  • Regression은 연속된 수치를 예측하는 머신러닝 기법
  • 다양한 알고리즘 사용 가능: 선형 회귀, 결정 트리, 랜덤 포레스트, 딥러닝 등
  • 성능은 MAE, MSE, RMSE 등 오차 지표로 평가
  • 실전에서는 scikit-learn으로 쉽게 구현 가능

실전 팁

  1. 데이터를 먼저 시각화해보는 것이 중요
  2. 선형 모델로 시작하고 성능이 낮으면 비선형 모델로 확장
  3. Grid Search로 하이퍼파라미터 튜닝 필수
  4. 작은 데이터셋은 트리 기반 모델, 큰 데이터셋은 딥러닝 활용

'데이터분석데브코스 8 > 이론' 카테고리의 다른 글

AWS SageMaker란?  (0) 2025.06.02
EDA란?  (0) 2025.05.29
8 - 24. 성능 평가 metric  (0) 2025.05.29
8 - 23. 교차 검증(Cross Validation)  (0) 2025.05.29
8 - 21. 이미지 & 텍스트 처리  (2) 2025.05.29