2025. 3. 20. 16:07ㆍ데이터 분석/데이터 사이언스
6.1 머신러닝 개념 및 기본 용어
머신러닝(Machine Learning)은 데이터에서 패턴을 학습하여 자동으로 예측하거나 분류하는 기술이다.
전통적인 프로그래밍과 달리, 명시적인 규칙을 프로그래밍하지 않고 데이터 기반으로 모델을 학습하는 것이 특징이다.
이 장에서는 머신러닝의 주요 개념과 기본 용어(지도학습 vs 비지도학습, 모델 학습 과정, 데이터 분할 방법 등)을 다룬다.
6.1.1 머신러닝이란?
✅ 머신러닝(Machine Learning)
- 데이터를 통해 패턴을 학습하고 예측을 수행하는 인공지능(AI)의 한 분야
- 사람이 직접 프로그래밍하지 않고, 데이터에서 규칙을 자동으로 학습
- 대표적인 예시: 스팸 이메일 분류, 고객 추천 시스템, 자율주행
✅ 머신러닝 vs 전통적인 프로그래밍
전통적인 프로그래밍 | 머신러닝 |
규칙을 사람이 직접 프로그래밍 | 데이터를 학습하여 규칙을 자동으로 찾음 |
명확한 조건과 규칙이 필요 | 패턴을 스스로 학습 |
예) 계산기, 금융 시스템 | 예) 이미지 분류, 음성 인식 |
6.1.2 지도학습(Supervised Learning) vs 비지도학습(Unsupervised Learning)
머신러닝은 학습 방식에 따라 지도학습과 비지도학습으로 구분된다.
① 지도학습 (Supervised Learning)
- 정답(레이블, Label)이 주어진 데이터로 학습하는 방식
- 목표: 입력 데이터(X) → 출력 값(y) 예측
- 주어진 데이터에서 패턴을 학습하여 새로운 데이터에 대해 예측 가능
- 대표적인 알고리즘: 선형 회귀, 로지스틱 회귀, 의사결정나무, 랜덤포레스트, 신경망(딥러닝)
📌 지도학습 예시
고객 정보 | 구매 여부 (레이블) |
25세, 여성, 학생 | 구매(O) |
40세, 남성, 직장인 | 구매(X) |
30세, 여성, 직장인 | 구매(O) |
💡 실제 적용 사례
- 이메일 스팸 필터링 (스팸/정상 메일 분류)
- 신용카드 부정 거래 탐지
- 의료 영상 진단 (CT/MRI에서 암 진단)
② 비지도학습 (Unsupervised Learning)
- 정답(레이블)이 없는 데이터에서 패턴을 학습하는 방식
- 데이터의 구조를 발견하는 것이 목표 (예: 데이터 군집화, 차원 축소)
- 대표적인 알고리즘: K-평균(K-Means), 계층 군집(Hierarchical Clustering), 주성분 분석(PCA)
📌 비지도학습 예시
고객 정보 | 그룹 (자동 분류) |
25세, 여성, 학생 | 군집 A |
40세, 남성, 직장인 | 군집 B |
30세, 여성, 직장인 | 군집 A |
💡 실제 적용 사례
- 고객 세분화 (고객 데이터를 그룹화하여 마케팅 전략 수립)
- 문서 자동 분류 (비슷한 뉴스 기사 묶기)
- 이상 탐지 (이상 거래 탐지, 보안 시스템)
6.1.3 모델 학습 과정 (Training, Validation, Testing)
머신러닝 모델이 제대로 작동하려면 훈련(Training), 검증(Validation), 테스트(Testing) 과정이 필요하다.
✅ 모델 학습 단계
1️⃣ 훈련(Training):
- 주어진 데이터로 모델을 학습
- 모델이 패턴을 찾아가는 과정
2️⃣ 검증(Validation):
- 모델의 성능을 중간 점검
- 하이퍼파라미터(learning rate, batch size 등) 조정
3️⃣ 테스트(Testing):
- 학습이 완료된 모델을 새로운 데이터에서 평가
- 모델의 일반화 성능(새로운 데이터에서의 성능) 확인
📌 학습 과정 예시
단계 | 사용 데이터 | 역할 |
Training | 학습 데이터 (Train Set) | 모델 학습 |
Validation | 검증 데이터 (Validation Set) | 하이퍼파라미터 조정 |
Testing | 테스트 데이터 (Test Set) | 모델 최종 평가 |
⚠ 과적합(Overfitting) 방지
- 모델이 훈련 데이터에 너무 최적화되면 새로운 데이터에서 성능이 낮아짐
- 이를 방지하기 위해 검증 데이터(Validation Set)를 활용하여 조정
6.1.4 데이터 분할 (Train-Test Split, Cross Validation)
① Train-Test Split (훈련-테스트 데이터 분할)
모델 성능을 평가하려면 데이터를 훈련(Train)과 테스트(Test) 데이터로 분할해야 한다.
📌 훈련-테스트 분할 코드 예제
from sklearn.model_selection import train_test_split
import numpy as np
# 샘플 데이터 생성
X = np.array([[1], [2], [3], [4], [5], [6], [7], [8], [9], [10]])
y = np.array([10, 20, 30, 40, 50, 60, 70, 80, 90, 100])
# 80% 훈련 데이터, 20% 테스트 데이터로 분할
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
print("훈련 데이터 개수:", len(X_train))
print("테스트 데이터 개수:", len(X_test))
✅ 출력 결과
훈련 데이터 개수: 8
테스트 데이터 개수: 2
⚠ 테스트 데이터 비율 선택
- 데이터가 많을 경우: 80% Train / 20% Test
- 데이터가 적을 경우: 90% Train / 10% Test
② 교차 검증 (Cross Validation, CV)
✅ 교차 검증(Cross Validation)
- 데이터를 여러 개의 Fold(조각)로 나누고 여러 번 학습하여 평가하는 방법
- 훈련 데이터가 적을 때 유용
- 대표적인 방법: K-Fold Cross Validation
📌 K-Fold 교차 검증 예제 (K=5)
from sklearn.model_selection import KFold
# 5-Fold 교차 검증
kf = KFold(n_splits=5, shuffle=True, random_state=42)
for train_index, val_index in kf.split(X):
print("Train:", train_index, "Validation:", val_index)
✅ 교차 검증 장점
- 모델이 모든 데이터를 학습 및 검증에 활용 → 일반화 성능 향상
- 과적합 방지 효과
⚠ 언제 교차 검증을 사용할까?
- 데이터가 적을 때 (데이터를 최대한 활용해야 할 때)
- 하이퍼파라미터 최적화를 할 때
결론
머신러닝 모델을 학습하려면 지도학습 vs 비지도학습 개념을 이해하고, 학습 과정 및 데이터 분할 전략을 올바르게 설정해야 한다.
✅ 핵심 요약
- 지도학습 vs 비지도학습 → 데이터에 정답(레이블)이 있는지 여부
- 모델 학습 과정 → 훈련(Training), 검증(Validation), 테스트(Testing) 단계
- 데이터 분할 방법 → Train-Test Split, Cross Validation 활용
이러한 개념을 잘 이해하면 머신러닝 모델을 효율적으로 학습시키고 성능을 최적화할 수 있다.
'데이터 분석 > 데이터 사이언스' 카테고리의 다른 글
데이터 사이언스 - 7. 지도 학습 (Supervised Learning) (7.1 회귀 모델 (Regression Models)) (0) | 2025.03.20 |
---|---|
데이터 사이언스 - 6. 머신러닝 기초 (6.2 머신러닝 라이브러리 (scikit-learn)) (0) | 2025.03.20 |
데이터 사이언스 - 5. 기초 통계 및 확률 (5.3 통계적 가설 검정) (0) | 2025.03.20 |
데이터 사이언스 - 5. 기초 통계 및 확률 (5.2 확률 및 확률분포) (0) | 2025.03.20 |
데이터 사이언스 - 5. 기초 통계 및 확률 (5.1 기초 통계 개념) (0) | 2025.03.20 |