Skip to content

euisuk-chung/Generate_TSAD

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

시계열 데이터 Benchmark Data 생성기

이 문서는 시계열 데이터와 이상치를 생성하는 main.py 스크립트를 실행하는 방법에 대해 설명합니다. 이 스크립트는 정상 범위의 데이터 포인트와 지정된 비율의 이상치를 포함한 시계열 데이터를 생성합니다. 사용자는 사인 파형, 코사인 파형의 추가, 데이터 포인트의 수, 이상치의 비율 및 기울기를 포함한 여러 매개변수를 통해 생성 과정을 사용자 정의할 수 있습니다.

필수 조건

스크립트를 실행하기 전에 Python이 시스템에 설치되어 있어야 합니다. 또한 numpy, pandas, matplotlib 라이브러리가 필요합니다. 이 라이브러리들은 다음 명령어를 통해 설치할 수 있습니다:

pip install numpy pandas matplotlib

사용법

스크립트는 명령줄 인터페이스(CLI)를 통해 다음과 같이 실행될 수 있습니다:

python main.py [옵션]

사용 가능한 옵션은 다음과 같습니다:

  • --num_points: 생성할 데이터 포인트의 총 개수입니다. 기본값은 1000입니다.
  • --anomaly_rate: 전체 데이터 포인트 중 이상치의 비율입니다. 기본값은 0.01입니다.
  • --normal_range: 정상 데이터 포인트의 값 범위입니다. 기본값은 (0, 1)입니다.
  • --anomaly_range: 이상치 데이터 포인트의 값 범위입니다. 기본값은 (2, 3)입니다.
  • --include_sine: 사인 파형을 데이터에 포함시킬지 여부입니다. 기본값은 False입니다.
  • --include_cosine: 코사인 파형을 데이터에 포함시킬지 여부입니다. 기본값은 False입니다.
  • --anomaly_length: 이상치가 연속으로 나타나는 길이입니다. 기본값은 6입니다.
  • --additional_anomaly_prob: 추가 이상치가 발생할 확률입니다. 기본값은 0.5입니다.
  • --freq: 사인/코사인 파형의 주파수입니다. 기본값은 20입니다.
  • --amp: 사인/코사인 파형의 진폭입니다. 기본값은 0.4입니다.
  • --slope: 데이터의 기울기로, 시계열의 경향성을 결정합니다. 기본값은 0입니다.

예를 들어, default 환경으로 시계열 데이터를 생성하려면 다음 명령어를 사용합니다:

python main.py

예시 1: 사인 파형과 코사인 파형을 모두 포함한 시계열 데이터 생성

이 예시에서는 500개의 데이터 포인트와 0.02의 이상치 비율을 유지하면서, 사인 파형과 코사인 파형을 모두 데이터에 포함합니다. 주파수는 10, 진폭은 0.5로 설정하여 파형의 변화를 더욱 뚜렷하게 합니다. 이 설정은 복잡한 주기성을 시뮬레이션하기에 적합합니다.

python main.py --num_points 500 --anomaly_rate 0.02 --include_sine True --include_cosine True --freq 10 --amp 0.5

예시 2: 이상치가 더 빈번하게 발생하고, 이상치의 범위가 넓은 시계열 데이터 생성

이 경우에는 이상치가 더 빈번하게 발생하도록 추가 이상치 확률을 0.75로 증가시키고, 이상치의 범위를 (3, 5)로 설정하여 이상치의 변동 폭을 크게 합니다. 이 설정은 이상치가 더 두드러지고 자주 발생하는 상황을 시뮬레이션합니다.

python main.py --num_points 500 --anomaly_rate 0.02 --additional_anomaly_prob 0.75 --anomaly_range "(3, 5)"

예시 3: 기울기가 있는 시계열 데이터에 사인 파형을 포함하여 생성

이 예시에서는 데이터의 기울기를 0.02로 설정하여 시계열에 경향성을 추가하고, 사인 파형을 포함시켜 주기적인 변동성을 도입합니다. 기울기가 있는 데이터는 경향성을 가지며 시간에 따라 값이 점진적으로 증가하거나 감소하는 특성을 모델링합니다.

python main.py --num_points 500 --anomaly_rate 0.02 --include_sine True --slope 0.02

예시 4: 정상 범위와 이상치 범위가 다른 시계열 데이터 생성

마지막 예시에서는 정상 데이터 포인트의 범위를 (0, 0.5)로 조정하고, 이상치 데이터 포인트의 범위를 (5, 6)으로 설정하여 정상 범위와 이상치 범위 사이의 구분을 더욱 명확하게 합니다. 이 설정은 정상 데이터와 이상치 데이터 간의 구분이 뚜렷한 시나리오를 시뮬레이션합니다.

python main.py --num_points 500 --anomaly_rate 0.02 --normal_range "(0, 0.5)" --anomaly_range "(5, 6)"

결과

스크립트를 실행하면 ./Results 디렉토리에 시계열 데이터가 포함된 CSV 파일과 생성된 데이터의 시각화를 나타내는 PNG 이미지가 저장됩니다. 파일 이름은 스크립트가 실행된 날짜와 시간에 따라 결정됩니다. 해당 폴더에서 예시 출력 결과를 확인하실 수 있습니다.

About

Git repo for generating Timeseries Anomaly

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published