이 문서는 시계열 데이터와 이상치를 생성하는 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
이 예시에서는 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
이 경우에는 이상치가 더 빈번하게 발생하도록 추가 이상치 확률을 0.75로 증가시키고, 이상치의 범위를 (3, 5)
로 설정하여 이상치의 변동 폭을 크게 합니다. 이 설정은 이상치가 더 두드러지고 자주 발생하는 상황을 시뮬레이션합니다.
python main.py --num_points 500 --anomaly_rate 0.02 --additional_anomaly_prob 0.75 --anomaly_range "(3, 5)"
이 예시에서는 데이터의 기울기를 0.02로 설정하여 시계열에 경향성을 추가하고, 사인 파형을 포함시켜 주기적인 변동성을 도입합니다. 기울기가 있는 데이터는 경향성을 가지며 시간에 따라 값이 점진적으로 증가하거나 감소하는 특성을 모델링합니다.
python main.py --num_points 500 --anomaly_rate 0.02 --include_sine True --slope 0.02
마지막 예시에서는 정상 데이터 포인트의 범위를 (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 이미지가 저장됩니다. 파일 이름은 스크립트가 실행된 날짜와 시간에 따라 결정됩니다. 해당 폴더에서 예시 출력 결과를 확인하실 수 있습니다.