series_periods_detect()
적용 대상: ✅Microsoft Fabric✅✅
시계열 내에서 가장 중요한 기간을 찾습니다.
series_periods_detect() 함수는 매일, 매주 또는 매월 주기와 같은 데이터의 정기적인 패턴을 검색하는 데 유용합니다.
구문
series_periods_detect(
계열,
min_period ,
max_period num_periods,
)
구문 규칙에 대해 자세히 알아봅니다.
매개 변수
이름 | Type | 필수 | 설명 |
---|---|---|---|
시리즈 | dynamic |
✔️ | 숫자 값의 배열로, 일반적으로 메이크 계열 또는 make_list 연산자의 결과 출력입니다. |
min_period | real |
✔️ | 검색할 최소 기간 길이입니다. |
max_period | real |
✔️ | 검색할 최대 기간 길이입니다. |
num_periods | long |
✔️ | 반환할 최대 기간 수입니다. 이 숫자는 출력 동적 배열의 길이입니다. |
Important
- 알고리즘은 계열 길이의 절반 이상인 4포인트 이상을 포함하는 기간을 검색할 수 있습니다.
- min_period 조금 아래에 설정하고 시계열에서 찾을 것으로 예상되는 기간보다 약간 max_period. 예를 들어 시간별로 집계된 신호가 있고 일별 및 주간 기간(각각 24시간 및 168시간)을 모두 찾는 경우 min_period=0.8*24, max_period=1.2*168을 설정하고 이 기간 주위에 20%의 여백을 남길 수 있습니다.
- 입력 시계열은 일반이어야 합니다. 즉, 상수 bin으로 집계되며, 메이크 시리즈를 사용하여 생성된 경우 항상 해당합니다. 그렇지 않으면 출력은 의미가 없습니다.
반품
이 함수는 두 개의 열이 있는 테이블을 반환합니다.
- 마침표: 찾은 마침표(bin 크기의 단위)를 포함하는 동적 배열로, 점수에 따라 정렬됩니다.
- scores: 0에서 1 사이의 값을 포함하는 동적 배열입니다. 각 배열은 마침표 배열의 해당 위치에 있는 마침표의 중요성을 측정합니다.
예시
다음 쿼리는 한 달 동안 애플리케이션 트래픽의 스냅샷을 포함합니다. 트래픽 양은 하루에 두 번 집계됩니다. 즉, bin 크기는 12시간입니다. 쿼리는 데이터의 패턴을 명확하게 보여 주는 꺾은선형 차트를 생성합니다.
print y=dynamic([80, 139, 87, 110, 68, 54, 50, 51, 53, 133, 86, 141, 97, 156, 94, 149, 95, 140, 77, 61, 50, 54, 47, 133, 72, 152, 94, 148, 105, 162, 101, 160, 87, 63, 53, 55, 54, 151, 103, 189, 108, 183, 113, 175, 113, 178, 90, 71, 62, 62, 65, 165, 109, 181, 115, 182, 121, 178, 114, 170])
| project x=range(1, array_length(y), 1), y
| render linechart
동일한 계열에서 series_periods_detect()
함수를 실행하여 되풀이 패턴을 식별할 수 있습니다. 이 함수는 지정된 기간 범위의 패턴을 검색하고 두 값을 반환합니다. 첫 번째 값은 약 .84의 점수를 가진 14포인트 길이의 감지된 패턴을 나타냅니다. 다른 값은 추가 패턴을 찾을 수 없음을 나타내는 0입니다.
print y=dynamic([80, 139, 87, 110, 68, 54, 50, 51, 53, 133, 86, 141, 97, 156, 94, 149, 95, 140, 77, 61, 50, 54, 47, 133, 72, 152, 94, 148, 105, 162, 101, 160, 87, 63, 53, 55, 54, 151, 103, 189, 108, 183, 113, 175, 113, 178, 90, 71, 62, 62, 65, 165, 109, 181, 115, 182, 121, 178, 114, 170])
| project x=range(1, array_length(y), 1), y
| project series_periods_detect(y, 0.0, 50.0, 2)
출력
series_periods_detect_y_periods | series_periods_detect_y_periods_scores |
---|---|
[14, 0] | [0.84, 0] |
series_periods_detect_y_periods_scores 값이 잘립니다.
참고 항목
차트에 일별 패턴도 표시되지만 샘플링이 너무 거칠기 때문에 쿼리에서 반환되지 않습니다(12h bin 크기). 2개 bin의 일일 기간은 알고리즘에 필요한 최소 기간 크기인 4포인트 미만입니다.