다음을 통해 공유


시계열 변칙 검색

중요

Machine Learning Studio(클래식)에 대한 지원은 2024년 8월 31일에 종료됩니다. 해당 날짜까지 Azure Machine Learning으로 전환하는 것이 좋습니다.

2021년 12월 1일부터 새로운 Machine Learning Studio(클래식) 리소스를 만들 수 없습니다. 2024년 8월 31일까지는 기존 Machine Learning Studio(클래식) 리소스를 계속 사용할 수 있습니다.

ML Studio(클래식) 설명서는 사용 중지되며 나중에 업데이트되지 않을 수 있습니다.

입력 시계열 데이터의 변칙을 검색합니다.

범주: 시계열

참고

적용 대상: Machine Learning Studio(클래식)

유사한 끌어서 놓기 모듈은 Azure Machine Learning 디자이너에서 사용할 수 있습니다.

모듈 개요

이 문서에서는 Machine Learning Studio(클래식)에서 시계열 변칙 검색 모듈을 사용하여 시계열 데이터의 변칙을 검색하는 방법을 설명합니다. 이 모듈은 입력으로 제공하는 시계열의 정상적인 작동 특성을 학습하고 해당 정보를 사용하여 표준 패턴의 편차를 감지합니다. 모듈은 전체 추세의 변경 내용과 값의 크기 또는 범위 변경을 모두 검색할 수 있습니다.

시계열 데이터의 변경 내용을 감지하는 데는 광범위한 애플리케이션이 있습니다. 예를 들어 센서, 네트워크 또는 리소스 사용량을 거의 실시간으로 모니터링하는 데 사용할 수 있습니다. 서비스 오류, 서비스 사용량 및 기타 KPI를 추적하여 중요한 변칙에 신속하게 대응할 수 있습니다. 다른 응용 프로그램에는 의료 및 금융이 포함됩니다.

변칙 검색 메서드

변칙 검색은 "정상" 동작의 모델을 따르지 않는 데이터에서 패턴을 찾는 문제입니다. 이러한 변경 내용을 검색하는 일반적인 방법은 간단한 인간 계산 임계값 또는 평균 및 표준 편차를 사용하여 데이터가 평균에서 크게 벗어나는 시기를 결정합니다.

그러나 이러한 간단한 접근 방식은 시계열 데이터에 쉽게 적응되지 않습니다.

  • 많은 수의 잘못된 변칙이 생성됩니다.

  • 데이터 값 변경에는 메서드를 적용할 수 없습니다.

  • 큰 시계열로 쉽게 확장할 수 없음

이 모듈에서는 시계열 추세의 분산을 평가하기 위한 두 가지 추가 메서드를 제공합니다.

  • 위쪽 및 아래쪽 변경의 크기 측정

    예를 들어 웹 서비스에 대한 요청 수가 일정 시간 동안 가장 적합할 수 있으며 그 후 크게 증가할 수 있습니다.

  • 추세의 방향 및 기간 측정: 양수 및 부정 변경

    예를 들어 서비스 큐 길이의 지속적인 상승 추세는 기본 문제를 나타낼 수 있습니다. 전반적인 추세가 지속적으로 증가하고 있으므로 안정적으로 간주될 수 있지만 기울기 변경은 변칙으로 플래그가 지정될 수 있습니다. 반대로 서버의 메모리 사용량을 모니터링하는 경우 사용 가능한 메모리 크기가 일정하게 감소하면 문제가 발생할 수 있습니다.

시계열의 비정상적인 패턴 예

위쪽 및 아래쪽 수준 변경

예를 들어 일정 기간 동안 웹 서비스에 대한 일별 요청 수를 모니터링해 왔으며 요청 수가 특정 범위 내에 있는 것으로 보인다고 가정합니다. 그러나 웹 서비스를 업데이트한 후 해당 웹 서비스에 대한 요청 수가 변경됩니다. 새 추세는 원래 추세보다 높거나 낮을 수 있습니다. 위쪽 및 아래쪽 스파이크를 모두 검색할 수 있습니다.

upward and downward level changes

긍정적 또는 부정적 추세 변경

예를 들어 서비스 지원 사이트에서 큐의 길이를 모니터링하는 것으로 가정합니다. 지속적인 상승 추세는 기본 서비스 문제를 나타낼 수 있습니다.

다른 경우에는 영구적 부정 추세가 변칙일 수 있습니다. 예를 들어 서버에서 메모리 사용량을 모니터링하는 경우 사용 가능한 메모리 크기가 줄어들면 잠재적인 메모리 누수가 표시될 수 있습니다.

positive or negative trend change

리소스

이 접근 방식의 근간이 되는 연구에 대한 자세한 내용은 다음 문서를 참조하세요.

  • Shen-Shyang 호; Wechsler, H., "교환 가능성을 테스트하여 데이터 스트림 변경 내용을 검색하기 위한 Martingale 프레임워크", 패턴 분석 및 기계 인텔리전스, IEEE 트랜잭션, vol.32, No.12, pp.2113,2127, 2010년 12월

    원본 및 인용(Microsoft Academic)

  • Valentina Fedorova, Alex J. Gammerman, Ilia Nouretdinov, Vladimir Vovk, "온라인 교환 가능성을 테스트하기 위한 플러그 인 마틴갈", ICML 2012

    원본 및 인용(Microsoft Academic)

  • Vladimir Vovk, Ilia Nouretdinov, Alex J. Gammerman, "Testing Exchangeability Online", ICML 2003.

    원본 및 인용(Microsoft Academic)

시계열 변칙 검색을 구성하는 방법

  1. 시계열 변칙 검색 모듈을 실험에 추가하고 시계열이 포함된 데이터 세트를 연결합니다.

    입력으로 사용되는 데이터 세트에는 문자열 형식의 datetime 값이 포함된 하나 이상의 열과 추세 값이 포함된 다른 열이 숫자 형식이어야 합니다. 다른 열은 무시됩니다.

    각 행은 해당 당시 값을 나타내는 시계열의 데이터 요소에 해당하므로 시간 값은 고유해야 합니다.

  2. 데이터 열: 데이터 세트에서 숫자 데이터 값이 포함된 단일 열을 선택합니다. 이러한 값은 시간별 모집단 합계, 월별 비용 또는 일정 기간 동안의 온도와 같이 모델링하려는 추세의 데이터 요소입니다.

  3. 시간 열: 데이터 세트에서 연결된 시계열 값이 포함된 단일 열을 선택합니다.

    열에는 유효한 날짜/시간 값이 포함되어야 합니다. 즉, 모든 날짜는 .NET Framework 지원하는 날짜 범위 내에 있어야 합니다.

    시간 열은 DateTime 데이터 형식을 사용해야 합니다. 날짜가 문자열 형식인 경우 SQL 변환 적용 모듈을 사용하여 캐스팅하거나 R 스크립트 실행 모듈을 사용하여 변환할 수 있습니다. 날짜가 정수로 표시되는 경우 적절한 datetime 변환 함수를 사용하여 유효한 datetime 형식을 사용하여 값을 나타내야 합니다.

    예를 들어 다음 SQL 문은 Excel 직렬 날짜 값을 datetime 형식으로 변경합니다.

     SELECT CAST([SerialDate]  AS SmallDateTime) as [NewValidDate] from t1;  
    

    날짜 값이 올바른 형식이면 메타데이터 편집 모듈을 사용하여 열 형식을 DateTime으로 설정합니다.

  4. Martingale 유형: 사용할 martingale 함수를 선택합니다.

    • PowerAvg. 이 옵션은 power martingale의 미미한 구현입니다.

      기본값은 추가 매개 변수가 없는 PowerAvg 입니다. 이 옵션은 보다 안정적인 변칙 탐지기를 제공하며 대부분의 요구 사항에 적합해야 합니다.

    • 전원. power martingale의 미미한 구현입니다.

      Power 옵션은 엡실론 매개 변수에 대해 0에서 1 사이의 값을 제공하여 감지기의 민감도를 제어하는 옵션을 사용자에게 제공합니다. 일반적으로 엡실론 값이 높을수록 변칙에 대한 민감도가 높지만 확실성은 떨어지게 됩니다.

    마틴갈 및 이 모듈에 사용된 메서드에 대한 정의는 다음을 참조하세요. 기계 학습을 사용하여 시계열 데이터의 이상을 검색하는 변칙 검색

  5. 이상한 함수 형식: 이 옵션은 특정 유형의 변칙에 사용됩니다. 추가 매개 변수가 필요하지 않은 세 가지 옵션이 지원됩니다.

    • RangePercentile.

      이는 기본값이며 주로 수준 변경을 검색하는 데 사용됩니다.

    • SlowPosTrend. 긍정적인 추세 변화를 감지하려면 이 옵션을 선택합니다.

    • SlowNegTrend. 부정적인 추세 변화를 감지하려면 이 옵션을 선택합니다.

  6. MartingaleStrangeness 값의 길이: 조회 기록에 대한 martingale 값을 계산하는 데 사용되는 기록 창의 크기를 지정합니다.

    기본값은 500이지만 0에서 5000 사이의 정수를 지정할 수 있습니다. 큰 시계열의 경우 기본값이 제대로 작동해야 합니다. 더 작은 시계열의 경우 비정상적인 동작의 예상 길이 값을 추정할 수 있습니다.

    일반적으로 이러한 두 매개 변수를 동일한 값으로 설정하는 것이 좋습니다.

  7. 이상한 값의 길이: 각 데이터 요소에서 이상도를 계산하는 데 사용되는 기록 창의 길이를 지정합니다.

    기본값은 500이지만 0에서 5000 사이의 정수를 지정할 수 있습니다.

    이 매개 변수에는 Martingale 길이와 동일한 제한이 있습니다. 즉, 값을 "정상" 동작을 학습하는 데 필요한 예상 데이터 포인트 수로 설정해야 합니다.

    기본값인 500은 대부분의 경우 잘 작동하지만 "정상"이 측정되는 배율에 따라 달라지는 경우 기묘한 값의 길이Martingale 길이보다 더 큰 값으로 만드는 것이 도움이 될 수 있습니다.

    예를 들어 오류를 모니터링하고 데이터 요소가 15분 간격으로 캡처된다고 가정하는 경우 일반적인 추세를 학습하는 데 필요한 시간은 월마다 크게 달라질 수 있습니다.

    일반적으로 더 큰 창 크기를 사용하면 모듈이 더 큰 데이터 세트에 대해 학습해야 하기 때문에 성능이 저하됩니다.

    일반적으로 이러한 두 매개 변수를 동일한 값으로 설정하는 것이 좋습니다.

  8. 경고 임계값: 이상 점수가 경고를 생성하는 위의 값을 지정합니다.

    기본값은 3.25입니다. 즉, 점수가 3.25 이상인 모든 행에 대해 경고가 생성됩니다. Y

    0에서 100 사이의 부동 소수점 번호를 지정할 수 있습니다. 그러나 임계값 선택에 대한 민감도와 신뢰도 간에는 절충이 있습니다.

    • 임계값이 낮으면 탐지기가 변칙에 더 민감하게 표시되고 더 많은 경고가 생성됩니다.

    • 임계값이 낮을 경우 정상적인 변경 내용이 변칙으로 잘못 분류될 수 있습니다.

  9. 실험을 실행합니다.

    이 모델을 별도로 학습시킬 필요는 없습니다. 알고리즘은 이 모듈에 입력으로 제공하는 데이터에서 패턴을 학습합니다.

결과

학습이 완료되면 모듈은 입력 시계열과 길이가 같은 시계열을 출력합니다. 그러나 잠재적으로 비정상적인 값을 나타내기 위해 두 개의 열이 추가됩니다.

  • 변칙 점수: 첫 번째 열에는 시계열 값이 비정상일 가능성을 나타내는 점수가 포함됩니다.

  • 경고: 이 열에는 값이 0 또는 1인 플래그가 포함되어 있습니다. 여기서 1은 변칙이 검색되었음을 의미합니다. 점수 열을 기반으로 경고를 생성하기 위한 임계값을 설정할 수 있지만 경고 임계값 매개 변수를 설정할 수 있습니다.

다음 예제에서는 변칙을 검색하도록 martingale 함수를 설정하는 방법과 결과를 해석하는 방법을 보여 줍니다.

수준 변경 검색

다른 설정의 영향을 설명하기 위해 이 예제에 사용된 예제 데이터 세트는 8870개의 데이터 요소로 구성되며 세 가지 수준의 변경 내용이 있습니다. 이 데이터를 기반으로 다음 매개 변수를 사용하여 두 개의 모델을 만들었습니다.

  • Martingale 형식: PowerAvg

  • 이상 함수 형식: RangePercentile

  • Martingale의 길이 = 50

  • 이상도 값의 길이 = 50

모델은 들어오는 데이터에 대해 학습되었지만 경고 임계값에 다른 값이 적용되었습니다. 예측 결과는 모델 1 및 모델 2에 대한 다음 이미지에 그려집니다. 이러한 그래프에서 파란색 선은 데이터 값을 나타내고 빨간색 선은 변칙에 대해 발생한 경고를 나타냅니다.

경고 임계값 0.9

level change with alert of 0.9

이 모델에서는 임계값이 낮으므로 변경 내용이 일시적이더라도 경고가 발생합니다(변칙이 검색됨).

모니터링하는 시계열의 유형에 따라 이러한 경고 중 일부는 거짓 경고로 간주될 수 있습니다. 그러나 변칙을 간과할 여유가 없는 경우 낮은 임계값이 더 좋을 수 있습니다.

경고 임계값 3.25

level change with alert of 3.25

이 모델에서 경고 임계값은 훨씬 더 높았으며, 결과적으로 모델은 더 오래 지속되는 변경 내용만 검색합니다. 더 오래 지속되는 변경 내용만 파악하려는 시나리오에서는 경고 임계값이 높을수록 더 바람직할 수 있습니다.

양수 기울기 변경 감지

변칙 검색에 대한 이 옵션을 설명하기 위해 300개의 데이터 요소를 포함하는 예제 데이터 세트를 사용했습니다. 모든 포인트는 두 가지 이상과 함께 전반적으로 긍정적 인 추세를 형성했다.

다시 경고 임계값을 제외하고 동일한 매개 변수를 사용하여 두 개의 모델을 만들었습니다.

  • Martingale 형식: PowerAvg

  • 이상 함수 형식: SlowPosTrend

  • Martingale의 길이 = 50

  • 이상도 값의 길이 = 50

이러한 그래프에서 파란색 선은 데이터 값을 나타내고 빨간색 선은 변칙에 대해 발생한 경고를 나타냅니다.

경고 임계값 4.25

positive trend with alert of 4.25

경고 임계값 6.0

positive trend with alert threshold of 6.0

변칙 검색 시나리오에 적합한 수준의 민감도를 찾으려면 다양한 경고 임계값을 실험하는 것이 좋습니다.

예상 입력

Name Type Description
타임스탬프를 포함하는 입력 데이터 및 값 데이터 테이블 날짜-시간 스탬프 및 값을 포함하는 입력 데이터입니다.

모듈 매개 변수

Name Type 범위 Optional 기본값 Description
값 열 ColumnSelection 필수 추적할 시계열이 포함된 열을 선택합니다.
창 크기 정수 필수 분석 창의 크기를 제어하는 값 지정
임계값 Float 옵션 변칙을 식별하기 위해 점수의 임계값을 결정하는 값을 지정합니다.

출력

Name Type Description
변칙 점수로 주석이 추가된 시계열 데이터 테이블 변칙 간격이 있는 데이터 세트입니다.

추가 정보

변칙 검색
1클래스 지원 벡터 컴퓨터
PCA 기반 변칙 검색