시계열의 주요 기능

시계열 라이브러리는 단변량, 다변량, 다중 키 시계열은 물론 수치형 및 범주형 데이터에 대한 다양한 함수를 제공합니다.

이 라이브러리가 제공하는 기능은 크게 다음과 같이 분류할 수 있습니다:

  • 시계열 I/O: 시계열 데이터 생성 및 저장
  • 시계열 함수, 변환, 윈도잉 또는 세그멘테이션, 리듀서
  • 스케일 가능한 시계열 함수 실행을 가능하게 하는 시계열 SQL 및 Spark용 SQL 확장 기능

다음 섹션에서는 예시를 통해 주요 기능 중 일부를 설명합니다.

시계열 I/O

시계열 데이터의 주요 입출력(I/O) 기능은 pandas의 ` DataFrame ` 또는 ` Python ` 리스트를 통해 수행됩니다. 다음 코드 예제는 DataFrame: 를 사용하여 시계열을 생성하는 방법을 보여줍니다

>>> import numpy as np
>>> import pandas as pd
>>> data = np.array([['', 'key', 'timestamp', "value"],['', "a", 1, 27], ['', "b", 3, 4], ['', "a", 5, 17], ['', "a", 3, 7], ['', "b", 2, 45]])
>>> df = pd.DataFrame(data=data[1:, 1:], index=data[1:, 0], columns=data[0, 1:]).astype(dtype={'key': 'object', 'timestamp': 'int64', 'value': 'float64'})
>>> df
key  timestamp  value
  a          1   27.0
  b          3    4.0
  a          5   17.0
  a          3    7.0
  b          2   45.0

#Create a timeseries from a dataframe, providing a timestamp and a value column
>>> ts = tspy.time_series(df, ts_column="timestamp", value_column="value")
>>> ts
TimeStamp: 1     Value: 27.0
TimeStamp: 2     Value: 45.0
TimeStamp: 3     Value: 4.0
TimeStamp: 3     Value: 7.0
TimeStamp: 5     Value: 17.0

시계열 데이터를 pandas의 ` DataFrame, ` 형식으로 되돌리려면 다음 to_df 함수를 사용하세요:

>>> import tspy
>>> ts_orig = tspy.time_series([1.0, 2.0, 3.0])
>>> ts_orig
TimeStamp: 0     Value: 1
TimeStamp: 1     Value: 2
TimeStamp: 2     Value: 3

>>> df = ts_orig.to_df()
>>> df
   timestamp  value
0          0      1
1          1      2
2          2      3

데이터 모듈

시계열 데이터는 Open Geospatial Consortium(OGC)과 같은 표준의 적용을 받는 공간 데이터와 달리, 모델 및 데이터 유형에 대한 표준이 따로 없습니다. 시계열 데이터의 과제는 Spark의 RDD(Resilient Distributed Datasets)와 마찬가지로 지원해야 할 함수의 종류가 매우 다양하다는 점입니다.

이 데이터 모델은 시계열의 다양한 형태의 세분화 또는 윈도잉, 한 시계열을 다른 시계열로 변환하는 작업, 시계열로부터 정적 값을 계산하는 리듀서, 여러 시계열을 결합하는 조인, 그리고 서로 다른 시간대의 시계열을 수집하는 기능 등 광범위한 작업을 지원합니다. 이 시계열 라이브러리는 핵심 데이터 구조를 변경하지 않은 채로 새로운 기능을 간편하게 추가할 수 있게 해줍니다. 이 라이브러리는 수치형 및 범주형 시계열도 지원합니다.

시간대와 다양한 인간이 읽기 쉬운 시간 형식이 존재하는 만큼, 데이터 모델의 핵심 요소 중 하나는 시간 기준 시스템(TRS)을 지원하는 것입니다. 모든 시계열에는 TRS(시스템 기본값)가 할당되어 있으며, 이는 언제든지 사용자가 원하는 대로 재매핑할 수 있어 특정 시계열이나 시계열의 일부를 손쉽게 변환할 수 있습니다. “시간 기준 시스템 사용”을 참조하십시오.

또한, 대규모 시계열 데이터를 처리해야 할 필요성에 따라, 이 라이브러리는 시간적 의존성이 가장 좁은 구간을 식별하는 메커니즘을 제공함으로써 지연 평가 구조를 지원합니다. 이 구조는 스파크(Spark) 계산 그래프의 구조와 매우 유사하며, 스파크 역시 필요에 따라 데이터를 메모리에 로드하고 필요한 시점에만 계산을 수행합니다.

시계열 데이터 유형

시계열의 요소로 숫자형, 범주형, 배열, 사전 등 다양한 데이터 유형을 사용할 수 있습니다.

시계열에서는 다음 데이터 유형을 지원합니다:

데이터 유형 설명
숫자 double 및 정수형 등 수치형 단일 변수 관측값을 포함하는 시계열. 예를 들어,[(1, 7.2), (3, 4.5), (5, 4.5), (5, 4.6), (5, 7.1), (7, 3.9), (9, 1.1)]
숫자 배열 double 배열 및 정수 배열을 포함하여, 수치형 다변량 관측값을 가진 시계열. 예를 들면, 다음과 같습니다. [(1, [7.2, 8.74]), (3, [4.5, 9.44]), (5, [4.5, 10.12]), (5, [4.6, 12.91]), (5, [7.1, 9.90]), (7, [3.9, 3.76])]
문자열 문자열 형식의 단변량 관측값을 가진 시계열. 예를 들어: [(1, "a"), (3, "b"), (5, "c"), (5, "d"), (5, "e"), (7, "f"), (9, "g")]
문자열 배열 문자열 배열 형태의 다변량 관측값을 가진 시계열, 예를 들어: [(1, ["a", "xq"]), (3, ["b", "zr"]), (5, ["c", "ms"]), (5, ["d", "rt"]), (5, ["e", "wu"]), (7, ["f", "vv"]), (9, ["g", "zw"])]
세그먼트 구간의 시계열. 이 segmentBy 함수의 반환 값은 숫자, 문자열, 숫자 배열, 문자열 배열을 포함하여 어떤 유형이든 될 수 있습니다. 예를 들면, 다음과 같습니다. [(1,[(1, 7.2), (3, 4.5)]), (5,[(5, 4.5), (5, 4.6), (5, 7.1)]), (7,[(7, 3.9), (9, 1.1)])]
사전 사전의 시계열 데이터. 사전 내부에는 임의의 유형을 포함할 수 있습니다

시계열 함수

제공된 시계열 패키지의 다양한 기능을 활용하여 시계열 데이터를 분석하고, 이를 통해 의미 있는 정보를 추출함으로써, 과거 관측값을 바탕으로 새로운 값을 예측하는 데 사용할 수 있는 모델을 구축할 수 있습니다. 시계열 함수를 참조하십시오.

자세히 알아보기

Python tspy SDK를 사용하려면 tspyPython 의 SDK 설명서를 참조하십시오.