본문 바로가기
Daily Review

비지도 학습 기법을 적용한 사기 탐지 (Fraud Detection)

by data-analyst-luke 2022. 9. 5.
반응형

기초 이론

이상값 감지라고도 하는 이상 감지는 데이터 세트에서 발견된 이상 유형을 확인하고 해당 발생에 대한 세부 정보를 확인하는 데 사용되는 데이터 마이닝 프로세스입니다. 간단히 말해서, 이상 탐지는 일반적인 경향을 따르지 않는 비정상적인 패턴/행동의 식별을 처리합니다.

이상치는 주어진 데이터 세트의 다른 데이터 요소와 크게 다른 데이터 요소일 뿐입니다.

 

이상값은 환경에 따라 포인트 이상값 , 컨텍스트 이상값 또는 집합 적 이상값 과 같이 다양한 형태로 나타날 수 있습니다 . 포인트 이상치는 나머지 분포에서 멀리 떨어져 있는 단일 데이터 포인트입니다. 컨텍스트 이상값은 텍스트 분석을 구현할 때 구두점 기호 또는 음성 인식을 수행할 때 배경 노이즈 신호와 같은 데이터의 노이즈일 수 있습니다. 집합적 이상치는 새로운 현상의 발견을 나타낼 수 있는 신호와 같은 데이터의 새로운 부분 집합일 수 있습니다.

 

 

이상 탐지는 데이터에서 이상값 , 즉 대부분의 다른 데이터 포인트와 상당히 다른 포인트를 찾는 프로세스입니다 .

이상치는 일 변량 및 다변량 의 두 가지 유형일 수 있습니다 . 단일 특성 공간에서 값의 분포를 볼 때 일변량 이상값을 찾을 수 있습니다. 다변수 이상값은 n차원 공간(n-특성)에서 찾을 수 있습니다. n차원 공간의 분포를 보는 것은 인간의 두뇌에 매우 어려울 수 있으므로 우리를 위해 모델을 훈련시켜야 합니다.

 

대규모의 실제 데이터 세트에는 데이터만 보고는 감지하기 어려운 매우 복잡한 패턴이 있을 수 있습니다. 그렇기 때문에 이상 탐지 연구는 기계 학습의 매우 중요한 응용 프로그램입니다.

이상 탐지는 3가지 원칙을 기반으로 합니다.

  • 실제 데이터의 대부분은 정상에서 크게 벗어나고,
  • 데이터 세트에는 여러 개의 이상이 있을 수 있으므로 여러 개의 이상을 감지할 수 있는 알고리즘이 필요합니다.
  • 데이터 포인트는 많은 기능에 의존할 수 있으므로 차원의 과정을 극복할 수 있는 알고리즘이 필요합니다.

 

사용 사례

이상 탐지는 산업 전반에 걸쳐 광범위하게 적용됩니다. 이 섹션에서는 가장 인기 있는 사용 사례를 소개합니다. 그러나 이 목록이 완전하지 않다는 점을 염두에 두어야 합니다.

 

은행 . 이상 탐지는 비정상적으로 높은 예금을 찾는 데 도움이 될 수 있습니다. 모든 계정 소유자는 일반적으로 자신의 계정에 돈을 입금하는 특정 패턴을 가지고 있습니다. 이 패턴에 이상치가 있는 경우 은행은 이를 감지하고 분석할 수 있어야 합니다. 예를 들어 자금 세탁을 위해.

재정 . 사기 구매 패턴을 찾습니다. 모든 사람은 일반적으로 특정 구매 패턴을 가지고 있습니다. 이 패턴에 이상치가 있는 경우 은행은 잠재적 사기를 분석하기 위해 이를 감지해야 합니다.

제조 . 비용 관리를 위해 비정상적인 기계 동작을 모니터링할 수 있습니다. 많은 회사에서 소유한 기계의 입력 및 출력 매개변수를 지속적으로 모니터링합니다. 고장이 나기 전에 기계가 이러한 입력 또는 출력 매개변수 측면에서 비정상적인 동작을 보인다는 것은 잘 알려진 사실입니다. 예방 유지 보수의 관점에서 기계의 이상 동작을 지속적으로 모니터링해야 합니다.

네트워킹 . 네트워크 침입 탐지. 외부 세계에 노출된 모든 네트워크는 이러한 위협에 직면해 있습니다. 네트워크의 비정상적인 활동에 대한 모니터링을 사용하여 침입을 조기에 감지할 수 있습니다.

건강 관리 . 사기성 보험금 청구 및 지불을 감지합니다.

 

기법

Isolation Forest

의사결정 트리 알고리즘 을 기반으로 데이터에서 이상값을 분리하여 이상을 식별하는 비지도 학습 알고리즘입니다 . 주어진 기능 세트에서 기능을 무작위로 선택한 다음 해당 기능의 최대값과 최소값 사이의 분할 값을 무작위로 선택하여 수행합니다. 기능의 이러한 무작위 분할은 비정상적인 데이터 포인트에 대한 트리에서 더 짧은 경로를 생성하여 나머지 데이터와 구별합니다.

 

일반적으로 첫 번째 단계는 "정상"에 대한 프로필을 구성한 다음 정상으로 간주될 수 없는 모든 것을 변칙으로 보고하는 것입니다. 그러나 Isolation Forest 알고리즘은 이 원칙에 따라 작동하지 않습니다. 먼저 "정상" 동작을 정의하지 않으며 점 기반 거리를 계산하지 않습니다.

 

이름에서 예상할 수 있듯이 Isolation Forest는 대신 데이터 세트에서 이상 지점을 명시적으로 격리하여 이상을 격리하는 방식으로 작동합니다.

 

Isolation Forest 알고리즘은 변칙 현상이 거의 식별되지 않는 다양한 관찰을 의미한다는 원칙을 기반으로 합니다 . Isolation Forest는 지정된 데이터 포인트에 대해 Isolation Tree의 앙상블을 사용하여 이상을 격리합니다.

 

 

Isolation Forest는 기능을 무작위로 선택한 다음 해당 기능에 대한 분할 값을 무작위로 선택하여 데이터 세트에 파티션을 재귀적으로 생성합니다. 아마도 이상 현상은 데이터 세트의 "정상" 지점에 비해 격리할 임의의 파티션이 더 적기 때문에 이상 현상은 트리에서 경로 길이가 더 작은 지점이 될 것입니다. .

 

Isolation Forest를 사용하면 비정상 데이터 포인트가 대부분 일반 데이터 포인트보다 훨씬 짧은 트리 경로를 가지므로 격리 포리스트의 트리가 큰 데이터 포인트를 가질 필요가 없기 때문에 다른 알고리즘에 비해 이상을 더 빨리 감지할 수 있을 뿐만 아니라 더 적은 메모리 를 필요로 합니다. 깊이.

 

One-class SVM

서포트 벡터 머신 은 이상 징후를 감지하는 또 다른 효과적인 기술입니다 . SVM은 일반적으로 지도 학습과 연결되지만 비지도 문제(훈련 데이터에 레이블이 지정되지 않음)로 이상을 식별하는 데 사용할 수 있는 One-Class SVM 과 같은 확장이 있습니다.

 

방금 제시했듯이 One-Class Support Vector Machine은 정상 데이터 에 대해서만 훈련되는 비지도 학습 알고리즘 이며 이러한 점의 경계를 학습하므로 경계 외부에 있는 모든 점을 다음과 같이 분류할 수 있습니다. 이상치 .

 

Support Vector Machine에서 데이터 포인트는 다른 범주의 포인트가 평면으로 구분되는 방식으로 공간의 포인트로 표현됩니다. 이것을 서로 다른 클래스의 데이터를 구분하는 데이터 포인트를 통과하는 선처럼 생각할 수 있습니다.

 

새로운 데이터 포인트는 동일한 공간에 매핑되며 평면에 대한 상대적 위치는 각 포인트가 속하는 범주를 예측하는 데 사용되며 평면을 결정 경계라고 합니다. 결정 경계가 비선형이어야 하는 경우(즉, 클래스를 직선으로 분리할 수 없는 경우), SVM은 비선형 함수(커널)를 통해 공간을 투영하여 데이터를 공간으로 들어올릴 수도 있습니다. 선형 결정 경계  클래스를 분리하는 더 높은 차원을 사용합니다.

 

 

 

LSTM AE가 있는 신경망

이러한 유형의 네트워크는 다변수 시계열 데이터에서 복잡한 관계를 찾는 데 탁월합니다. 시계열에서 이상을 감지하고 싶을 때 사용하는 방법입니다.

 

LSTM(Long Short-Term Memory) 네트워크는 보다 일반적인 RNN(Recurrent Neural Networks)의 하위 유형입니다. 순환 신경망의 핵심 속성은 나중에 사용하기 위해 정보 또는 셀 상태를 유지하는 능력 입니다. 따라서 시간이 지남에 따라 진화하는 시간 데이터 분석에 특히 적합합니다. LSTM 네트워크는 음성 인식, 텍스트 번역과 같은 작업에 사용되며 여기에서는 이상 감지를 위한 순차적 데이터 스트림 분석에 사용됩니다 .

 

한 가지 방법은 LSTM을 사용하여 예측 모델 을 구축하는 것입니다. 즉, 현재 및 과거 값이 주어지면 시계열의 다음 몇 단계를 예측합니다. 그런 다음 예측 오류가 이상 징후를 나타냅니다. 또 다른 방법은 LSTM을 정상 및 비정상이라는 두 가지 클래스가 있는 분류기 로 직접 사용하는 것 입니다.

 

예측 모델 기반 접근 방식은 비정상 인스턴스를 쉽게 사용할 수 없을 때 더 나은 반면 분류기 기반 접근 방식은 정상 및 비정상 인스턴스의 레이블이 지정된 인스턴스가 충분할 때 더 적합합니다.

 

LSTM AutoEncoder 및 인코더-디코더 프레임워크 가 재구성 모델 로 사용된 또 다른 방법이 있습니다 . 여기서 일부 형태의 재구성 오류가 이상 측정값으로 사용됩니다. 이러한 모델의 이면에 있는 아이디어에 대해 오토인코더는 정상 시계열을 재구성하도록 훈련되었으며 이러한 모델은 훈련 중에 본 적이 없는 비정상적인 시계열을 재구성하는 데 좋지 않다고 가정합니다. 간단히 말해서 시스템은 몇 시간 또는 며칠 동안 이전 값을 확인하고 다음 1분 동안의 동작을 예측합니다. 1분 후의 실제 값이 표준편차 이내라면 문제 없습니다. 그 이상이면 비정상입니다.

 

 

이러한 모델은 심전도(ECG), 엔진, 전력 수요, 네트워크(고장/침입)의 이상 감지 및 음악 등의 신규 감지에 사용되었습니다.

 

Local Outlier Factor

LOF는 특정 데이터 포인트가 이상치(또는 비정상)일 가능성을 나타내는 점수입니다. 그것은 이웃과 관련하여 주어진 데이터 포인트의 로컬 밀도 편차를 계산하는 비정상적인 포인트를 감지합니다.

 

고려해야 할 두 가지 중요한 매개변수가 있습니다.

  1. 이웃 수
  2. 오염

 

LOF는 { 이웃 수}- 번째 가장 가까운 점의 거리를 계산한 다음(예를 들어, 이웃 수가 3인 경우 현재 점과 세 번째로 가까운 점 사이의 거리를 계산함) 각 점에 대해 밀도를 계산합니다. 해당 점에 대해 계산된 거리 내에 있는 점의 수입니다.

 

 

그런 다음 각 점의 밀도는 k 이웃의 밀도와 비교됩니다. 데이터 포인트 a 를 고려할 때 , LOF는 기본적으로 a 의 밀도 에 대한 이웃의 밀도의 평균 비율입니다 . 비율이 1 보다 크면 점 a 의 밀도 는 평균적으로 이웃의 밀도보다 작으므로 점 a 에서 다음 점 또는 점 클러스터에 도달하기 위해 a 에서보다 더 긴 거리를 이동해야 합니다. 의 이웃을 다음 이웃으로. 점 의 이웃은 고려하지 않을 수 있음을 명심하십시오 .그들이 훨씬 더 가까운 도달 범위에 지점이 있기 때문에 이웃.

오염 매개변수는 이상으로 예측할 가장 고립된 지점(LOF 점수가 가장 높은 지점)의 비율을 결정합니다.

 

scikit-learn Python 라이브러리에는 이 알고리즘의 자체 구현 이 있으며, 이 알고리즘에는 novelty 라는 매개변수에 의해 결정되는 두 가지 다른 방법이 있습니다. 이러한 방법은 다음과 같습니다.

  • 참신 감지 : 모델에 명확한 데이터(이상치 없음)가 적합하고 다른 데이터 집합과 함께 예측 기능이 호출될 때 모델은 각 점이 이상치인지 여부를 예측할 수 있습니다.
  • 이상치 탐지 : 모델이 적합하고 예측이 동일한 데이터 세트에 대해 실행되어 각 샘플이 이상치인지 확인합니다. 그러나 모델을 맞추는 데 사용된 데이터 세트 이외의 데이터 세트로는 예측을 실행할 수 없습니다.

 

Gaussian Mixture

가우시안 혼합 모델 은 데이터 세트의 모든 점에 대한 확률 분포를 알 수 없는 매개변수가 있는 가우시안(또는 정규) 분포의 가중치 합으로 얻을 수 있다고 가정하는 확률 모델입니다.

 

이 모델은 데이터 포인트가 속한 하위 모집단(따라서 비지도 학습 기술임) 없이 전체 모집단 내에서 다른 하위 모집단을 찾으려고 시도합니다. 목표는 데이터 세트의 각 정규 분포 구성 요소에 대한 모수를 추정하는 것입니다.

 

가우스 혼합 모델을 구현하는 다양한 기술이 있으며, 그 중 가장 일반적인 것은 EM(기대값 최대화) 입니다. 우리는 이 기술에 집중할 것입니다.

 

EM 방법은 성분 k 의 수를 알 때 가장 일반적으로 사용됩니다 . 기대 최대화는 어떤 포인트가 어떤 가우시안 구성요소에서 유래했는지 결정하기 위한 반복적인 프로세스를 포함하는 통계적 알고리즘입니다. 이 프로세스는 다음 두 단계로 구성됩니다.

  • 기대치 : 이 단계는 매개변수(구성 요소 가중치, 평균 및 표준 편차)가 주어진 각 데이터 포인트에 대한 구성 요소 할당의 기대치를 계산하는 것으로 구성됩니다.
  • 최대화 : 두 번째 단계는 이전 단계에서 계산된 기대치를 최대화하고 모델의 매개변수를 업데이트하는 것을 목표로 합니다.

 

알고리즘은 수렴할 때까지 이 두 단계를 반복하여 최대 가능성 추정치를 산출합니다. 아래 애니메이션은 수렴할 때까지 여러 번 반복하여 매개변수를 조정하는 2성분 이변량 예를 보여줍니다.

 

 

이 알고리즘의 확장인 변형 추론 은 이전 분포의 정보를 통합하여 정규화를 추가합니다.

 

기타 방법

  • K-Nearest Neighbors를 사용한 밀도 기반 이상 감지: 밀집된 이웃 주변에서 정상적인 데이터 포인트가 발생하고 이상은 멀리 있다고 가정합니다. 가장 가까운 데이터 포인트 세트는 데이터 유형(범주형 또는 숫자형)에 따라 유클리드 거리 또는 유사한 측정이 될 수 있는 점수를 사용하여 평가됩니다. K-최근접 이웃 은 유클리드, 맨해튼, 민코프스키 또는 해밍 거리와 같은 거리 메트릭의 유사성을 기반으로 데이터를 분류하는 데 사용되는 간단한 비모수적 지연 학습 기술입니다.
  • K-Means를 사용한 클러스터링 기반 이상 감지 : 유사한 데이터 포인트가 로컬 중심으로부터의 거리에 따라 결정되는 유사한 그룹 또는 클러스터에 속하는 경향이 있다고 가정합니다. K-means 는 널리 사용되는 클러스터링 알고리즘입니다. k개의 유사한 데이터 포인트 클러스터를 생성 합니다. 이러한 그룹에 속하지 않는 데이터 인스턴스는 잠재적으로 비정상으로 표시될 수 있습니다.

 

신용 카드 사기 탐지 — 실습

이 시나리오에는 신용 카드 사기 탐지 데이터 세트에서 결과를 평가하는 네 가지 기술이 있습니다. 레이블은 모델을 맞추는 것이 아니라 결과를 평가하는 데만 사용되지만 사용된 데이터 세트에는 레이블이 지정됩니다.

이 시나리오에는 다음 네 가지 기술이 적용되었습니다.

  • Isolation Forest
  • AutoEncoder
  • LOF
  • GM

Python 구현은 GitHub 리포지토리 의 Jupyter 노트북 에서 사용할 수 있습니다.

 

데이터세트

Kaggle에서 사용할 수 있는 선택된 데이터 세트 에는 신용 카드 거래에 해당하는 원시 데이터가 포함되어 있습니다. 여기에는 11개의 기능이 있는 3075개의 항목과 각 거래가 사기인지 여부를 나타내는 추가 열이 있습니다. 모델 피팅의 경우 이 마지막 열은 삭제되었으며 결과를 검증하는 데만 사용되었습니다. 출품작의 약 15%가 사기로 분류됩니다.

 

작업할 기본 버전을 갖도록 데이터 세트의 초기 정리가 수행되었습니다. 이 단계에서 데이터가 부족하거나 유용한 정보를 제공하지 않는 열은 삭제되고 모든 문자열 값을 숫자로 바꾸는 것과 같은 약간의 조정이 적용되었습니다. 결과 데이터 세트에는 원본 11개 중 9개의 기능이 있었습니다. 이 최소한으로 사전 처리된 데이터 세트를 사용하여 가장 성능이 좋은 것을 선택하기 위해 각 기술을 실행했습니다.

 

나중에 데이터 세트 내에서 더 많은 사전 처리가 수행되어 최상의 기술 성능에 긍정적인 영향을 미쳤습니다. 특성의 수는 6개로 줄었고, 데이터 분석 후 각 특성의 분포를 보고 이들 간의 상관관계를 찾아 추가 변환이 적용되었습니다.

  • 신용 카드 지불 거절과 관련된 3개의 열이 병합되었습니다. 이러한 열에는 관련된 다양한 측정값이 포함되어 있으므로 프로세스는 비용 회수 여부를 나타내는 단일 이진 기능으로 단순화했습니다.
  • 원래 데이터 세트에는 거래가 외국과의 거래인지 여부를 나타내는 열과 해당 국가가 고위험 국가인지 여부를 결정하는 다른 열이 있습니다. 이 두 열을 하나의 범주형 열로 조합하여 세 가지 가능한 값을 사용했습니다. 국내 거래(0), 저위험 국가와의 해외 거래(1), 고위험 국가와의 해외 거래(2).
  • 거래 금액과 관련된 열은 범위를 좁히기 위해 정규화되었습니다.
  • 피처 간의 상관관계 값을 살펴보면 사기 사건과 더 밀접한 피처의 가중치가 높아졌다.

 

결과

각 기술의 알고리즘에는 이상값으로 간주되는 경우의 양에 영향을 미치는 민감도 매개변수가 있습니다. 실제 시나리오에서 알고리즘에 의해 이상치(사기)로 표시된 사례는 해당 문제 전문가가 감사하여 실제 사기인지 여부에 대한 최종 결정을 내립니다.

 

알고리즘의 정확성을 '신뢰'할 수 있다면 목표는 가능한 한 적은 거래를 감사하여 모든 사기 사건을 포착하는 것입니다. 이 데이터 세트에서 트랜잭션의 약 15%가 사기이므로 "이상적인 알고리즘"은 데이터 세트 내 사기의 100%가 될 하위 집합만 추가 분석을 위해 표시합니다.

 

그런 관점에서 알고리즘 성능을 비교하고 감사자가 검증할 가장 작고 정확한 하위 집합을 제출하는 기능으로 각 알고리즘의 효율성을 평가하면 Autoencoder 또는 Gaussian Mixture와 같은 일부 알고리즘이 전혀 잘 수행되지 않는 것을 관찰할 수 있습니다. 사실, 마지막 것은 정확도가 떨어지기 시작하면서 유효성 검사를 위한 하위 집합이 점점 더 커집니다.

아래 플롯 내의 곡선은 각 알고리즘에 대해 감사해야 하는 사례 비율의 함수로 표시된 사기 비율을 보여줍니다.

 

 

iForest 및 One-class SVM - 실습

이 게시물을 통해 언급된 다른 기술을 사용하여 보다 간단하고 다른 시나리오를 설계했습니다. 이것은 균일하게 분포된 이상값의 일부를 포함하는 정규 분포를 따르는 2D 데이터 포인트로 구성된 데이터 세트 내에서 비정상적인 값을 감지하기 위한 간단한 스파이크입니다.

Python 구현과 함께 두 가지 다른 기술이 설명됩니다.

  • Isolation Forest
  • One-class SVM

Jupyter 노트북 의 저장소 내에서 찾을 수 있습니다 .

 

데이터세트

이들은 200개의 정규 분포 데이터 포인트로 구성된 2개의 작고 독립적인 데이터 세트로, 이는 일반 값을 나타내고, 50개의 균일하게 분포된 데이터 포인트는 일반 데이터 포인트에 비해 고가 및 저 저가가 있습니다.

 

데이터 포인트는 다음과 같은 방식으로 배포됩니다.

 

기본 클러스터(정규 분포)

  • (x, y) / {x ∈ [1, 3], y ∈ [1, 3]}
  • (x, y) / {x ∈ [-3, -1], y ∈ [-3, -1]}

이상치(균일하게 분포됨)

  • (x, y) / {x ∈ [-4, 4], y ∈ [-4, 4]}

 

 

결과

Isolation Forest와 One-class Support Vector Machine을 훈련 세트에 맞춘 후 두 알고리즘이 지식을 외삽하는 방법을 테스트하기 위해 테스트 세트에 대해 예측을 실행했습니다.

 

Isolation Forest

 

지표에 따르면 스파이크에 대해 이 알고리즘이 달성한 사항은 다음과 같습니다.

  • 정확도: 92%(46/50 이상 감지)
  • 오탐지: 0%(총 0개)

 

One-Class SVM

 

지표에 따르면 스파이크에 대해 이 알고리즘이 달성한 사항은 다음과 같습니다.

  • 정확도: 78%(39/50 이상 감지 - 18 잘못된 감지)
  • 오탐지: 31.5%(총 18개)

 

 

반응형

댓글