파이썬(20)
-
Kernel Regression
Kernel Regression이라고 불리는 것 중에는 크게 2가지 방안이 있습니다. 첫번째는 Non-parametric한 방법으로 어떠한 함수의 형태를 Fix하지 않고 Kernel을 Weight으로써 활용하여 방안입니다. 두번째는 Kernel trick Regression이라고 하여, Input X를 Kernel함수를 통하여 특정값에 Mapping하여 해당 Mapping된 Value들을 활용하여 OLS추정법을 활용하여 target Y를 예측하는 것입니다. Python의 sklearn은 Kernel Ridge Regression(KRR) method를 제공하는데 두 번째 방안과 같이 작동을 하게 됩니다. 먼저 Non-parametric 방안에 대해서 정리해보도록 하겠습니다. [Kernel Regressi..
2021.03.23 -
선형 판별 분석(Linear Discriminant Analysis, LDA) > 차원축소
LDA는 Classification뿐만 아니라 차원축소에서도 활발히 활용되고 있는 방법론입니다. LDA는 Class가 존재할 때 Class가 최대한 잘 분리되도록 Discriminant direction을 찾아서 Projection을 하는 방법입니다. LDA를 활용한 차원축소의 사상은 같은 Class들의 데이터는 분산이 최소화되고 다른 Class간에는 분산이 최대화 되도록합니다. 다시 말하면 같은 Class끼리는 붙어 있게 다른 Class간에는 멀리 떨어져 있는 Vector를 찾아서 거기에 데이터들을 Projection하는 것입니다. 오른쪽에 그림과 같이 Class가 잘 구분되도록 Projection을 하는 것입니다. 먼저 Class가 2개인 경우에 어떻게 discriminant direction을 도출..
2021.02.22 -
선형 판별 분석(Linear Discriminant Analysis, LDA)
LDA와 Logistic Regression같은 경우는 각 Class에 Input x가 속할 확률을 예측/추정하는 형태로 Classification이 수행됩니다. [Linear Discriminant Analysis, LDA] 여기서 LDA는 $Pr(X|G)$를 톻한 Bayes Rule적용을 통해 X가 주어졌을 때 특정 Class에 속할확률 $Pr(G|X)$를 구하는 문제로 분류문제를 접근합니다. LDA같은 경우는, 관측수가 적고 Input X가 정규분포를 근사할 때 효과적으로 작동하게 됩니다. Bayes Rule적용을 통해 어떻게 사후 확률을 추론하는지를 정리해보도록 하겠습니다. 이 때 각 확률은 아래와 같이 표현하겠습니다. 최종적으로, 아래와 같이 X가 주어졌을 때 특정 Class에 속할확률 $Pr(..
2021.02.21 -
Dimension Reduction Method(Principal Components Regression, Partial Least Squares)
우리가 많은 Input 변수를 가지고 있을 때, Subset Selection, Shrinkage Method는 활용하는 Input 변수의 수를 줄여주는 역할을 하였습니다. 반면에 Dimension Reduction Method는 특정 Input 변수를 활용시 제거하는 것이 아니라, 우리가 가지고 있는 Input 변수의 차원을 압축하여 활용하는 방법입니다. Dimension Reduction Method는 우리가 가지고 있는 input변수 $X$의 선형결합을 통해 새로운 변수 $Z$를 만들어냅니다. 대표적인 방법으로는 Principal Components Regression(PCR), Parital Least Squares(PLS)가 있습니다. [Principa Components Regression(P..
2021.02.03 -
LSTM을 활용한 주가 예측
RNN의 경우 예측해야 하는 지점과 이용하는 정보의 시작지점의 차이가 크면, 역전파시 그래디언트의 소실이 커져 효과적으로 학습이 되지 않을 수 있습니다. 이러한 한계를 극복하기 위해서 나온 방법이 LSTM으로 적절하게 과거정보를 잊고 현재정보를 기억하여 그래디언트의 소실을 막으면서 장기간의 데이터를 학습 할 수 있습니다. 따라서, 이번 포스트에서는 LSTM을 활용하여 주가를 한번 예측해보록 하겠습니다. 이번에는 SK이노베이션의 주가정보를 활용하여 예측을 해보겠습니다. 먼저 이전 포스트에서 다뤘던 내용과 같이, 필요한 모듈 및 데이터를 입력하고, 지정한 Seqeunce로 학습 및 예측에 활용할 데이터를 만듭니다. import pandas as pd import numpy as np import torch ..
2020.08.02 -
CNN을 활용한 주가 방향 예측
이번 포스팅에서는 시계열 데이터에 Convolutional neural network을 적용하여 주가 방향을 예측해보도록 하겠습니다. Convolutional neural network은 주로 이미지 분석에 많이 활용되지만, 간간히 주가를 예측하기 위해도 활용되는 것 같습니다. Research paper들을 참조하여 모델을 구성한 것은 아니고, CNN을 활용해보는 정도에 의의를 두고자 합니다. 향후 시간을 내서 paper들을 읽고 체계적으로 구성해보는 것도 좋을 것 같습니다. 이번에는 삼성전자 대신, SKT주가를 활용하고자 합니다. 좀 더 긴 기간의 가격 정보를 활용하고자 하는데, 삼성전자의 경우 액면분할이 이루어진지 꽤 최근이라고 볼 수 있기 때문에 긴 기간의 주가를 활용하기는 부적절하다고 판단했습니다..
2020.07.30