-
[Python] Outlier(이상치) 찾기 , 마할라노비스 거리 (이론)Programming/Python 2022. 12. 28. 12:23
이상치에 대해 정리된 문서
이상치 탐색을 위한 통계적 방법과 활용 방안.pdf (hira.or.kr)
내가 사용하는 알고리즘에서 outlier를 계산하는 부분의 문제를 발견하였다.
원본 데이터 위의 그림에서 맨 밑의 파란 점(outlier)을 제거하면 주황색 선이 더 효율적인 모양으로 바뀔 것이다.
그래서 나는 처음에 z-score라는 방법으로 outlier를 계산했었다.
위 그림처럼 z-score값을 그래프로 나타낸 후,
내가 지정한 threshold값을 넘는 것을 outlier로 판단하였다.
그런데!
여기서 문제가 발생했다. 아래 그림을 보자.
이러한 케이스에서 가로축 60에 가까운 데이터들이 전부 outlier로 판단되는 상황이 발생하였다.
물론 이 상황은 내가 원하던 게 아니다.
그래프의 경향에서 크게 벗어난 outlier를 잡고싶었는데 위처럼 계산해버리면 그래프 자체에 손실을 주게 된다.
문제 원인을 먼저 파악해보았다.
3 methods to deal with outliers - KDnuggets
3 methods to deal with outliers - KDnuggets
In both statistics and machine learning, outlier detection is important for building an accurate model to get good results. Here three methods are discussed to detect outliers or anomalous data instances.
www.kdnuggets.com
내가 outlier를 계산한 방식이 univariate한 방법이었기 때문에 많은 값이 outlier로 잘못 계산된 상황이었다.
이를 해결하기 위해 multivariate method를 찾아보던 중 Mahalanobis distance를 알게되었다.
Norm의 개념을 먼저 이해해보자.
많이들 알고있는 유클리디언 거리는 두 점간의 직선 거리를 의미한다.
마할라노비스 거리는 확률분포상의 거리라고 한다.
Norm의 종류( 마할라노비스(Mahalanobis Distance), 유클리디언(Euclidean Distance) ) : 네이버 블로그 (naver.com)
Norm의 종류( 마할라노비스(Mahalanobis Distance), 유클리디언(Euclidean Distance) )
Norm이란 선형대수학에서 벡터공간의 원소들에 일종의 '길이'를 부여하는 함수이다 ---위키백과 즉, '길이...
blog.naver.com
[Distance] 유클리드 거리(Euclid.. : 네이버블로그 (naver.com)
[Distance] 유클리드 거리(Euclidean Distance), 마할라노비스 거리(Mahalanobis Distance)
출처 : http://uiandwe.tistory.com/96#comment3748844 출처: http://wiki.commres.org/Mahalanobis...
blog.naver.com
해당 블로그 글을 참고하니 이해가 쉬웠다.
일단 내가 찾는 방법이 마할라노비스가 맞는지 테스트를 하기로 했다.
먼저 파이썬으로 구현하려고 한다.
실제 코드 구현 과정은 다음글에서 !
참고
Multivariate Outlier Detection (linkedin.com)
Multivariate Outlier Detection
Knowing your data to bits, is biggest strength for any successful data Science project. Exploratory Data Analysis(EDA) is the first and foremost step to start with .
www.linkedin.com
다크 프로그래머 :: 평균, 표준편차, 분산, 그리고 Mahalanobis 거리 (tistory.com)
평균, 표준편차, 분산, 그리고 Mahalanobis 거리
얼마전 동생이 전화로 표준편차에 대해서 물어봤다. "형, 표준편차가 3이라는게 무슨 뜻이야?" "먼 소리야, 무슨 표준편차? 단위가 먼데?" "아니, 일일 교통량을 측정하는데, 예를 들어서 평균이 20
darkpgmr.tistory.com
추가
데이터의 이상치, 객관적으로 솎아내려면 | 경영일반 | DBR (donga.com)
[DBR] 데이터의 이상치, 객관적으로 솎아내려면
Article at a Glance계량분석에서 ‘이상치(Outlier)’는 통계 분석 결과에 영향을 미쳐 연구의 목적을 훼손시킬 수 있기 때문에 걸러낼 필요가 있다. 이때 분석의 대상이 되는 변수가 단 하나일 경우
dbr.donga.com
구글링을 하다가 좋은 레터 기사를 발견했다.
이상치에 대한 정의를 잘 정리해준 글이다.
무엇을 "이상하다"고 볼 것이냐에 따라 계산 방식도 알고리즘도 달라질 것이다.
이 글에서 마할라노비스 거리는 비선형적 데이터에서는 사용하면 안된다고 설명하고 있다.
참고...
'Programming > Python' 카테고리의 다른 글
[Python] File / Exception / Log (0) 2023.08.29 [Python] String, Function, Scoping rule, 함수 작성 가이드라인 (0) 2023.08.15 [Python] outlier 찾기, 마할라노비스 거리 계산 (실전) (0) 2022.12.28 [Python] print .format 자릿수 맞추기, 오른정렬, 소수점 출력 (0) 2022.09.02 [Python] curve_fit : data로 그래프 그리고 fitting하기 (0) 2022.07.19