파이썬을 이용해 주가에 대한 웨이블릿 변환의 주 원리는
특정 임계값 아래의 모든 계수는 진짜 신호를 표현하는데 있어 노이즈로 생각해 제거한뒤, 역 변환을 통해 데이터 셋을 복구하는 것이다.
pywt라는 라이브러리에 여러 웨이블릿 함수들이 있고, 이 함수에 대한 그래프를 그려볼 수도 있다. 이건 필요시 차후 설명서를 봐도 좋을 것 같다.
pywt.families(short=False)를 하면 전체 종류를 확인할 수 있다.
웨이블릿 변환을 적용하는 방법은 꽤 간단하다.
wavelet = "db6"
coefficients = pywt.wavedec(signal, wavelet, mode='per')
이 두줄을 통해, 원하는 웨이블릿을 적용해 수익률 신호를 분해한다.
coefficients[1:] = [pywt.threshold(계수, value=scale*signal.max(), mode='soft') for i in coefficients[1:]]
이후, 변환 계수를 산출한다.
reconstructed_signal = pywt.waverec(coefficients, wavelet, mode='per')
이 , 임계값이 넘는 모든 계수를 제거해, 역변환을 해 신호를 제구축한다.