Today I learned
1. 대시보드 프로젝트 진행(~12.17)
- 패턴 존재 가설 수립 검증
0. Tableau로 Rough EDA → 패턴 존재 가설 수립
- 시계열(온도/전압/전류)을 Tableau로 전체 훑어봄.
- 특정한 형태의 곡선들이 반복됨을 육안으로 발견.
- Fail이 특정 비정상 패턴 근처에 몰린다는 인사이트도 일부 확인.
“시퀀스마다 패턴이 존재하며, 이를 군집화로 구분할 수 있다”는 가설 설정.
1. IQR 기반 이상치 제거 (Sequence 단위)
- 시계열 데이터이므로 outlier 제거는 매우 조심스럽게 접근.
- 개별 포인트가 스파이크처럼 튀는 경우가 많았고,
→ 이는 공정 패턴이 아닌 노이즈로 판단. - sequence별 ampere/volt/temp 값의 IQR 기반으로 상·하한을 계산하고 벗어난 값을 제거 또는 치환.
이상치 제거 후 여러 sequence의 패턴이 훨씬 더 잘 겹치기 시작함.
(= DTW에 방해되는 비정상 점 제거)
2. rec_num1과 rec_num2로 분할
- 두 rec 유형이 혼합된 전체 데이터에서 DTW를 바로 돌리면 왜곡됨.
- rec1 / rec2는 공정 자체가 다르기 때문에 처음부터 분리.
- 이후 모든 분석(정규화, DTW, 군집화)은 rec1 / rec2 각각 별도로 수행.
이 단계에서 전체 공정 패턴을 “대분류”로 먼저 나눔.
3. DTW(Dynamic Time Warping) 거리 계산 준비
네가 택한 이유:
- 각 sequence 길이가 다름
- 각 sequence의 시간축도 다름
- 패턴의 “형태”만 같다면 시간축이 다르게 진행되어도 유사도로 계산 가능
→ Euclidean distance 대신 DTW를 선택한 완벽한 이유.
4. 시계열 데이터 정리 (Sequence 단위 Features 분리)
각 sequence를 다음과 같이 정리:
- Ampere 시계열
- Voltage 시계열
- Temperature 시계열
다음 중 1개만 사용했거나, 3개를 모두 조합해 distance 계산
(너의 방식에 따라 문장 조정 가능)
이렇게 정리된 sequence를 DTW 입력값으로 넣음.
5. Distance Matrix 생성 (DTW 기반)
- 모든 sequence 간 DTW distance를 계산.
- NxN DTW distance matrix 생성.
- 이 행렬은 군집화의 핵심 입력값.
“각 sequence가 다른 sequence와 얼마나 닮았는가?”를 모두 수치화한 결과.
6. HDBSCAN 군집화 수행
Distance matrix를 사용하여 HDBSCAN을 적용.
특징:
- 클러스터 개수를 지정할 필요 없음
- outlier(노이즈)에 대해 라벨 -1을 자연스럽게 처리
- 공정의 비정상 패턴을 자동으로 분리해냄
결과:
- rec1: 메인 / 서브 / 아웃라이어
- rec2: 메인 / 서브 / 아웃라이어
총 6개 패턴으로 군집화됨.
Fail의 다수가 outlier cluster에 위치함을 확인.
7. MDS 기반 시각화 (고차원 → 2D)
- DTW distance matrix는 고차원 구조이므로 직접 시각화가 불가.
- MDS(Multidimensional Scaling)를 사용하여 2D로 투영.
- 각 sequence를 점으로 찍고, 군집 색을 입혀 시각화.
“패턴들이 어떻게 자연스럽게 군집을 이루는지” 시각적으로 증명.
추가) DTW 알고리즘이 이해 안돼서 추가로 조사한것
DTW(Dynamic Time Warping)는 두 시계열의 “모양”을 비교할 때, 시간축을 비선형적으로 늘였다 줄여서 가장 비슷하게 맞는 경로를 찾고 그 비용(cost)을 거리로 정의한 것.
즉,
- A 시계열이 200포인트
- B 시계열이 350포인트
처럼 길이가 다르면 원래는 비교 자체가 불가능한데
DTW는 시간을 늘리거나 줄이면서 곡선의 형태를 맞추기 때문에 비교가 가능함.
유클리드 거리(Euclidean distance)와의 차이점
유클리드는 “시간축이 동일”하다는 가정을 해야 한다:
- t=0, t=1, t=2 … 같은 위치의 값끼리 비교
→ 하지만 네 데이터는 sequence마다 시간 길이가 다름
예를 들어:
A: 🔼───▼────
B: 🔼──────▼──────
둘의 패턴은 같아 보이지만
- 시작 시점이 다르고
- 진행 속도도 다름
유클리드 거리로 비교하면 → 서로 전혀 다른 패턴으로 나옴.
DTW의 핵심: “시간축을 늘리고 줄여서 맞춘다”
DTW는 이런 식으로 두 곡선을 ‘꺾고 구부려서’ 가장 잘 맞는 alignment를 찾는다.
예:
유클리드는 point-to-point로 비교 → 3과 2 비교, 4와 3 비교 같은 문제가 생김.
DTW는 이렇게 matching 함:
즉
A의 3은 B의 2와 3에 동시에 매칭될 수 있음
이렇게 함으로써 “전체 형태”는 비슷하게 평가됨.
DTW Distance = 최적 경로의 비용
두 시계열을 같은 길이로 강제 정렬하는 데 필요한 “전쟁 비용”이 곧 distance야.
- 완전히 같은 패턴 → DTW distance = 낮음
- 모양이 다름 → DTW distance = 높음
이 distance를 모아서 NxN distance matrix를 만들면
HDBSCAN 같은 density-based clustering에 들어갈 수 있게 됨.
개념적 그림

'빅데이터 QAQC_3기 > 빅데이터 QAQC_3기 TIL' 카테고리의 다른 글
| TIL_251208 (0) | 2025.12.08 |
|---|---|
| TIL_251205 (0) | 2025.12.05 |
| TIL_251203 (0) | 2025.12.03 |
| TIL_25120 (0) | 2025.12.02 |
| TIL_251201 (0) | 2025.12.01 |