빅데이터 QAQC_3기/빅데이터 QAQC_3기 TIL

TIL_251205

usungusung 2025. 12. 5. 21:09

Today I learned

 

 

1. [라이브세션] 시계열 특강

spc란?

  • Statistical Process Control: 통계적 공정관리
  • 제조 공정은 전부 SPC 형태로 이루어짐
  • 시계열적으로 값들이 들어오다가 UCL, LCL을 벗어나게 되면(공정에 이상이 생김) 조직이 대응, 공정 조정이 되며 안정적인 구간, 상하한선 안으로 들어 오게 되는 시스템
  • 6시그마가 완전히 구축되지 않은 공정의 경우 저 UCL-LCL 갭이 넓다.

공정 개선을 통해 데이터가 안정적으로 변화한다 -> 새로운 UCL, LCL을 설정하게 됨

 

목적

  • 공정 자체를 관리하여 문제가 발생하기 전 사전 예방하는게 목적
  • 1시그마 = 표준편차 1배, 2시그마 = 표준편차 2배
  • 관리도의 상한선-하한선을 3시그마로 두는 이유?
  • 공정내 변동이 99.73%의 데이터가 허용된 범위 내에 존재하여 정상적인 공정으로 확인
  • 3시그마를 넘어가는 값이 많아지면 공정 이상 상태 가능성ㅇ이 높아짐

관리도 차트의 해석

ZoneC (-1시그마~1시그마)

데이터의 대부분(68.26%)이 포함됨, 정상적인 공정 상태

 

ZoneB(-2~-1시그마, 1~2 시그마)

데이터의 27.2%가 포함되는 구역

일부 이상 징후가 나타날 수 있는 경고 영역

 

ZoneA(-3~-2시그마, 2~3시그마)

데이터의 4.2%가 포함되는 지역

이 영역을 초과하면 공정이 이상 상태임을 의미

 

관리 상태(Stable Process)

관리 상태인 경우(정상 ㄱ오정_)

데이터가 UCL-LCl 범위 내에서 랜덤하게 분포

 

비관리 상태의 경우

데이터가 관리 한계를 벗어남 - 즉각 조치 필요

데이터가 한족 방향으로 지속적인 변화 - 트렌드를 보임

데이터가 특정 영역에 몰려 있음

 

SPC의 zone Rule 요약

SPC에서 평균 플마 3시그마를 기준으로 Zone A, B, C를 나누고 사용함(위에서 설명함)

 

rule1 - 1 point beyond 플마 3시그마

의미: 단일 포인트가 플마 3시그마 이상이면 공정 이상

 

rule2 - 9개 연속된 점이 평균의 같은 방향에 위치하면 공정 이상

 

rule3- 6개의 연속된 점이 연속 증가, 연속 감소 - 추세 감소(노이즈 아님)

 

 rule4 - 연속된 14개의 값이 오르락내리락 반복하게 되면 공정 이상

 

rule5 - 3개의 연속된 점 중 2개 이상이 zone A에 있고, 평균의 같은 쪽이면 공정 위험

 

rule6 - 5개 중 4개가 zone B이상에 있고, 평균의 같은 쪽이면 이상

 

rule7- 15개 포인트가 모두 zone C 에 있으면 너무 안정적 - 센서 오류 가능성

 

rule8 -  8개의 포인트가 평균을 왔다갔다 하지만 ZoneC에 없음 - 경계 구간만 반복 = 불안정

 

이 부분을 왜 하는가? 대시보드를 구축 할 때 이런 부분을 보여주면 더 좋다 이거죠

 

 

시계열 데이터란?

센서, 장비 로그, 설비 상태 등 시간에 따라 수집되는 데이터

하지만, 단순히 시간 정보가 있다고 해서 시계열 데이터는 아님

 

특징

시간의 순서가 연속값

이전값-현재값이 상관되어있음(자기상관성)

시간 간격이 일정함

 

Q. 시간이 뒤죽박죽이면 시계열 데이터가 아닌가?

A. 일 수도, 아닐수도 있음.

어느정도 자기상관성 같은게 존재를 해야 하고, 해당 데이터를 균일한 시간으로 resampling 하거나, 불규칙한 간격을 그대로 두고 사용 가능함.

 

Q. 일별 데이터인데, 특정 날의 3개의 row 데이터가 있어도 되는가?

평균, 합계, 축소 방식으로 조정하면 가능

 

연속된 측정값이지만 비시계열 형식으로 풀수도, 시계열로 풀 수도 있다.

2) 연속된 측정값이지만 시계열로

이전 시점 값과 현재 값의 차이(변화량)을 계산해야 함

 

시계열 데이터 feature engineering

1. 날짜를 년,월,일로 나누기+요일, 주말인지 등

 

Lag feature

과거의 데이터를 새로운 입력으로 추가하는거

즉, 이전 시간의 값들을 복사하여 옆 칼럼에 붙여 예측에 활용하는 방법

 

왜 쓰는가?

1. 과거가 현재에 영향을 줄 수 있기 때문.

ex) 어제 비가 왔다면 오늘도 비가 올 확률이 높다

배터리 전압이 계속 떨어진다면 지금도 떨어질 확률이 높다.

 

#예제 시계열 데이터

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) t-1
df['lag_2'] = df['value'].shift(2) t-2

print(df)
lag 어디까지해야하나요??
ACF q => lag 시점
ACF 

 

3. rolling statistics

지정한 window 내에서 통계값을 계산하는 방법

즉 데이터를 일정 구간식 묶어 평균, 표준편차를 계산하는 기법

윈도우: 시계열 데이터에서 과거 일정한 개수만큼 묶은 구간

 

윈도우 크기는 어떻게 정하는가?

도메인 지식+데이터 주기성

 

4. diff feature

diff(): 이전 시점과 현재 시점의 차이

왜 diff feature를 추가하는가?

변화 자체가 의미있는 경우가 많기 때문

시계열 데이터는 현재 값보다 얼마나 변했는지가 중요

추세나 패턴을 모델이 인식하게 해줌Today I learned

 

 

 

 

 

1. 시계열 특강

spc란?

 

Statistical Process Control: 통계적 공정관리

 

제조 공정은 전부 SPC 형태로 이루어짐

 

시계열적으로 값들이 들어오다가 UCL, LCL을 벗어나게 되면(공정에 이상이 생김) 조직이 대응, 공정 조정이 되며 안정적인 구간, 상하한선 안으로 들어 오게 되는 시스템

 

 

 

6시그마가 완전히 구축되지 않은 공정의 경우 저 UCL-LCL 갭이 넓다.

 

공정 개선을 통해 데이터가 안정적으로 변화한다 -> 새로운 UCL, LCL을 설정하게 됨

 

 

 

목적

 

공정 자체를 관리하여 문제가 발생하기 전 사전 예방하는게 목적

 

1시그마 = 표준편차 1배

 

2시그마 = 표준편차 2배

 

관리도의 상한선-하한선을 3시그마로 두는 이유?

 

공정내 변동이 99.73%의 데이터가 허용된 범위 내에 존재하여 정상적인 공정으로 확인

 

3시그마를 넘어가는 값이 많아지면 공정 이상 상태 가능성ㅇ이 높아짐

 

 

 

관리도 차트의 해석

 

ZoneC (-1시그마~1시그마)

 

데이터의 대부분(68.26%)이 포함됨, 정상적인 공정 상태

 

 

 

ZoneB(-2~-1시그마, 1~2 시그마)

 

데이터의 27.2%가 포함되는 구역

 

일부 이상 징후가 나타날 수 있는 경고 영역

 

 

 

ZoneA(-3~-2시그마, 2~3시그마)

 

데이터의 4.2%가 포함되는 지역

 

이 영역을 초과하면 공정이 이상 상태임을 의미

 

 

 

관리 상태(Stable Process)

 

관리 상태인 경우(정상 ㄱ오정_)

 

데이터가 UCL-LCl 범위 내에서 랜덤하게 분포

 

 

 

비관리 상태의 경우

 

데이터가 관리 한계를 벗어남 - 즉각 조치 필요

 

데이터가 한족 방향으로 지속적인 변화 - 트렌드를 보임

 

데이터가 특정 영역에 몰려 있음

 

 

 

SPC의 zone Rule 요약

 

SPC에서 평균 플마 3시그마를 기준으로 Zone A, B, C를 나누고 사용함(위에서 설명함)

 

 

 

rule1 - 1 point beyond 플마 3시그마

 

의미: 단일 포인트가 플마 3시그마 이상이면 공정 이상

 

 

 

rule2 - 9개 연속된 점이 평균의 같은 방향에 위치하면 공정 이상

 

 

 

rule3- 6개의 연속된 점이 연속 증가, 연속 감소 - 추세 감소(노이즈 아님)

 

 

 

 rule4 - 연속된 14개의 값이 오르락내리락 반복하게 되면 공정 이상

 

 

 

rule5 - 3개의 연속된 점 중 2개 이상이 zone A에 있고, 평균의 같은 쪽이면 공정 위험

 

 

 

rule6 - 5개 중 4개가 zone B이상에 있고, 평균의 같은 쪽이면 이상

 

 

 

rule7- 15개 포인트가 모두 zone C 에 있으면 너무 안정적 - 센서 오류 가능성

 

 

 

rule8 - 8개의 포인트가 평균을 왔다갔다 하지만 ZoneC에 없음 - 경계 구간만 반복 = 불안정

 

 

 

이 부분을 왜 하는가? 대시보드를 구축 할 때 이런 부분을 보여주면 더 좋다 이거죠

 

 

 

 

 

시계열 데이터란?

 

센서, 장비 로그, 설비 상태 등 시간에 따라 수집되는 데이터

 

하지만, 단순히 시간 정보가 있다고 해서 시계열 데이터는 아님

 

 

 

특징

 

시간의 순서가 연속값

 

이전값-현재값이 상관되어있음(자기상관성)

 

시간 간격이 일정함

 

 

 

Q. 시간이 뒤죽박죽이면 시계열 데이터가 아닌가?

 

A. 일 수도, 아닐수도 있음.

 

어느정도 자기상관성 같은게 존재를 해야 하고, 해당 데이터를 균일한 시간으로 resampling 하거나, 불규칙한 간격을 그대로 두고 사용 가능함.

 

 

 

Q. 일별 데이터인데, 특정 날의 3개의 row 데이터가 있어도 되는가?

 

평균, 합계, 축소 방식으로 조정하면 가능

 

 

 

연속된 측정값이지만 비시계열 형식으로 풀수도, 시계열로 풀 수도 있다.

 

2) 연속된 측정값이지만 시계열로

 

이전 시점 값과 현재 값의 차이(변화량)을 계산해야 함

 

 

 

시계열 데이터 feature engineering

 

1. 날짜를 년,월,일로 나누기+요일, 주말인지 등

 

 

 

Lag feature

 

과거의 데이터를 새로운 입력으로 추가하는거

 

즉, 이전 시간의 값들을 복사하여 옆 칼럼에 붙여 예측에 활용하는 방법

 

 

 

왜 쓰는가?

 

1. 과거가 현재에 영향을 줄 수 있기 때문.

 

ex) 어제 비가 왔다면 오늘도 비가 올 확률이 높다

 

배터리 전압이 계속 떨어진다면 지금도 떨어질 확률이 높다.

 

 

 

#예제 시계열 데이터

 

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) t-1

df['lag_2'] = df['value'].shift(2) t-2

 

print(df)

lag 어디까지해야하나요??

ACF q => lag 시점

ACF 

 

 

 

3. rolling statistics

 

지정한 window 내에서 통계값을 계산하는 방법

 

즉 데이터를 일정 구간식 묶어 평균, 표준편차를 계산하는 기법

 

윈도우: 시계열 데이터에서 과거 일정한 개수만큼 묶은 구간

 

 

 

윈도우 크기는 어떻게 정하는가?

 

도메인 지식+데이터 주기성

 

 

 

4. diff feature

 

diff(): 이전 시점과 현재 시점의 차이

 

왜 diff feature를 추가하는가?

 

변화 자체가 의미있는 경우가 많기 때문

 

시계열 데이터는 현재 값보다 얼마나 변했는지가 중요

 

추세나 패턴을 모델이 인식하게 해줌

 

최종적으로 

공정같은 경우는

Lot나 batch 형식의 데이터가 많다.

로트
 제품이 여러개가 들어있고

시계열이 있을 수도 없을수도

Lot 하나에 요약값을 만들 수도 있음

제품의 묶음

배치

공정을 한번 수행한 과정

 

 

2. 대시보드 프로젝트 진행(~12.17)

프로젝트 개선 방안

핵심 주제

  • 시계열 데이터를 하나로 평균 내어 집계하면 정보(특히 피크 패턴)가 소실된다. → 구간 기반 Feature Engineering 필요
  • 구간을 나누어 Feature를 확장(샘플 증폭)하고, Lag/Rolling/변화량 Feature를 생성해야 함
  • 공정 시간 길이가 로트별로 다르면 절대시간이 아니라 비율 기반 구간화가 해답
  • Feature는 우선 최대한 많이 생성하고 모델링을 통해 중요 Feature를 선별하는 방식

📝 상세 정리

1. 단순 집계(평균값 등) 방식의 문제점

  • 시계열을 평균화하면 피크, 상승/하강 패턴 등이 사라진다 → 불량/정상 판별 신호가 묻힘
  • 집계 후 데이터 수가 100개 정도로 줄어도 상관없지만, 패턴 손실이 훨씬 더 큰 위험
  • 따라서 시계열을 그대로 쓰지 말고 구간별로 나눈 뒤 Feature 생성 필요

📌 핵심: “압축보다 분할, 요약보다 패턴 보존”


2. 구간 기반 Feature Engineering 방식

  • 튜터가 강조한 방법:
단계설명
① 시계열 그래프 시각화 피크/기울기 변화 지점 눈으로 파악
② 의미 있는 구간으로 나누기 예: 초반 상승 → 피크 → 후반 하강
③ 각 구간마다 Feature 생성 평균, max, min, std, slope 등
④ 구간 인덱스를 Feature로 추가 구간0/구간1/구간2 같은 Tag 속성 생성
⑤ 정상/불량 비교 시 segment 단위로 분석 패턴별 차이가 명확해짐
→ 결과: 샘플 수 증가 (≈ 3배 이상), 학습 안정화  

📌 중요:

  • "구간 수는 정답이 없다 → 시각적으로 보고 경험적으로 결정"
  • 정상과 불량의 패턴 분리가 잘 되는 포인트에서 자른다

3. 시간 길이가 다를 때 해결법

  • 시퀀스마다 공정 시간이 다르면 동일 구간 비교가 불가능
  • 절대시간이 아닌 비율 기반 구간 나누기
    • 예: 전체 길이를 0~1로 정규화 후 0~0.3=1구간, 0.3~0.7=2구간 ...

📌 핵심: "길이 다르면 시간 normalize → 상대적 구간 비교"


4. Feature Engineering 종류 (언급된 3종)

종류의미예
Lag Feature 과거 시점 값 Volt(t-1), Temp(t-3)
Rolling Feature 구간 기반 이동 통계 amp_mean(rolling_30%)
변화량 Feature 증가/감소 기울기 Δvolt = volt_t - volt_(t-1)

💡 포인트

  • Rolling window 크기 결정이 가장 어려운 영역이지만
    이번 데이터는 공정 구간 비율이 정해져 있어 window 설정 부담이 적음
  • Feature는 다 넣고 → 모델이 의미 없는 것 필터링하도록 놔두면 됨

5. 모델 학습 팁 (튜터 중요 코멘트)

  • 초기에 Feature는 일단 많이 생성하고 학습 후 Feature Importance로 선별
  • 랜덤포레스트, XGBoost 등은 중요 Feature만 선택해 사용함
  • 학습/테스트 split는 구간으로 나누면 시계열성을 잃으므로 섞어서 분배하는 것이 바람직

📌 핵심:

"집계한 순간 시계열성은 사라진다 → Train/Test는 섞어서"

'빅데이터 QAQC_3기 > 빅데이터 QAQC_3기 TIL' 카테고리의 다른 글

TIL_251211  (0) 2025.12.11
TIL_251208  (0) 2025.12.08
TIL_251204  (0) 2025.12.04
TIL_251203  (0) 2025.12.03
TIL_25120  (0) 2025.12.02