😎 κ³΅λΆ€ν•˜λŠ” μ§•μ§•μ•ŒνŒŒμΉ΄λŠ” μ²˜μŒμ΄μ§€?

이상 νƒμ§€μ˜ μ•Œκ³ λ¦¬μ¦˜ (Anomaly Detection Algorithm) λ³Έλ¬Έ

πŸ‘©‍πŸ’» 인곡지λŠ₯ (ML & DL)/Serial Data

이상 νƒμ§€μ˜ μ•Œκ³ λ¦¬μ¦˜ (Anomaly Detection Algorithm)

μ§•μ§•μ•ŒνŒŒμΉ΄ 2022. 9. 27. 11:09
728x90
λ°˜μ‘ν˜•

220927 μž‘μ„±

<λ³Έ λΈ”λ‘œκ·ΈλŠ” coding-nurseλ‹˜κ³Ό today-1, diging-developer λ‹˜μ˜ λΈ”λ‘œκ·Έλ₯Ό μ°Έκ³ ν•΄μ„œ κ³΅λΆ€ν•˜λ©° μž‘μ„±ν•˜μ˜€μŠ΅λ‹ˆλ‹€ :-) >

https://coding-nurse.tistory.com/294?category=991286 

 

[ML μ•Œκ³ λ¦¬μ¦˜] 이상 탐지(Anomaly Detection) μ•Œκ³ λ¦¬μ¦˜

이상탐지 μ•Œκ³ λ¦¬μ¦˜μ— λŒ€ν•œ λ‚΄μš©μ΄ λ„ˆλ¬΄ λ°©λŒ€ν•˜κΈ°λ„ ν•˜κ³ , λ‹€ κ³΅λΆ€ν•˜κΈ°μ—” λ°”μ˜λ‹€λ°”λΉ ν˜„λŒ€μ‚¬νšŒμ— μ‚΄κ³ μžˆλŠ” λ‚˜μ΄κΈ°μ— 잘 정리섀λͺ…을 ν•˜λŠ” μœ νŠœλΈŒκ°•μ˜λ₯Ό μ„ νƒν•˜μ˜€λ‹€! μ—­μ‹œλ‚˜ 쒋은 κ°•μ˜ ! πŸŽ₯ 유튜

coding-nurse.tistory.com

https://today-1.tistory.com/27?category=886697 

 

μ‹œκ³„μ—΄ 및 톡계 μš©μ–΄

μ‹œκ³„μ—΄ 및 톡계적 μš©μ–΄ : 뢄석 진행에 μ•žμ„œ 기초적인 μš©μ–΄λ₯Ό λ¨Όμ € ν•™μŠ΅ν•΄λ³΄μž 1. 데이터 관점에 λ”°λ₯Έ λΆ„λ₯˜ : μ‹œκ³„μ—΄ 뢄석 Target data 1) μ‹œκ³„μ—΄μ’…λ‹¨λ©΄ : λ‹€μˆ˜μ‹œμ  + νŠΉμ •λ…λ¦½λ³€μˆ˜ 2) μ‹œκ³„μ—΄νš‘λ‹¨λ©΄ : λ‹€

today-1.tistory.com

https://dining-developer.tistory.com/29

 

μ‹œκ³„μ—΄ μ˜ˆμΈ‘μ„ 지도 ν•™μŠ΅μœΌλ‘œ λ°”κΎΈλŠ” 방법 - Time Series to Supervised Learning with Sliding window

μŠ¬λΌμ΄λ”© μœˆλ„μš°λ₯Ό 톡해 μ‹œκ³„μ—΄ 데이터λ₯Ό μ§€λ„ν•™μŠ΅μœΌλ‘œ λ³€ν˜•ν•˜κΈ° μ‹œκ³„μ—΄ 데이터 예츑(Time series forecasting)은 지도 ν•™μŠ΅(Supervised learning)으둜 λ³€ν˜•μ‹œν‚¬ 수 μžˆλ‹€. 이번 κΈ€μ—μ„œλŠ” μ‹œκ³„μ—΄ 문제λ₯Ό μ‹œκ³„

dining-developer.tistory.com

 

 

 

1️⃣ 이상 탐지(anomaly detection)

: 일반적인 κ°’κ³Ό λ‹€λ₯Έ νŠΉμ΄ν•œ κ°’(outlier)λ‚˜ λ“œλ¬Έ 사건을 νƒμ§€ν•˜λŠ” 기법

 

2️⃣ 이상 탐지 μ’…λ₯˜

https://youtu.be/xPA6JyHFHew 2:35ν™”λ©΄ 캑쳐

 

  • 1. Point Anomaly Detection
    • νŠΉμ • point의 μ΄μƒμΉ˜λ₯Ό κ°μ§€ν•œλ‹€.
    • 일반적으둜 데이터 λ‚΄μ˜ outlier μ΄μƒμΉ˜λ₯Ό 감지
    • μΆ•μ λœ μ‹œκ°„λ™μ•ˆ 정적인 점뢄포에 μ΄ˆμ μ„ λ‘”λ‹€
  • 2. Contextual anomaly detection
    • 연속적인 λ³€ν™” νŒ¨ν„΄μ„ μ½μ–΄μ„œ μ΄μƒμΉ˜λ₯Ό 감지
    • λ§₯락을 κ³ λ €ν•΄μ„œ μ˜ˆμƒλ³€ν™”μ™€ 동떨어진 κ²°κ³Όλ₯Ό 탐지
    • 주의점: λ―Όκ°ν•˜λ©΄ 정상인데도 이상탐지가 되고, λ‘”κ°ν•˜λ©΄ 비정상인데도 이상탐지λ₯Ό 놓침
    • μ‹œκ³„μ—΄κ³Ό 같은 동적인 νŠΉμ„±μ— μ΄ˆμ μ„ λ‘ 
  • 3. Collective  anomaly detection
    • μ—°κ΄€μžˆλŠ” 2개 μ΄μƒμ˜ λ°μ΄ν„°μ˜ λ³€ν™”λ₯Ό 탐지
    • 2κ°œμ΄μƒμ˜ νŠΉμ§•μ„ λΉ„κ΅ν•΄μ„œ, 1개의 νŠΉμ§• 변화에 따라 λ‹€λ₯Έ ν•˜λ‚˜ νŠΉμ§•μ΄ μ˜ˆμƒν–ˆλ˜ νŒ¨ν„΄μ΄ μ•„λ‹Œ 비정상적 νŒ¨ν„΄μ„ κ°€μ§ˆ λ•Œ 탐지

https://dodonam.tistory.com/250

 

 

3️⃣ μ‹œκ³„μ—΄ 및 톡계적 μš©μ–΄

쀑심 ν†΅κ³„λŸ‰ : λ°μ΄ν„°μ˜ 쀑심 κ²½ν–₯을 λ‚˜νƒ€λ‚΄λŠ” 수치

  1) 평균(μ‚°μˆ /κΈ°ν•˜/μ‘°ν™”/가쀑) : ν‘œλ³Έλ°μ΄ν„°μ˜ 쀑심 무게

  2) 쀑앙값 : μˆœμ„œλ₯Ό 가진 ν‘œλ³Έλ°μ΄ν„°μ˜ κ°€μš΄λ°(50%)에 μœ„μΉ˜ν•œ κ°’

  3) μ΅œλΉˆκ°’ : ν‘œλ³Έλ°μ΄ν„° 쀑 κ°€μž₯ λΉˆλ²ˆν•œ κ°’

변동 ν†΅κ³„λŸ‰ : λ°μ΄ν„°μ˜ 변동성을 λ‚˜νƒ€λ‚΄λŠ” 수치

1) λ²”μœ„(RANGE) : μ΅œλŒ€κ°’κ³Ό μ΅œμ†Œκ°’μ˜ 차이

2) 편차(DEV) : κ΄€μΈ‘κ°’κ³Ό ν‰κ· μ˜ 차이

3) λΆ„μ‚°(VAR) : 편차 제곱의 합을 λ°μ΄ν„°μ˜ 수둜 λ‚˜λˆˆ κ°’

4) ν‘œμ€€νŽΈμ°¨(STD) : SQRT(λΆ„μ‚°)

 

ν˜•νƒœ ν†΅κ³„λŸ‰ : λ°μ΄ν„°μ˜ λΆ„ν¬ν˜•νƒœμ™€ μ™œκ³‘μ„ λ‚˜νƒ€λ‚΄λŠ” 수치

1) μ™œλ„(Skewness) : 평균을 μ€‘μ‹¬μœΌλ‘œ 쒌우둜 데이터가 편ν–₯λ˜μ–΄ μžˆλŠ” 정도

2) 첨도(Kurtosis) : 뾰쑱함 정도 (첨도가 크면 μ΄μƒμΉ˜κ°€ 크닀)

3) μ΄μƒμΉ˜(Outlier) : 였λ₯˜λ‘œ νŒλ‹¨ν•˜λŠ” κ°’μ΄μ§€λ§Œ 기쀀이 뢈λͺ…ν™•

https://m.blog.naver.com/yk60park/222100758577

 

 

 

4️⃣ μ‹œκ³„μ—΄ 데이터 예츑(Time series forecasting)은 지도 ν•™μŠ΅(Supervised learning)으둜 λ³€ν˜•

y = f(X)
  • 지도 ν•™μŠ΅ (Supervised Machine Learning)
    • μž…λ ₯(X)κ³Ό 좜λ ₯(y) 있음
    • ν•™μŠ΅λœ λͺ¨λΈμ„ λ°”νƒ•μœΌλ‘œ ν•™μŠ΅μ— 쓰이지 μ•Šμ€ μƒˆλ‘œμš΄ μž…λ ₯ 데이터(X)에 λŒ€ν•΄μ„œ 좜λ ₯(y)을  잘 μ˜ˆμΈ‘ν•  수 μžˆλ„λ‘ ν•˜λŠ” 것
    •  training 데이터셋을 톡해 정닡을 μ•Œκ³  κ·Έ λ°©ν–₯으둜 μ§€λ„λ˜λŠ” λ°©μ‹μœΌλ‘œ ν•™μŠ΅λ˜κΈ° λ•Œλ¬Έμ— 지도 ν•™μŠ΅
    • Classification(λΆ„λ₯˜) : μ˜ˆμΈ‘ν•  값이 μΉ΄ν…Œκ³ λ¦¬μΈ 경우
    • Regression(νšŒκ·€) : μ˜ˆμΈ‘ν•  값이 μ‹€μ œ 값인 경우
  • μŠ¬λΌμ΄λ”© μœˆλ„μš° (Sliding Window)
    • μ‹œκ³„μ—΄ λ°μ΄ν„°λŠ” 지도 ν•™μŠ΅μœΌλ‘œ ν‘œν˜„ κ°€λŠ₯
    • 이전 μ‹œκ°„μ˜ 데이터λ₯Ό μž…λ ₯(X)으둜 μ‚¬μš©ν•˜κ³  λ‹€μŒ μ‹œκ°„ 데이터λ₯Ό 좜λ ₯(y)으둜 μ‚¬μš©ν•˜λ©΄ 됨
  • 닀단계 μ˜ˆμΈ‘μ—μ„œμ˜ μŠ¬λΌμ΄λ”© μœˆλ„μš° (Sliding Window with Multi-Step Forecasting)
    • μ˜ˆμΈ‘ν•  미래 λ‹¨κ³„μˆ˜λŠ” μ€‘μš”ν•˜λ‹€.
    • One-Step Forecast (1단계 예츑) : λ‹¨μˆœνžˆ λ‹€μŒ μ‹œκ°„ (t+1) 만 예츑
    • Multi-Step Forecast (닀단계 예츑) : μ—¬κΈ°μ„œ 두 단계 μ΄μƒμ˜ 미래 μ‹œκ°„ (t+1 ~ t+N) 을 예츑

 

 

5️⃣ μ‹œκ°„ 데이터 뢄석을 μœ„ν•œ μŠ¬λΌμ΄λ”© μœˆλ„μš° 기법

: μ‹œκ³„μ—΄ 데이터가 λ§Žμ§€ μ•Šμ„λ•Œ 데이터셋을 늘리기 μœ„ν•΄ μ‚¬μš©ν•˜λ©° window sizeλŠ” μ‹œκ³„μ—΄ λ°μ΄ν„°μ˜ νŠΉμ„±μ„ κ³ λ €ν•˜μ—¬ 섀정함

: y  =  f (x) 둜 μ„€λͺ…ν•  수 μžˆλŠ” μ‹œκ³„μ—΄ 데이터 μ„ΈνŠΈκ°€ 주어지면 μŠ¬λΌμ΄λ”© μœˆλ„μš°λ₯Ό μ‚¬μš©ν•˜μ—¬ 데이터가 μž¬κ΅¬μ„±λ˜μ–΄ 이전 좜λ ₯ λ˜λŠ” κ³Όκ±° 데이터λ₯Ό μ‚¬μš©ν•˜μ—¬ λ‹€μŒ 좜λ ₯을 예츑

 

  • μŠ¬λΌμ΄λ”© μœˆλ„μš°λ₯Ό κ΄€λ¦¬ν•˜κΈ° μœ„ν•œ λ³€μˆ˜
    • window_start : μŠ¬λΌμ΄λ”© μœˆλ„μš° μ‹œμž‘ 인덱슀
    • window_end : μŠ¬λΌμ΄λ”© μœˆλ„μš° 끝 인덱슀
    • window_sum : μŠ¬λΌμ΄λ”© μœˆλ„μš° 합계
  • ν•˜μœ„ μœˆλ„μš°μ˜ λ²”μœ„ k 와 λ™μΌν•˜κ²Œ μœ μ§€ν•˜λ©° λ²”μœ„ λ‚΄μ˜ μš”μ†ŒλŠ” λͺ¨λ‘ ν•©μ‚°ν•˜κ³  λ²”μœ„ λ°–μœΌλ‘œ λ²—μ–΄λ‚œ μš”μ†Œλ“€μ€ 빼쀌
  • μŠ¬λΌμ΄λ”© μœˆλ„μš°μ˜ λ²”μœ„κ°€ k 보닀 μ»€μ§ˆλ•ŒκΉŒμ§€ (window_end>=k-1)λŠ” μš”μ†Œλ“€μ„ ν•©μ‚°ν•˜κΈ°λ§Œ ν•˜κ³  μ΄ν›„λΆ€ν„°λŠ” λ²”μœ„ λ°–μ˜ μš”μ†Œλ“€μ„ 차감
  • 기쑴처럼 맀번 μ„œλΈŒλ°°μ—΄μ˜ 합계λ₯Ό ꡬ할 ν•„μš” 없이 λͺ¨λ“  μš”μ†Œλ₯Ό 1번만 μˆœνšŒν•˜λ©΄μ„œ μ΅œλŒ€κ°’μ„ κ΅¬ν•˜κ²Œ λ˜λ―€λ‘œ λΉ λ₯΄κ³  효율적으둜 처리

 

 

 

 

 

 

728x90
λ°˜μ‘ν˜•
Comments