일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 반복문
- map
- 태블로
- 다중공선성
- 리스트
- 내일배움일지
- Til
- Max
- 선형회귀
- ★
- Leetcode
- 가설검정
- Set
- f-string
- 내배캠_학습기록
- 이중for문
- SQLD
- Join
- 데이터전처리
- AB테스트
- SQL
- DATE_SUB
- python
- 시각화
- 한줄for문
- 데이터시각화
- 통계학
- 내일배움캠프
- 프로그래머스
- 아티클스터디
- Today
- Total
노력에는 지름길이 없으니까요
MATLAB 딥러닝 기반 이상 탐지 기법 - ① 이상탐지와 데이터 형식에 따른 접근방법의 차이 본문
https://www.youtube.com/watch?v=-h9yK4FUykc
이상탐지란?
대다수의 데이터와 다른 거동을 갖는 unusual한 관찰을 탐지, 식별하는 것.
정상 샘플들과 비정상 샘플들을 구별해내는 것.
Anomaly Detection
Outlier Detection
Novelty Detection
Fault Detection
등 다양한 방식으로 불림
라벨링된 데이터 / 언라벨드 데이터
데이터의 종류에 따라 다른 접근방식을 가지고 있다.
지도학습을 활용함 -> 라벨링 값으로 판단
비지도학습 -> 정상 상태를 알 수 없고 학습을 통해 일부가 anomaly일 거라고 가정을 하고 접근
보통 두 데이터 형식이 섞여있는 semi-supervised 데이터도 존재함
라벨링된 데이터
정상 데이터와 비정상 데이터가 둘 다 데이터셋에 존재하기 때문에 두 군집에 대한 분류기만 모델링하면 됨
두 군집의 비율이 어느 정도 밸런스가 갖춰진 상태라면 좋은 모델을 만들 수 있음
가장 큰 문제는 비정상 데이터가 유의미한 모델을 만들 수 있을 정도로 모이려면 많은 자본과 시간이 필요함
수백만 정상, 한두장 비정상 -> 많은 비정상 데이터를 모으기까지 시간이 걸릴 것임
극히 일부만 abnormal 5% 미만이 가장 많음
-> 비정상적으로 치우친 데이터의 경우, 예 95%가 노멀이기 때문에 모델의 정확도가 기하급수적으로 높아짐
ex) 대부분 정답이 1인 데이터이기 때문에, 그냥 1이라고 답변을 놓는다면 그걸로 정확도가 높은 모델을 작성하게 되는 것
참고로, 이번에 팀 프로젝트가 무산된 건 유의미한 모델 작성에 실패한 것이 가장 큰 이유였다.
치우친 데이터를 다루는 방법?
1. 언더샘플링(Undersampling) 기법
이러한 메이저리티한 데이터의 일부를 추출하는 언더샘플링(Undersampling) 기법을 사용할 수 있다.
비율을 맞춰서 앱노멀한 데이터를 최대한 활용.
이 때, 언더샘플링을 통해 압축되는 데이터는 기존 데이터에 대한 대표성을 띠고 있어야 하기 때문에, 쉬운 기법은 아니다.
기존 정상 데이터에 대한 큰 손실이 발생!
2. 오버샘플링(Oversampling) 기법
복제 등을 사용하여 부족한 쪽의 데이터셋을 반대쪽 데이터셋의 양과 비슷하게 맞추는 기법.
오버피팅 가능성이 크다!
한정된 데이터를 어떻게 사용해야 하는가?
-> 이 때 필요한 것이 semi-supervised anomaly detection
'Python' 카테고리의 다른 글
LabelEncoder, OneHotEncoder의 차이 (0) | 2024.08.20 |
---|---|
Visual Studio Code 단축키 정리 (0) | 2024.08.08 |
Python 이중 for문 작성법 (0) | 2024.07.30 |
(미완) 코딩테스트 강의 요약 (2) | 2024.07.22 |
(미완) 데이터 분석가 취업 특강 요약 (2) | 2024.07.22 |