PCA 기반 변칙 검색 구성 요소

이 문서에서는 Azure Machine Learning 디자이너에서 PCA 기반 변칙 검색 구성 요소를 사용하여 PCA(주 구성 요소 분석)를 기반으로 변칙 검색 모델을 만드는 방법을 알아봅니다.

이 구성 요소를 사용하면 유효한 트랜잭션과 같은 한 클래스에서 학습 데이터를 쉽게 가져올 수 있지만 대상 변칙의 충분한 샘플을 얻는 것이 어려운 시나리오에서 모델을 빌드할 수 있습니다.

예를 들어 사기성 트랜잭션을 검색하기 위해 학습을 위한 충분한 사기 행위 예제가 없는 경우가 많습니다. 하지만 좋은 트랜잭션의 많은 예제가 있을 수 있습니다. PCA 기반 변칙 검색 구성 요소는 "normal" 클래스를 구성하는 항목을 확인하기 위해 사용 가능한 기능을 분석하여 문제를 해결합니다. 그런 다음, 구성 요소는 거리 메트릭을 적용하여 변칙을 나타내는 사례를 식별합니다. 이 접근 방식을 사용하면 기존 불균형 데이터를 사용하여 모델을 학습시킬 수 있습니다.

주 구성 요소 분석에 대한 자세한 내용

PCA는 기계 학습의 설정된 기술입니다. PCA는 데이터의 내부 구조를 공개하고 데이터의 변화를 설명하므로 예비 데이터 분석에서 자주 사용됩니다.

PCA는 여러 변수를 포함하는 데이터를 분석하여 작동합니다. 변수 간의 상관 관계를 찾고 결과에서 차이점을 가장 잘 캡처하는 값의 조합을 확인합니다. 이러한 조합된 기능 값이 보안 주체 구성 요소라는 보다 간결한 기능 공간을 만드는 데 사용됩니다.

변칙 검색의 경우 각각의 새 입력이 분석됩니다. 변칙 검색 알고리즘은 정규화된 재구성 오류와 함께 고유 벡터의 프로젝션을 계산합니다. 정규화된 오류는 이상 점수로 사용됩니다. 오류가 높을수록 인스턴스가 더 이상한 것입니다.

PCA 작동 방식에 대한 자세한 내용과 변칙 검색의 구현에 대한 자세한 내용은 다음 백서를 참조하세요.

PCA 기반 변칙 검색을 구성하는 방법

  1. 디자이너의 파이프라인에 PCA 기반 변칙 검색 구성 요소를 추가합니다. 이 구성 요소는 변칙 검색 범주에서 찾을 수 있습니다.

  2. 구성 요소의 오른쪽 패널에서 학습 모드 옵션을 선택합니다. 특정 매개 변수 집합을 사용하여 모델을 학습시킬 것인지 아니면 매개 변수 스윕을 사용하여 최적의 매개 변수를 찾을 것인지를 나타냅니다.

    모델 구성 방법을 알고 있는 경우 단일 매개 변수 옵션을 선택하여 특정 값 집합을 인수로 제공합니다.

  3. PCA에서 사용할 구성 요소 수에 대해 원하는 출력 기능 또는 구성 요소 수를 지정합니다.

    포함할 구성 요소 수에 대한 결정은 PCA를 사용하는 실험 디자인의 중요한 부분입니다. 일반적인 지침은 변수와 동일한 수의 PCA 구성 요소를 포함하면 안 됩니다. 대신 적은 수의 구성 요소를 시작하고 일부 조건이 충족될 때까지 늘려야 합니다.

    최상의 결과는 출력 구성 요소 수가 데이터 세트에서 사용할 수 있는 기능 열 수보다 적을 때 얻을 수 있습니다.

  4. 임의 PCA 학습 중에 수행할 과다 샘플링의 양을 지정합니다. 변칙 검색 문제에서 불균형 데이터를 사용하면 표준 PCA 기술을 적용하기가 어려워집니다. 과다 샘플링을 지정하여 대상 인스턴스 수를 늘릴 수 있습니다.

    1을 지정하면 과다 샘플링이 수행되지 않습니다. 1보다 큰 값을 지정하면 모델을 학습하는 데 사용하는 샘플이 추가로 생성됩니다.

    매개 변수 스윕을 사용하는지 여부에 따라 다음과 같은 두 가지 옵션이 있습니다.

    • 임의 PCA에 대한 과다 샘플링 매개 변수: 일반 클래스에서의 소수 클래스의 과다 샘플링 비율을 나타내는 단일 정수를 입력합니다. (이 옵션은 단일 매개 변수 학습 방법을 사용하는 경우에 사용할 수 있습니다.)

    참고

    과다 샘플링된 데이터 세트는 볼 수 없습니다. 과다 샘플링을 PCA와 함께 사용하는 방법에 대한 자세한 내용은 기술 참고 사항을 참조하세요.

  5. 입력 기능 평균값 정규화 사용 옵션을 선택하여 모든 입력 기능을 평균 0으로 정규화합니다. PCA의 목표는 변수 간의 가변성을 최대화하는 것이기 때문에 정규화 또는 0으로의 크기 조정은 일반적으로 PCA에 권장됩니다.

    이 옵션은 기본적으로 선택됩니다. 다른 방법이나 크기 조정을 통해 값이 이미 정규화된 경우 선택을 취소합니다.

  6. 태그가 지정된 학습 데이터 세트 및 학습 구성 요소 중 하나를 연결합니다.

    강사 모드 만들기 옵션을 단일 매개 변수로 설정한 경우 변칙 검색 모델 학습 구성 요소를 사용합니다.

  7. 파이프라인을 제출합니다.

결과

학습을 완료하면 학습된 모델을 저장할 수 있습니다. 또는 모델 점수 매기기 구성 요소에 연결하여 변칙 점수를 예측할 수 있습니다.

변칙 검색 모델의 결과를 평가하려면:

  1. 두 데이터 세트에서 점수 열을 사용할 수 있는지 확인합니다.

    변칙 검색 모델을 평가하고 "비교할 점수가 매겨진 데이터 세트에 점수 열이 없습니다."라는 오류 메시지가 표시되면 레이블 열을 포함하지만 가능성 점수가 없는 일반적인 평가 데이터 세트를 사용하는 것입니다. 점수가 매겨진 레이블점수가 매겨진 가능성 열을 포함하는 변칙 검색 모델의 스키마 출력과 일치하는 데이터 세트를 선택합니다.

  2. 레이블 열이 표시되어 있는지 확인합니다.

    경우에 따라 레이블 열과 연결된 메타데이터가 파이프라인 그래프에서 제거됩니다. 이 경우 모델 평가 구성 요소를 사용하여 두 변칙 검색 모델의 결과를 비교할 때 "채점된 데이터 세트에 레이블 열이 없습니다." 오류가 나타날 수 있습니다. 또는 "비교할 점수가 매겨진 데이터 세트에 레이블 열이 없습니다." 오류가 발생할 수 있습니다.

    모델 평가 구성 요소 전에 메타데이터 편집 구성 요소를 추가하여 이러한 오류를 방지할 수 있습니다. 열 선택기를 사용하여 클래스 열을 선택하고, 필드 목록에서 레이블을 선택합니다.

  3. Python 스크립트 실행 구성 요소를 사용하여 레이블 열 범주를 1(긍정, 정상)0(부정, 비정상)으로 조정합니다.

    label_column_name = 'XXX'
    anomaly_label_category = YY
    dataframe1[label_column_name] = dataframe1[label_column_name].apply(lambda x: 0 if x == anomaly_label_category else 1)
    

기술 정보

이 알고리즘은 PCA를 사용하여 일반 클래스를 포함하는 하위 공간을 대략적으로 사용합니다. 하위 공간은 데이터 공변성 행렬의 최고 고유값과 연결된 고유 벡터에 의해 확장됩니다.

각 새로운 입력에 대해 변칙 감지기는 먼저 고유 벡터로의 프로젝션을 계산한 다음, 정규화된 재구성 오류를 계산합니다. 이 오류가 변칙 점수입니다. 오류가 높을수록 인스턴스가 더 이상한 것입니다. 정상 공간을 계산하는 방법에 대한 자세한 내용은 위키백과: 주 구성 요소 분석을 참조하세요.

다음 단계

Azure Machine Learning에서 사용 가능한 구성 요소 집합을 참조하세요.

디자이너 구성 요소와 관련된 오류 목록은 디자이너용 예외 및 오류 코드를 참조하세요.