머신 러닝

1. 머신러닝 개요

머신러닝(Machine Learning)은 데이터를 기반으로 패턴을 학습하고 예측을 수행하는 알고리즘이다.
기존의 프로그램은 사람이 규칙을 직접 정의하지만, 머신러닝은 데이터로부터 규칙을 학습한다.

구성 요소


데이터 → 학습(Training) → 모델(Model) → 예측(Prediction)

머신러닝의 주요 목적

  • 데이터 패턴 학습
  • 미래 데이터 예측
  • 데이터 분류
  • 의사결정 자동화

2. 머신러닝 기본 용어

용어 설명
데이터(Data) 모델이 학습하는 정보
특성(Feature) 입력 변수
레이블(Label) 정답 값
모델(Model) 데이터를 학습한 수학적 함수
학습(Training) 모델이 데이터를 통해 패턴을 배우는 과정
예측(Prediction) 학습된 모델이 새로운 데이터를 판단하는 과정

3. 머신러닝 학습 유형

머신러닝은 크게 다음과 같이 구분된다.

3.1 지도학습 (Supervised Learning)

입력 데이터와 정답(label)이 함께 제공되는 학습 방법이다.


X → 입력 데이터
y → 정답 데이터

대표적인 문제 유형

분류 (Classification)

데이터를 범주로 나누는 문제

예시

  • 이메일 스팸 분류
  • 이미지 객체 분류
  • 질병 진단

회귀 (Regression)

연속적인 값을 예측하는 문제

예시

  • 집 가격 예측
  • 주식 가격 예측
  • 매출 예측

3.2 비지도학습 (Unsupervised Learning)

정답(label)이 없는 데이터를 학습하는 방식이다.

목적

  • 데이터 구조 파악
  • 데이터 그룹 분류

대표 알고리즘

  • K-means
  • DBSCAN
  • PCA

3.3 강화학습 (Reinforcement Learning)

환경과 상호작용하면서 보상을 통해 학습하는 방식이다.

구성 요소

요소 설명
Agent 행동을 수행하는 주체
Environment 환경
State 현재 상태
Action 행동
Reward 보상

대표 활용

  • 게임 AI
  • 로봇 제어
  • 자율주행

4. 머신러닝 라이브러리

파이썬에서는 다음 라이브러리를 많이 사용한다.

라이브러리 역할
NumPy 수치 연산
Pandas 데이터 처리
Matplotlib 데이터 시각화
Scikit-learn 머신러닝 알고리즘
TensorFlow 딥러닝
PyTorch 딥러닝

5. Scikit-learn

Scikit-learn은 파이썬 머신러닝 라이브러리이다.

주요 기능

  • 데이터 전처리
  • 머신러닝 모델 제공
  • 모델 평가

설치

pip install scikit-learn

6. 데이터 준비

머신러닝 모델 학습을 위해 데이터를 준비해야 한다.

예제 데이터 생성

from sklearn.datasets import load_iris

iris = load_iris()

print(iris.keys())

# 결과
# dict_keys(['data', 'target', 'frame', 'target_names', 'DESCR', 'feature_names'])

데이터 구성

X = iris.data
y = iris.target

print(X.shape)
print(y.shape)

# 결과
# (150, 4)
# (150,)

설명

항목 의미
150 샘플 개수
4 특성 개수

7. 학습 데이터와 테스트 데이터 분리

머신러닝에서는 데이터를 두 가지로 나눈다.

데이터 역할
Training Data 모델 학습
Test Data 모델 성능 평가

분리 방법

from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(
    X,
    y,
    test_size=0.2,
    random_state=42
)

print(X_train.shape)
print(X_test.shape)

# 결과
# (120, 4)
# (30, 4)

설명

옵션 의미
test_size 테스트 데이터 비율
random_state 랜덤 시드

8. 모델 생성

Scikit-learn에서는 다양한 머신러닝 모델을 제공한다.

예제: KNN 알고리즘

from sklearn.neighbors import KNeighborsClassifier

model = KNeighborsClassifier(n_neighbors=3)

설명

파라미터 의미
n_neighbors 참고할 이웃 데이터 개수

9. 모델 학습

모델을 학습할 때는 fit() 함수를 사용한다.

model.fit(X_train, y_train)

# 결과
# 모델이 학습됨

10. 예측

학습된 모델을 이용하여 새로운 데이터를 예측할 수 있다.

pred = model.predict(X_test)

print(pred)

# 결과
# 예측된 클래스 값 배열

11. 모델 평가

모델 성능을 평가할 때는 accuracy_score를 사용한다.

from sklearn.metrics import accuracy_score

accuracy = accuracy_score(y_test, pred)

print(accuracy)

# 결과
# 0.96 (예시)

accuracy는 정확도(Accuracy)를 의미한다.

Accuracy = (정답 예측 수) / (전체 데이터 수)

12. 전체 머신러닝 과정

머신러닝의 전체 과정은 다음과 같다.

데이터 수집
      ↓
데이터 전처리
      ↓
데이터 분리 (Train / Test)
      ↓
모델 선택
      ↓
모델 학습
      ↓
예측 수행
      ↓
모델 평가

13. 정리

머신러닝은 데이터를 기반으로 패턴을 학습하고 예측을 수행하는 기술이다.

핵심 과정

  • 데이터 준비
  • 데이터 분리
  • 모델 선택
  • 모델 학습
  • 예측
  • 모델 평가

대표 라이브러리

  • NumPy
  • Pandas
  • Matplotlib
  • Scikit-learn

Scikit-learn은 파이썬에서 머신러닝을 시작할 때 가장 많이 사용하는 라이브러리이다.