전체 글 62

Nlinear / SCInet 알고리즘

Nlinear 알고리즘은 Nonlinear AutoRegressive Network with eXogenous inputs(외부 입력이 있는 비선형 자기 회귀 신경망)의 약어입니다. 이 알고리즘은 먼저 입력 데이터를 이동 평균 등의 전처리 과정을 거쳐서 데이터를 보다 안정적으로 만듭니다. 그리고 입력 데이터와 이동 평균 데이터를 기반으로 여러 개의 은닉층과 출력층으로 구성된 인공 신경망을 학습합니다. 이 인공 신경망은 과거의 입력과 출력 데이터를 기반으로 다음 시점의 값을 예측하는 방식으로 동작합니다. 이 때, Nlinear 알고리즘은 시간 스케일에 대한 자유도가 높아서 데이터의 복잡도나 주기성을 보다 정확하게 예측할 수 있습니다. 반면, SCInet 알고리즘은 Seasonal Input-Output N..

카테고리 없음 2023.04.14

시계열 데이터에서 반복 패턴을 찾는 여러 가지 방법

Autocorrelation Function Autocorrelation Function(ACF)는 시계열 데이터에서 지연(lag) 시간에 따라 자기 상관 관계를 계산하는 함수입니다. 이 함수는 시계열 데이터에서 반복 패턴을 찾는 데 유용합니다. Autocorrelation Function은 시계열 데이터의 자기상관 함수를 계산하는 것을 의미합니다. 자기상관 함수는 시간 간격의 길이를 나타내는 랙(lag)에 대해 시계열 데이터가 서로 관련되어 있는 정도를 측정합니다. 자기상관 함수를 계산하려면, Pandas의 autocorr() 메서드를 사용합니다. Rolling Window Rolling Window는 시계열 데이터에서 일정 시간 간격의 평균 값을 계산하는 데 사용됩니다. 이동 평균을 계산하는 데 사용..

카테고리 없음 2023.04.11

XGBoost 알고리즘

XGBoost란? XGBoost는 Gradient Boosting 알고리즘의 한 종류입니다. Gradient Boosting은 여러 개의 결정 트리를 사용하여 앙상블 모델을 만드는 방식입니다. 각 트리는 이전 트리의 오차를 보완하도록 만들어지며, 이를 통해 모델의 예측 성능을 향상시킵니다. XGBoost는 Gradient Boosting의 장점을 살리면서, 더욱 빠르고 정확한 모델을 만들 수 있도록 개선된 알고리즘입니다. 이를 위해 다양한 기능을 제공하며, 병렬 처리와 메모리 최적화를 지원합니다. XGBoost의 사용 예시 다음은 XGBoost를 사용한 예시 중 2개입니다. 예시 1: 주가 예측 XGBoost를 이용하여 주가를 예측하는 모델을 만들어보겠습니다. 이를 위해, 2015년부터 2020년까지의 ..

카테고리 없음 2023.04.10

DFS 알고리즘

DFS 알고리즘이란? DFS(Depth First Search)는 그래프를 탐색하는 알고리즘 중 하나로, 하나의 경로를 따라 최대한 깊게 들어가면서 그래프를 탐색합니다. 이때 스택(Stack) 자료구조를 사용하여 구현할 수 있습니다. DFS는 깊이 우선 탐색 알고리즘이기 때문에, 그래프의 깊은 부분부터 탐색을 시작합니다. 그리고 현재 노드의 인접한 노드들을 스택에 push한 다음, 스택에서 pop하여 방문한 노드는 방문한 노드로 표시합니다. 이후 방문한 노드의 인접한 노드들을 스택에 push하고, 스택에서 pop한 다음 방문합니다. 이 과정을 반복하여 모든 노드를 탐색합니다. DFS는 그래프의 구조를 파악할 수 있으며, 해결해야 하는 문제가 그래프 형태로 표현될 때 많이 사용됩니다. 예를 들어, 그래프에..

카테고리 없음 2023.04.09

Attention 기법

Attention 기법 개요 Attention 기법은 딥러닝 모델에서 입력 데이터의 중요한 부분을 강조하기 위한 기법으로, 주로 Sequence-to-Sequence 모델에서 사용됩니다. Sequence-to-Sequence 모델은 입력 시퀀스를 출력 시퀀스로 변환하는 모델로, 예를 들어 기계 번역이나 챗봇 등에서 많이 사용됩니다. Attention 기법은 이러한 Sequence-to-Sequence 모델에서 입력 시퀀스의 각 부분이 출력 시퀀스에 얼마나 중요한지를 계산하여, 출력 시퀀스를 생성하는 데에 사용됩니다. Attention 기법 구현 방법 Attention 기법은 다양한 방법으로 구현할 수 있습니다. 그 중에서도 가장 대표적인 방법은 Bahdanau Attention과 Luong Attenti..

카테고리 없음 2023.04.08

시계열 데이터 전처리_이동평균_SMA/EMA

시계열 데이터는 시간에 따라 변하는 데이터를 말합니다. 시계열 데이터를 분석하기 전에는 일반적으로 시계열 데이터의 전처리를 해야 합니다. 이동평균은 시계열 데이터를 부드러운 추세(trend)와 계절성(seasonality) 성분으로 분해하는데 사용됩니다. 이동평균 이동평균(Moving Average)은 특정 기간 동안의 가격, 거래량, 수익률 등의 평균 값을 구하는 방법입니다. 이동평균의 구간을 크게 하면 추세를 보다 부드럽게 나타내며, 구간을 작게 하면 변동성이 큰 데이터에서 뾰족한 변화를 잘 잡아낼 수 있습니다. 간단하게 SMA를 적용한 예제 코드를 보면 다음과 같습니다. 위 코드에서 rolling() 함수는 이동평균을 계산하기 위한 함수입니다. window 인자는 이동평균을 계산하기 위한 기간을 설..

카테고리 없음 2023.04.07

Wavelet 변환을 이용한 시계열 데이터 특징 추출

Wavelet 변환을 이용한 시계열 데이터 특징 추출 Wavelet 변환은 시계열 데이터를 다양한 주파수 대역으로 분해하여 각 주파수 대역에 대한 시계열 데이터의 특징을 추출할 수 있는 방법입니다. 이를 이용하여 시계열 데이터의 특징을 추출하고, 이를 기반으로 예측 모델을 개발할 수 있습니다. Wavelet 변환의 개념 Wavelet 변환은 시간과 주파수 영역에서 모두 지역화된 변환이며, 시간과 주파수에 대해 동시에 분석이 가능합니다. Wavelet 변환은 시계열 데이터를 저주파 대역(Low Frequency Band)과 고주파 대역(High Frequency Band)으로 분해하고, 각 대역에서 특징을 추출할 수 있습니다. Wavelet 변환은 다음과 같이 표현할 수 있습니다. 여기서 $f(t)$는 변..

카테고리 없음 2023.04.05

스케줄 알고리즘

스케줄 알고리즘은 다양한 분야에서 활용됩니다. 운영 체제(OS), 데이터베이스, 네트워크 등에서는 일련의 작업들을 어떤 순서로 처리할 것인지를 결정하는 데 활용됩니다. 이를 통해 작업 처리 시간을 최소화하거나 시스템 자원을 최대한 활용할 수 있습니다. 스케줄 알고리즘에는 다양한 종류가 있지만, 가장 기본적인 형태는 FCFS(First-Come-First-Serve) 알고리즘입니다. 이 알고리즘은 작업이 도착한 순서대로 처리하는 방식으로, 작업의 처리 시간이 길어질수록 다음 작업의 대기 시간이 증가합니다. 그 외에도 SJF(Shortest-Job-First), RR(Round Robin), Priority Scheduling, Multilevel Queue Scheduling 등의 알고리즘이 있습니다. 이..

카테고리 없음 2023.04.04

스케줄 알고리즘에 자주 사용한 문법 2가지

시계열 데이터를 분석하고 예측하기 위해서는 다양한 알고리즘들을 적용할 수 있습니다 그 중에서도 시계열 스케줄 알고리즘은 빠르게 변화하는 데이터를 다루는데 특히 유용한 알고리즘 중 하나입니다 이번 글에서는 시계열 스케줄 알고리즘을 만들 때 유용하게 사용할 수 있는 2가지 문법에 대해 알아보도록 하겠습니다 1. get_loc() 시계열 데이터를 다룰 때는 자주 인덱스를 사용하게 됩니다. Pandas에서는 시계열 데이터의 인덱스를 효율적으로 처리할 수 있도록 다양한 메소드를 제공합니다. 이번에는 get_loc() 메소드와 get.loc()-1 메소드에 대해 알아보겠습니다. get_loc() 메소드는 인자로 전달된 값의 인덱스를 반환합니다. 예를 들어, 다음과 같은 시계열 데이터가 있다고 가정해 봅시다. get..

카테고리 없음 2023.04.04

스케줄 알고리즘에 자주 사용한 문법 3가지

시계열 데이터를 분석하고 예측하기 위해서는 다양한 알고리즘들을 적용할 수 있습니다 그 중에서도 시계열 스케줄 알고리즘은 빠르게 변화하는 데이터를 다루는데 특히 유용한 알고리즘 중 하나입니다 이번 글에서는 시계열 스케줄 알고리즘을 만들 때 유용하게 사용할 수 있는 3가지 문법에 대해 알아보도록 하겠습니다 1. .eq().idxmax() 시계열 데이터에서 가장 큰 값을 가지는 시점을 찾기 위해서는 .eq().idxmax() 문법을 사용할 수 있습니다. 이 문법은 Series나 DataFrame에서 값이 일치하는 위치를 찾아주는 함수입니다. 그리고 그 중에서도 가장 큰 값을 가지는 위치를 반환합니다. 예를 들어, 다음과 같은 시계열 데이터가 있다고 가정해보겠습니다 위 코드는 2022년 1월 1일부터 2022년..

카테고리 없음 2023.04.02