데알못정을

[ML]산학협력 프로젝트 : 이상치 탐지(Local outlier factor) 본문

Research

[ML]산학협력 프로젝트 : 이상치 탐지(Local outlier factor)

쩡을이 2022. 9. 30. 16:52
728x90
이번 포스팅에서는 산학협력 연구로 공정 장비 센서데이터의 이상치를 미리 탐지하고 그 시점을 산출하는 목적으로 진행했던 프로젝트에서, 내가 맡았던 머신러닝 이상치 탐지 알고리즘 LOF를 이용해 분석했었는데, 이상치라는 것과 이상치를 다룰 수 있는 머신러닝 알고리즘에 대해 공부한 내용을 정리해보려고 한다.
 
[이상치(Outlier)]
 
이상치(Outlier)는 데이터들의 집합이 있을 때, 일정 패턴을 가지는 것과 대비해 좀 많이 떨어져 있는 값을 의미한다.
공정 이상치는 공정 수율에 영향을 미칠 수 있는 요인이기도 하다. 따라서 이상치가 발견됬다면 그 시점과 원인을 밝혀 공정을 안정상태로 수정해야 한다.
 
 
[Local Outlier Factor(LOF)]
LOF는 Unsupervised Anomaly Detection 중 하나로 현재 가지고 있는 데이터 중 이상치를 탐지할 때 주로 사용되는 모델이다. 개체의 LOF 점수는 가장 가까운 K 개 점들의 국소적 밀도(local density)의 평균과 자기 자신의 국소적 밀도의 비율로 정의한다. 정상값은 조밀한 영역에 위치해 국소적 밀도가 그 이웃들과 비슷한 반면, 이상값은 이웃에 비해 상대적으로 국소적 밀도가 매우 낮기 때문에 큰 LOF 점수를 얻는다.
따라서 anomaly score 는 p1보다 p2가 더 높아 p2의 점이 이상치일 가능성이 더 크다.
 
 
[Implementation]
파이캐럿 패키지라는 머신러닝을 자동으로 수행해주는 tool이 있어서 이를 이용했다.

 

pycaret 구현 코드
setup 창
(158 row에 대한 상세코드)
전체 데이터셋에서 158 row만 불러와 LOF 수행 후, seaborn을 사용하여 plot을 찍어보았다.
<LOF plot>

이런 방식으로 나머지 5개의 row에 대해서도 분석을 진행했다.
 
 
LOF
평균
00:32.067
표준편차
0.00066913
 
그 결과 엔지니어와 모델이 예측한 시간 차이가 LOF분석을 수행 했을 때 6개 row에 대해서 평균 32초 정도 빠르게 탐지를 했다.
728x90
Comments