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은 파이썬에서 머신러닝을 시작할 때 가장 많이 사용하는 라이브러리이다.
'AI 공부' 카테고리의 다른 글
| GPT와 함께하는 A2C(Advantage Actor-Critic) 정리 (1) | 2026.03.16 |
|---|---|
| 내가 보려고 만든 사이킷런 정리 (0) | 2026.03.13 |
| Attention Is All You Need 논문 공부 (0) | 2026.03.13 |
| 논문 공부 과제 – End-to-End Object Detection with Transformers (DETR) (0) | 2026.03.02 |
| 논문 공부 과제 - Gradient-Based Learning Applied to Document Recognition (0) | 2026.01.02 |