ChangeFinder를 설치해 보았습니다.

  • 제조업 출신 데이터 과학자가 보낸 글
  • 이번에는 시간 시퀀스 데이터 변화점을 감지하는 이상 검출 방법의 변경 Finder(샘플 코드)를 실시했다.
  • 개시하다


    과거 이상 검출 방법과 시간 서열 데이터의 해석 방법을 정리했기 때문에 관심 있는 사람도 참고하세요.
  • MSPC(Multi-변수 통계 프로세스 관리)
  • 소구조 학습을 통한 이상 검출
  • 시간 시퀀스 분석
  • 상태 공간 모델
  • 마르코프 모형을 숨기는 이상 검출 사용하기
  • ChangeFinder


    자기회귀모드(AR모델) 학습에'온라인 학습'과'망각 기능'이 추가된 SDAR 알고리즘의 활용 방법은'체인지파인더'다.이것은 산서 선생님이 NEC 재적 시대에 발명한 수법이라고 한다.자세한 내용은 데이터 발굴로 인한 이상 검출에 설명되어 있으니 참조하십시오.
    다음은 알고리즘을 간단하게 정리해 보겠습니다.
  • SDAR을 통한 학습 확률 밀도(1단계)
  • 시간별 변화점 득점 계산
  • 변화점 평점 평균화
  • SDAR을 통한 학습 확률 밀도(2단계)
  • 시간별 변화점 득점 계산

  • 변경 Finder 설치


    이번change finder의 총서에는 샘플 코드가 있어서 활용했습니다.
    python의 코드는 다음과 같습니다.
    # 必要なライブラリーのインポート
    import numpy as np
    import changefinder
    import matplotlib.pyplot as plt
    %matplotlib inline
    
    첫 번째 필요한 총서 목록.
    그리고 이번에 사용된 3가지 정적 분포에 따라 무작위 수를 생성한다.
    data=np.concatenate([np.random.normal(0.7, 0.05, 300),
                         np.random.normal(1.5, 0.05, 300),
                         np.random.normal(0.6, 0.05, 300),
                         np.random.normal(1.3, 0.05, 300)])
    
    이어서 변경Finder로 변화점 득점을 계산한다.
    cf = changefinder.ChangeFinder(r=0.01, order=1, smooth=7)
    
    ret = []
    for i in data:
        score = cf.update(i)
        ret.append(score)
    
    결과가 마지막으로 표시됩니다.
    빨간색은 원시 데이터이고 파란색은 변화 득점이다.
    fig = plt.figure()
    ax = fig.add_subplot(111)
    ax.plot(ret)
    ax2 = ax.twinx()
    ax2.plot(data,'r')
    plt.show()
    

    이번에 ChangeFinder에서 설정한 매개변수는 다음과 같습니다.
  • r: 망각 매개 변수(작아지면 과거의 영향이 커지고 변화점의 편차가 커진다)
  • order: AR 모형의 단계
  • smooth: 매끄러운 범위(길수록 편차가 아니라'변화'가 포착되지만 너무 크면 원래 변화 자체가 포착되기 어렵다)
  • 이번 데이터 집합에서는 변화점을 현저하게 알 수 있기 때문에 잘 검출될 것 같지만 실제로 현장의 데이터에서 사용할 때 파라미터 조정에 고생이 많았다.

    최후


    끝까지 읽어주셔서 감사합니다.
    이번에는 검출 시간 시퀀스 데이터 변화점에 대한 이상 검출 방법에 대한 체인지Finder가 샘플 코드를 확인했다.
    수정 요청이 있으면 연락 주세요.

    좋은 웹페이지 즐겨찾기