<Ch11 개요>
- Outlier(이상치)를 알아보고, Outlier을 detection(감지)하는 방법론을 배워보자.
1. Basic concept
2. Statiscal approaches
3. Proximity-based approaches
4. Reconstruction-based approaches
5. Clustering and Classification based approaches
6. Mining contextual and collective outliers
7. Outlier detection in high-dimensional data
<동기>
- 대부분의 transaction들은 normal 하지만, 몇몇은 매우 anormal(일반적이지 않다). 함.
- Outlier: data의 분포(expectation)을 따르지 않는 소수의 data이다.
- Outlier는 소수여도 부정적인 영향을 미칠 수 있다.
- Outlier detection: Outliers, anomalies 그리고 예상과 매우 다른 형태를 보이는 data objects를 찾는 과정
- e.g.) 카드 부정 사용, 부정 주식 거래 등
<Outlier Detection vs Clustering>
- 2개는 비슷한 방법론을 사용하지만, 목표물은 다르다.
Clustering | Outlier detection |
- data set에서 majority patterns을 찾고, 그에 따라 data를 구성한다. - Clustering analysis는 unsupervised한 방법 사용 |
- majority patterns에서 크게 벗어난 예외 case들을 포착하기 위해 노력함. - detection과정에서 supervision을 사용한다. (소수의 minor pattern이라 정답이 있음) |
Basic concept
<Outlier란?>
- Outlier: 마치 다른 mechanism을 통해 생성된 것 마냥, 나머지 object로부터 크게 벗어난 data objects
<Outliers vs Noise>
Outlier | Noise |
- 나머지 data와 동일한 메커니즘에 의해 생성되지 않았다고 추측. - 탐지된 outliers가 다른 메커니즘에 의해 생성되었음을 확실하게 하는 것이 중요. e.g.) 나머지 data에 대해 다양한 가정을 세운 다음, 이상치가 가정을 크게 위반함을 입증하는 방식으로 outlier 설명 - 의도가 있는 이상치 |
- 측정된 variable에서 나타나는 무작위 error나 분산. - data analysis와 outlier detection의 관심 대상에서 제외된다. - 의도가 없는 이상치 |
<Outlier Detection과 Novelty detection>
- e.g.) 소셜 미디어 웹사이트를 모니터링 할 때, 새로운 content가 들어오면, novelty detection은 새로운 topics와 trends를 파악한다.
- Novel topics: 초기에는 outlier처럼 나타난다. - Outlier Detection: 계속 minor한 것만 탐지
- Novelty detection: 처음에는 minor한 것(outlier) 탐지하다가 → 후에 major한 것(normal) 탐지
- 유사성: Outlier과 Novelty detection은 모델링과 탐지 방법에서 유사성을 가짐
- 차이점: Novelty detection에서, 한 new topic이 주어졌을 때 이것이 후에 outlier로 처리되지 않도록 하고, 정상적인 model에 들어가도록 한다.
<Outliser의 3가지 종류>
- Global outliers / Contextual (or conditional) outliers / Collective outliers
<Global Outiers>
- Global outliers: 나머지 data set에서 크게 벗어난 것 (가장 단순한 개념)
- 대부분 outlier detection 방법론에서는 global outliers를 찾는 것을 목표로 함.
<Global outliers 탐지하기(Detecting)>
- 문제에서 응용분야에 맞는 편차(벗어난 정도)의 적절한 척도를 찾는 것이 중요함.
- Global outliers를 detectiong 하는 것은 많은 응용 분야에서 중요함.
e.g) 컴퓨터 네트워크에서의 침입 탐지
<Contextual Outliers>
- Contextual Outliers: object의 특정 context(문맥)에서 크게 벗어나 있는 것.
- e.g) "It is 86 degrees today" : Contextual Outlier가 맞다. 오늘은 겨울인데, 86도인 것은 맞지 않음. context에 크게 벗어나있음.
- Contextual outlier detection 할 때, context는 문제 정의에서 명시되어야 한다.
- data object의 attributes가 2개의 group으로 나뉨.
- Contextual Attributes(문맥적 속성), Behavioral Attributes(행동적 속성)
Contextual Attributes: | Behavioral Attributes |
- 해당 object의 context(문맥, 상황)을 정의함. - 조건에 해당되는 것인지, 조건 제시 e.g.) 온도 데이터를 다룬다고 하면, 문맥적 속성은 날짜와 위치에 해당(온도가 언제, 어디서 측정되었는지 outlier를 판단할 문맥을 결정) |
- data object의 구체적인 특성을 나타냄, 이를 통해 outlier을 평가. - 조건에 따른 행동 e.g.) 온도 데이터에서 온도, 습도, 기압에 해당(이 속성에서 outlier 골라내기) |
- data object가 context outlier인지의 여부는 contextual, behavioral attributes 모두에 의존함.
<Contextiual Outliers vs Global and Local Outliers>
- Local outliers: data object의 density가 특정 지역 내에서 주변의 density와 다를 때 발생.
- Countextual outliers: local outliers의 일반화된 형태 (local outlier의 개념을 확장한 것)
- contextual outliers는 데이터의 특정 문맥(context) 내에서 outlier의 여부를 판단하기 때문이다. - 따로 Contextual attribute가 없는 Contextual outlier detection = Global outlier detection
- Global outlier는 데이터 전체를 context로 간주 - Contextual outlier anlaysis는 다양한 context에서 사용자가 상황에 맞게 outlier을 탐지할 수 있는 유연성 제공 (다양한 context에서 outlier 탐지할 수 있음)
- e.g) 날씨 데이터에서 사용자가 특정 날짜, 위치 등을 context로 설정해 outlier 탐지 - Context attributes가 얼마나 잘 정의 되었는가 Contextual outlier의 quality에 중요한 역할을 함.
<Collective Outliers>
- Collective Outliers: data object의 부분 집합이 전체 data set와 비교해 큰 편차를 보이는 것
- 1개의 data object만 보면 outlier가 아닌데, data object가 함께 모여 전체 데이터와 비교하면 비정상적인 패턴을 형성함 - e.g.) 학생 1명이 아픈 것은 outlier로 간주되지 않을 수 있는데, 하루에 10%의 학생이 아프면 아픈 학생들의 집합은 colliective outlier가 된다.
2명 간의 단일 주식 거래는 정상으로 간주됨. 그러나 같은 주식이 짧은 시간 동안 2명 or 소수의 당사자 간 대량으로 거래된다면 collective outlier가 됨
<다양한 outlier 타입의 비교>
- data set는 여러 종류의 outlier를 가질 수 있다.
- 하나의 data object가 여러 종류의 outlier에 속할 수 있다.
- Global outlier detection: 가장 간단함.
- Context outlier detection: contextual attributes와 contexts를 결정하는 데에 배경 정보가 필요함.
- Collective outlier detection: objects 사이 관계를 모델링 하기 위한 배경 정보가 필요, 이를 통해 outlier group 찾아냄.
<Outlier Detection의 도전 과제(어려움)>
- normal object(정상 객체)와 outliers(이상치)를 효과적으로 모델링하기
- data의 정상성(normality)과 이상치(abnormality) 경계가 명확하지 않은 경우가 많음. - 응용 분야에 특화된 outlier detection
- 응용 분야에 따라 objects 간 관계가 달라짐. - outlier detection에서의 Noise 처리 (중요) ★
- Noise와 Outlier의 구분이 어려움
- Noise는 데이터 품질을 떨어뜨리고, outlier detection에 혼란을 줌 - 해석 가능성(Interpretability)
- 사용자는 단순히 outlier detection 뿐만 아니라, detected object가 왜 outlier인지 이해하고 싶어함