일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- rnn
- Deep learning
- 손실 함수
- CNN
- GRU
- 차원 축소
- 최적화
- 자연어 처리
- reinforcement learning
- 인공 신경망
- q-러닝
- 인공지능
- 머신러닝
- AI
- 강화 학습
- 정규화
- 머신 러닝
- 활성화 함수
- 데이터 전처리
- 과적합
- 딥러닝
- 지도 학습
- 신경망
- LSTM
- Q-Learning
- 강화학습
- python
- 교차 검증
- Machine Learning
- 회귀
- Today
- Total
move84
기계 학습 기본 - 지수 평활법 본문
📈 지수 평활법 (Exponential Smoothing)은 시계열 데이터 (Time Series Data)를 분석하고 미래 값을 예측하는 데 사용되는 강력한 기법이다. 시계열 데이터는 시간의 흐름에 따라 수집된 데이터의 시퀀스를 말하며, 주식 가격, 날씨 데이터, 판매량 등 다양한 분야에서 나타난다. 지수 평활법은 과거 데이터에 가중치를 부여하여 최근 데이터에 더 큰 영향을 주도록 설계되어 있다. 이는 데이터의 트렌드와 계절성을 파악하고, 예측의 정확도를 높이는 데 기여한다.
✨ 지수 평활법의 기본 원리
지수 평활법은 과거 관측값들의 가중 평균을 사용하여 미래 값을 예측한다. 이때, 가장 최근의 관측값에 더 높은 가중치를 부여하는 것이 핵심이다. 이러한 가중치는 평활 상수 (Smoothing Constant)라는 파라미터에 의해 결정된다. 평활 상수는 0과 1 사이의 값을 가지며, 값이 클수록 최근 데이터에 더 큰 비중을 둔다. 지수 평활법은 단순 지수 평활법 (Simple Exponential Smoothing), 이중 지수 평활법 (Double Exponential Smoothing), 삼중 지수 평활법 (Triple Exponential Smoothing)의 세 가지 주요 유형으로 나뉜다. 각 유형은 데이터의 트렌드와 계절성을 고려하는 방식에 차이가 있다.
💡 단순 지수 평활법 (Simple Exponential Smoothing)
단순 지수 평활법은 트렌드나 계절성이 없는 시계열 데이터에 적합하다. 과거 모든 데이터를 사용하지만, 가장 최근의 데이터에 가장 큰 가중치를 부여한다. 예측값은 다음과 같은 수식으로 계산된다.
예측값(t+1) = α * 관측값(t) + (1 - α) * 예측값(t)
여기서, α는 평활 상수(0 < α < 1)이며, t는 시간 단계를 나타낸다. α 값이 클수록 최근 데이터에 더 큰 영향을 받으며, 시계열의 변동에 빠르게 반응한다.
예시:
import pandas as pd
# 샘플 시계열 데이터
data = [10, 12, 15, 13, 17, 19, 21, 20, 23, 25]
series = pd.Series(data)
# 평활 상수 설정
alpha = 0.3
# 단순 지수 평활법 적용
def simple_exponential_smoothing(series, alpha):
smoothed = [series[0]] # 첫 번째 값은 초기값으로 사용
for i in range(1, len(series)):
smoothed_value = alpha * series[i] + (1 - alpha) * smoothed[i-1]
smoothed.append(smoothed_value)
return smoothed
smoothed_values = simple_exponential_smoothing(series, alpha)
# 결과 출력
print("원시 데이터:", series.values)
print("평활된 데이터:", smoothed_values)
📐 이중 지수 평활법 (Double Exponential Smoothing)
이중 지수 평활법은 트렌드가 있는 시계열 데이터에 사용된다. 트렌드는 데이터가 시간에 따라 증가하거나 감소하는 경향을 의미한다. 이중 지수 평활법은 레벨 (Level)과 트렌드 (Trend)의 두 가지 구성 요소를 고려한다. 레벨은 시계열의 현재 값을 나타내고, 트렌드는 레벨의 변화율을 나타낸다. 이중 지수 평활법은 두 개의 평활 상수, α와 β를 사용한다. α는 레벨을 평활하는 데 사용되고, β는 트렌드를 평활하는 데 사용된다. 예측값은 다음과 같은 수식으로 계산된다.
레벨(t) = α * 관측값(t) + (1 - α) * (레벨(t-1) + 트렌드(t-1))
트렌드(t) = β * (레벨(t) - 레벨(t-1)) + (1 - β) * 트렌드(t-1)
예측값(t+h) = 레벨(t) + h * 트렌드(t)
여기서, h는 예측 기간을 나타낸다.
🗓️ 삼중 지수 평활법 (Triple Exponential Smoothing)
삼중 지수 평활법은 트렌드와 계절성이 모두 존재하는 시계열 데이터에 적합하다. 계절성은 데이터가 특정 기간 (예: 분기별, 월별)마다 반복되는 패턴을 의미한다. 삼중 지수 평활법은 레벨, 트렌드, 계절성 (Seasonality)의 세 가지 구성 요소를 고려한다. 삼중 지수 평활법은 세 개의 평활 상수, α, β, γ를 사용한다. α는 레벨을, β는 트렌드를, γ는 계절성을 평활하는 데 사용된다. 예측값은 다음과 같은 수식으로 계산된다 (Addictive Model):
레벨(t) = α * (관측값(t) - 계절성(t-L)) + (1 - α) * (레벨(t-1) + 트렌드(t-1))
트렌드(t) = β * (레벨(t) - 레벨(t-1)) + (1 - β) * 트렌드(t-1)
계절성(t) = γ * (관측값(t) - 레벨(t)) + (1 - γ) * 계절성(t-L)
예측값(t+h) = 레벨(t) + h * 트렌드(t) + 계절성(t + h - L)
여기서, L은 계절성의 주기 (예: 월별 데이터의 경우 L=12)이고, h는 예측 기간이다. Multiplicative Model도 존재한다.
🎯 지수 평활법의 장점과 단점
장점:
- 간단성: 구현이 쉽고, 이해하기 쉬운 알고리즘이다.
- 과거 데이터 활용: 과거 데이터를 효과적으로 활용하여 예측을 수행한다.
- 적응성: 데이터 변화에 빠르게 적응할 수 있다.
- 계산 효율성: 계산량이 적어 대용량 데이터에도 적용 가능하다.
단점:
- 파라미터 설정의 어려움: 평활 상수를 적절하게 설정하는 것이 중요하며, 최적의 값을 찾기 위한 튜닝이 필요하다.
- 과거 데이터 의존성: 과거 데이터의 패턴에 크게 의존하므로, 데이터의 변화가 심한 경우에는 예측 정확도가 낮아질 수 있다.
- 설명력 부족: 다른 기계 학습 모델에 비해 예측 결과에 대한 설명력이 부족할 수 있다.
📌 핵심 용어 정리
- 지수 평활법 (Exponential Smoothing): 시계열 데이터의 미래 값을 예측하는 기법.
- 시계열 데이터 (Time Series Data): 시간의 흐름에 따라 수집된 데이터.
- 평활 상수 (Smoothing Constant): 과거 데이터에 부여되는 가중치를 결정하는 파라미터 (α, β, γ).
- 트렌드 (Trend): 데이터의 장기적인 증가 또는 감소 경향.
- 계절성 (Seasonality): 데이터가 특정 기간마다 반복되는 패턴.
- 레벨 (Level): 시계열의 현재 값.
🔍 관련 키워드
- 시계열 분석
- 예측 모델
- 데이터 평활
- 시계열 예측
'머신러닝' 카테고리의 다른 글
시계열 이상 탐지: 머신러닝 기본 이해 (2) | 2025.03.03 |
---|---|
머신 러닝 기초 - 계절성 및 추세 분석 (0) | 2025.03.03 |
머신 러닝 기초 - 시계열 예측 기본 원리 (0) | 2025.03.03 |
기계 학습 기초 - ARIMA 모델 이해하기 (0) | 2025.03.03 |
머신러닝 기초 - 보팅 분류기: 하드 보팅 vs 소프트 보팅 (0) | 2025.03.02 |