장비 온도데이터를 시계열로 분석 중이다.
어떤 것이 이상치이고 어떤 것이 진짜 고장등으로 인한 이상(탐지 대상)인 것인가?
관련 지식 스크랩 ...
https://hands-on.cloud/anomaly-detection-python-example/
Anomaly Detection Python - Easy To Follow Examples 2023
This article contains anomaly detection Python examples based on Isolation Forests and Local Outlier Factor algorithms.
hands-on.cloud
https://neptune.ai/blog/anomaly-detection-in-time-series
Anomaly Detection in Time Series
Time series are everywhere! In user behavior on a website, or stock prices of a Fortune 500 company, or any other time-related example. Time series data is evident in every industry in some shape or form. Naturally, it’s also one of the most researched
neptune.ai
실제 시계열 데이터를 들여다보니, 이상치가
튀는 값으로 일시적인 스파크 경우와 ( Point Outlier)
비정상적인 패턴을 보이는 경우(subsequnce outlier)로 나뉘었다.
어느 것을 데이터셋에서 제거해야 하고, 어느 것을 비정상으로 간주하고 학습/분류 해야 하는가?
이상탐지 문제에서 어려운 것은 어느 것이 제거 대상인지 가려내는 것 같다.
일반적인 데이터 분석에서 이상치는 적절히 제거 후 분석 진행한다.
그러나 이상탐지 문제에서는 이상치 자체가 탐지 대상(=y)일 수 있기에 함부러 제거할 수 없다.
가령 실제 분석 진행 중인 장비 온도 데이터에서,
정상 셋팅값이 200도 언저리일 때 10,000도 이상의 값들이 있다. 이는 지구가 멸망해서 핵폭발이 일어난게 아닌 이상, 이상치가 아마 맞을 것이다.
그러나 0도에서 300도를 오가는 경우에는? 고장으로 인한 것인지 온도센서의 오류로 인한 것인지 너무 높은 온도로 가열된 것인지 ....
혹은 셋팅 평균값에서 잘 오가다가 한 순간에만 300도로 치솟는(Point Outlier) 경우에는 ?
이 것을 이상으로 간주하고 탐지하는 대상으로 할 지, 단순 오류 이상치로 간주하고 데이터셋에서 제거할지에 따라 학습 결과가 달라질 수 있다.
- Point anomalies are objects that lay far away from the dataset’s mean or median distribution. An example of a point anomaly might be a single transaction of a huge amount of money from a credit card.
- Contextual anomaly is a context-specific anomaly that commonly occurs in time-series datasets. For example, high traffic volume to a website might be a common thing during any weekday, but not during a weekend. So, unexpected traffic spikes during the weekend might represent a contextual anomaly.
- A collective anomaly describes a group of related anomaly objects, The individual data instance in a collective anomaly may not be an anomaly by itself, but multiple occurrences of such data points together might be an anomaly. For example, a single slow network connection to the website might not be an issue in general, but thousands of such connections might represent a DDoS attack.
Isolation Forest (비지도 이상치 탐지)
출처:
https://zephyrus1111.tistory.com/474
44. Isolation Forest에 대해서 알아보자.
이번 포스팅에서는 모델 기반 이상치 탐지 방법인 Isolation Forest에 대해서 알아보고자 한다. - 목차 - 1. Isolation Forest이란 무엇인가? 2. Isolation Forest 알고리즘 3. 예제 3. 장단점 1. Isolation Forest이란
zephyrus1111.tistory.com
이상치인 점은 고립하기 쉽다. 적은 수의 선만으로 다른 정상치 데이터와 분리할 수 있다.
정상치의 점은 다른 점들과 밀접하므로 분리하는데 많은 선이 필요하다.
이에 착안하여 분리시키는데 드는 선의 횟수(=이진트리 path length에 비례)를 점수화하여 이상치를 판별하는 알고리즘이다. Decision tree 및 Decision Tree 가 결합된 Forest를 활용한다.
분리하는데 더 많은 선이 필요할수록 = 이진트리가 깊어질수록 = Path length가 길어질수록 = 이상치점수가 증가한다.
데이터 계산량의 문제, swamping, masking의 문제 때문에 여러 번 샘플링한다.
나무 개수 t = 100개, 샘플링사이즈 =256개면 대부분 데이터 커버 가능하다고 한다.
실제 현장에서는 연산량의 문제 등으로 저만큼 쓸 일 별로 없을 것 같다.
isolation Forest로 판별하기 어려운 이상치는
위와 같이 선으로 정상치/이상치 판별하기 어렵거나 주기성을 가진 경우이다.
이것을 해결한 것이 Extended isoloation Forest이다.
그 외 시계열 이상치 탐지에 쓰이는 대표적인 기법들
시계열 데이터에서 이상치를 탐지하는데 사용되는 다양한 기법들이 있습니다. 아래에는 몇 가지 대표적인 기법들과 각각의 특징, 사용 사례, 장단점을 설명하겠습니다:
1. STL (Seasonal and Trend decomposition using Loess):
STL은 시계열 데이터를 계절성, 트렌드, 잔차로 분해하는 기법입니다. 이상치는 잔차에 영향을 주게 되므로, 잔차에서 이상치를 탐지하는 데 사용됩니다. 주로 주기적인 패턴을 가지는 데이터에 적합하며, 데이터의 구조를 분해하여 이상치를 식별할 수 있습니다. 하지만 비선형적인 이상치나 변화를 잘 처리하지 못할 수 있습니다.
2. Isolation Forest:
Isolation Forest는 특이한 데이터 포인트를 찾는데 사용되는 기법입니다. 이상치는 일반적인 데이터보다 더 적은 분할로 더 빨리 분리될 가능성이 있기 때문에, 이러한 특징을 이용하여 이상치를 찾습니다. 빠른 속도와 비교적 단순한 구현이 가능한 장점이 있습니다. 데이터의 분포에 따라 성능이 달라질 수 있습니다.
3. Autoencoder:
Autoencoder는 신경망을 기반으로 한 비지도 학습 알고리즘으로, 입력 데이터를 잠재 공간으로 압축한 뒤 다시 복원하는 과정을 거치는데, 이 과정에서 원본과 복원본 간의 차이를 기반으로 이상치를 탐지합니다. 복잡한 패턴을 학습하고 변환할 수 있어 다양한 유형의 이상치를 탐지하는데 활용될 수 있습니다.
4. Prophet:
Prophet은 Facebook에서 개발한 시계열 예측 및 이상치 탐지 도구입니다. 휴리스틱 기반의 모델링 방법을 사용하여 트렌드와 계절성을 예측하고 이상치를 탐지합니다. 비교적 간단한 사용법과 높은 예측력을 가지는 장점이 있습니다.
각 기법은 데이터의 특성과 목적에 따라 선택되어야 합니다. STL은 계절성이나 트렌드를 고려하여 이상치를 탐지하는데 유용하며, Isolation Forest는 비교적 간단한 구현과 빠른 속도로 이상치를 찾는데 활용될 수 있습니다. Autoencoder는 복잡한 패턴을 포착하여 다양한 유형의 이상치를 탐지하는데 사용될 수 있고, Prophet은 시계열 예측과 이상치 탐지를 한 번에 처리하는데 도움을 줍니다.
많은 다른 기법들도 있으며, 데이터셋의 특성과 목적에 따라서 적절한 기법을 선택하여 시도해보는 것이 중요합니다.
Prophet
https://hyperconnect.github.io/2020/03/09/prophet-package.html
시계열 예측 패키지 Prophet 소개
Prophet을 이용하여 시계열 데이터를 예측하는 방법에 대해 소개합니다.
hyperconnect.github.io
prophet 알고리즘은 푸리에급수(Fourier series)를 이용하여 seasonality 패턴을 추정합니다. 푸리에급수는 주기가 있는 함수를 삼각함수의 급수로 나타낸 것인데요, 이 글에서는 자세히 다루지 않겠습니다.
Holidays 기간을 설정할 수 있어서 좋은 것 같다.
실제 장비 - 온도 데이터에서 가동하지 않고 쉬는 유휴기간을 어떻게 처리할지 고민이 많았다.
이상치는 아니지만 데이터는 결측 또는 0이고, 아예 빼버리자니 그 또한 의미있는 데이터기 때문이다.
이러한 유휴기간을 Holidays로 넣을 수 있어 용이하다..
시계열 성능 평가 지표
모델 평가 지표
모델의 평가지표는 평균 절대 오차율(mean absolute precentage error 또는 mape)을 주로 사용하여 부가 지표로 평균 절대 오차(mean absolute error 또는 mae)를 사용
'Data science > 데이터 분석' 카테고리의 다른 글
진동 데이터 분석 (0) | 2023.09.13 |
---|---|
데이터 품질 지수 (0) | 2023.07.26 |
프레스 AI 데이터셋 분석 실습 가이드북 (0) | 2023.07.21 |
데이터 분석 시각화 교재 (0) | 2023.07.07 |
제조업 데이터 분석 파생 변수 (0) | 2023.06.28 |
댓글