개발 창고/Server

머신러닝 기본 개념: 지도·비지도·강화학습 쉽게 이해하기

Royzero 2025. 8. 11. 22:00
반응형

1. 머신러닝(Machine Learning)이란?

머신러닝은 컴퓨터가 데이터를 학습하여 스스로 규칙을 찾아내고 예측을 수행하는 기술입니다.
즉, 사람이 ‘규칙’을 직접 알려주는 대신, 컴퓨터가 ‘예시 데이터’를 보고 규칙을 스스로 찾아냅니다.


1.1 일상 속의 머신러닝 예시

  • 스팸 메일 필터: 스팸과 정상 메일의 패턴을 학습하여 자동 분류
  • 음성 인식: 수많은 음성 데이터로 발음을 학습
  • 추천 시스템: 시청·구매 이력 기반 상품 추천
  • 자율주행 자동차: 도로 영상·센서 데이터로 주행 패턴 학습

2. 머신러닝의 세 가지 학습 방식

머신러닝은 크게 지도학습, 비지도학습, 강화학습으로 나눕니다.


2.1 지도학습 (Supervised Learning)

  • **정답(Label)**이 있는 데이터로 학습

  • 입력(X) → 모델 → 출력(y) 예측

  • 예시: 시험 문제와 정답지를 함께 보고 공부하는 것

  • 활용 사례

    • 이메일 스팸 여부 분류 (분류 문제)
    • 아파트 가격 예측 (회귀 문제)
특징 분류(Classification) 회귀(Regression)
출력 범주형 값 연속형 값
예시 스팸/정상 메일 구분 집값 예측

2.2 비지도학습 (Unsupervised Learning)

  • 정답(Label) 없이 입력 데이터만으로 구조나 패턴을 찾음

  • 예시: 시험 문제지만 정답지가 없고, 문제끼리 비슷한 것끼리 묶는 경우

  • 활용 사례

    • 고객 유형 세분화 (군집)
    • 데이터 차원 축소 (PCA)
기법 설명
군집(Clustering) 비슷한 데이터를 그룹으로 묶음
차원 축소 데이터 속성 수를 줄여 핵심 특징만 남김

2.3 강화학습 (Reinforcement Learning)

  • 환경 속에서 행동 → 보상 → 학습 과정을 반복

  • 시행착오를 통해 최적의 전략을 찾음

  • 예시: 게임 플레이어가 점수를 최대화하는 방법을 스스로 찾음

  • 활용 사례

    • 알파고(바둑 AI)
    • 로봇 제어
    • 자율주행

3. 머신러닝 개발 과정

  1. 데이터 수집: CSV, DB, API 등에서 확보
  2. 데이터 전처리: 결측치·이상치 처리, 정규화
  3. 모델 선택: 지도/비지도/강화학습 여부에 따라 결정
  4. 학습(Training): 데이터를 이용해 모델 파라미터 최적화
  5. 평가(Evaluation): 정확도, F1-score 등 지표 측정
  6. 배포(Deployment): 실제 서비스 환경 적용

4. 실습 – 지도학습으로 붓꽃(Iris) 품종 분류하기

이번 실습에서는 scikit-learn 라이브러리의 내장 데이터셋인 Iris 데이터를 사용해 분류 모델을 만들어봅니다.
이 예제는 네트워크 연결이 필요 없고, 초보자도 쉽게 실행 가능합니다.

환경 준비

pip install scikit-learn matplotlib

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score, classification_report, ConfusionMatrixDisplay
import matplotlib.pyplot as plt

# 1. 데이터 로드
iris = load_iris()
X, y = iris.data, iris.target

# 2. 학습/테스트 데이터 분리
X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.2, random_state=42, stratify=y
)

# 3. 모델 생성 및 학습
model = LogisticRegression(max_iter=200)
model.fit(X_train, y_train)

# 4. 예측
y_pred = model.predict(X_test)

# 5. 평가
print("정확도:", f"{accuracy_score(y_test, y_pred)*100:.2f}%")
print("\n분류 리포트:\n", classification_report(y_test, y_pred, target_names=iris.target_names))

# 6. 혼동 행렬 시각화
ConfusionMatrixDisplay.from_estimator(model, X_test, y_test, display_labels=iris.target_names)
plt.show()

예상 출력 예시

정확도: 100.00%
분류 리포트:
               precision    recall  f1-score   support
    setosa       1.00      1.00      1.00         10
versicolor       1.00      1.00      1.00         10
 virginica       1.00      1.00      1.00         10

5. 오늘의 핵심 요약

  • 머신러닝은 데이터를 기반으로 스스로 규칙을 찾는 기술
  • 세 가지 학습 방식: 지도학습, 비지도학습, 강화학습
  • 지도학습은 분류·회귀, 비지도학습은 군집·차원 축소, 강화학습은 보상 기반 학습
  • 실습에서는 Iris 데이터로 분류 모델을 만들어봄

6. 다음 강의 예고

3차시에서는 딥러닝의 기본 개념과 CNN, RNN의 차이를 이론과 예제로 함께 다룹니다.

반응형