✅ 오늘 한 것
심화 프로젝트
✏️ 오늘 배운 점
Lag Feature란?
"과거의 데이터를 새로운 입력으로 추가하는 것"즉, 이전 시간의 값들을 복사해서 옆 칼럼에 붙여서 예측에 활용하는 방법
| 시간 | 온도(현재) | 온도(1분 전) | 온도(2분 전) |
| ----- | ------ | -------- | -------- |
| 08:00 | 25.0°C | — | — |
| 08:01 | 25.3°C | 25.0 | — |
| 08:02 | 25.5°C | 25.3 | 25.0 |
왜 쓰나요?
1. 과거가 현재에 영향을 줄 수 있기 때문
예:
"어제 많이 비가 왔다면 오늘도 비가 올 확률이 높다"
"배터리 전압이 계속 떨어졌다면, 지금도 떨어질 가능성이 높다" ⇒ 배터리 잔량은 전류나 온도가 누적적으로 영향을 미쳐 변화하기 때문에, 현재 값뿐만 아니라 과거 값도 중요하다.
import pandas as pd
# 예제 시계열 데이터 생성
data = {'value': [10, 12, 15, 14, 16, 18, 20]}
df = pd.DataFrame(data)
# t-1, t-2 lag feature 생성
df['lag_1'] = df['value'].shift(1)
df['lag_2'] = df['value'].shift(2)
print(df)
# 예제 시계열 데이터 생성
data = {'value': [10, 12, 15, 14, 16, 18, 20]}
df = pd.DataFrame(data)
# t-1, t-2 lag feature 생성
df['lag_1'] = df['value'].shift(1)
df['lag_2'] = df['value'].shift(2)
print(df)
diff feature
diff()는 이전 시점과 현재 시점의 차이
왜 diff feature를 추가할까?
1. 변화 자체가 의미 있는 경우가 많기 때문
- 시계열 데이터 에서는 현재 값보다 얼마나 변했는지가 더 중요할 수 있음
- 예:
- 전류가 갑자기 증가했다 → 이상 징후
- 온도나 특정 센서가 점점 상승 중이다 → 공정 이상 가능성
📌 2. 추세나 패턴을 모델이 인식하게 해줌
- 원본 값만 보면 모델은 "상태"만 인식
- 하지만 변화량이 있으면 방향"과 "속도"도 파악할 수 있음
예:
x_t = 370.2
→ 정지된 값처럼 보이지만
Δx_t = -0.7 이라면 → "감소 중"이라는 신호를 모델이 이해함
# 변화량(ΔX) 추가: .diff() = 현재 - 이전 시점
df['Δ전압'] = df['전압(V)'].diff()
df['Δ전류'] = df['전류(A)'].diff()
df['Δ온도'] = df['온도(℃)'].diff()
| Timestamp | 전압(V) | 전류(A) | 온도( ℃) | Δ전압 | Δ전류 | Δ온도 |
| 2025-07-01 08:00:00 | 370.2 | 21.5 | 34.1 | — | — | — |
| 2025-07-01 08:01:00 | 370.2 | 21.5 | 34.1 | 0.0 | 0.0 | 0.0 |
| 2025-07-01 08:02:00 | 370.2 | 21.5 | 34.1 | 0.0 | 0.0 | 0.0 |
| 2025-07-01 08:03:00 | 369.5 | 22.8 | 34.5 | -0.7 | 1.3 | 0.4 |
| 2025-07-01 08:04:00 | 369.0 | 23.0 | 34.7 | -0.5 | 0.2 | 0.2 |
📌추가로 해야할 점
심화 프로젝트
'품질관리(QAQC) 데이터 부트캠프(본캠프)' 카테고리의 다른 글
| 본캠프_9주차(목)_TIL(심화 프로젝트 기간) (0) | 2025.11.13 |
|---|---|
| 본캠프_9주차(수)_TIL(심화 프로젝트 기간) (0) | 2025.11.12 |
| 본캠프_9주차(월)_TIL(심화 프로젝트 기간) (0) | 2025.11.10 |
| 본캠프_8주차(금)_TIL(심화 프로젝트) (0) | 2025.11.07 |
| 본캠프_8주차(목)_TIL(2차 프로젝트 시작) (0) | 2025.11.06 |