머신러닝 13

파이썬을 활용한 애플 주가수익률 예측 분석 - (1). 데이터 확인 및 예측 안정성 확보

본 시리즈는 파이썬으로 시계열 자기상관 특성 및 마켓, 안전자산, 대체자산 등과의 동시간대 연관성을 분석하고 Apple Inc(AAPL) 주가를 예측한다. 튜토리얼 작성을 위해 금융전략을 위한 머신러닝(한빛미디어), 실전 시계열 분석(한빛미디어) 외 야후파이낸스 및 FRED API 공식문서 등을 참고하였으며 작업 과정에서 추가로 참고하게 되는 자료들은 이후 각 편 내에 서술하도록 하겠다. 1편에서는 간단히 데이터를 불러와 누락된 분포를 살피고, 시계열 기간을 동일하게 맞춘다. 그 다음, 예측에 필요한 데이터를 추출하기 위한 시계열 분석 작업을 간단히 수행하도록 한다. Step 1. Import Packages numpy와 pandas를 포함해 seaborn, matplotlib은 데이터 분석을 위해 언제..

금융 분석을 위한 파이썬 프로그래밍 - 04. 머신러닝 예측 모델링

본 장에서는 기계학습 방법론에 대해 간단히 알아본 다음, 파이썬 패키지로 제공되는 주요 기계학습 알고리즘을 사용해 보도록 하겠습니다. Step 1. 데이터 불러오기 이번에도 역시 테슬라 주가를 불러오는 것부터 시작합니다. ​ Step 2. 예측값 정의 2-1. 기계학습 기계학습은 함수를 만드는 방식 중 하나입니다. y=ax+b라는 함수가 있습니다. 만약, 출력값이 입력값 대비 항상 2배가 되어야 하는 함수를 구해야 한다면 단순하게 a=2, b=0으로 설정하면 됩니다. 하지만 출력값이 입력값 대비 언제는 2배가 될 수도 있지만, 경우에 따라 1.5배가 되거나 어쩌면 -2배도 될 수도 있다면 함수를 어떻게 정의해야 할까요? 이때는 확률적 방법론을 사용해야 합니다. 경우에 따라 확률적으로 1.5배가 되거나 -..

금융 분석을 위한 파이썬 프로그래밍 - 02. 차트 시각화, 시계열 분해, 자기상관분석

Step 1. 데이터 불러오기 이제 데이터 불러오는 것은 어렵지 않습니다. yfinance 라이브러리를 사용해 테슬라(TSLA) 주가 정보를 가져오겠습니다. stocks 인스턴스를 생성했고, 객체 내에 내장된 history() 함수로 2010년부터 최근 데이터까지 가져왔습니다. (작성 시점: 2022-07) ​ Step 2. 차트 시각화 파이썬에서 사용하는 대표적인 시각화 라이브러리는 matplotlib과 seaborn이 있습니다. 여기서는 matplotlib을 사용해 차트를 그리는 법을 배워보겠습니다. 참고로 seaborn은 matplotlib을 기반으로 더 다양한 색상과 통계 차트를 제공하고 있으니, 검색해 보시길 권장 드립니다. 처음 보는 라이브러리를 사용하게 되면 어떻게 구현되어 있는지 깃허브 등..

금융 분석을 위한 파이썬 프로그래밍 - 01. 라이브러리, 데이터프레임, 인덱싱

Step 1. 라이브러리 우리가 개발을 할 때, 모든 코드를 한 땀 한 땀 장인의 정신으로 구현해야 한다면 실력과 무관하게 금세 지쳐버릴 것입니다. 우리가 작성하려고 하는 코드가 매우 정형적이고 일반적으로 자주 쓰이는 것들이라면 누군가는 반드시 함수나 클래스 형태로 이미 구현해두었을 것입니다. 그리고 우리는 이것을 라이브러리라는 형태로 가져와서 쓸 수 있습니다. 심지어 무료로 말입니다. ​ 야후 파이낸스에 있는 주가 정보도 라이브러리라는 것을 사용하면 손쉽게 가져올 수 있습니다. 누군가 이미 그러한 작업을 한 적이 있고, 개발한 코드를 모두가 사용할 수 있게 공개해둔 것이지요. 참고로 아래 이미지, 깃허브라는 코드 저장소에서 실제 구현된 코드를 눈으로 볼 수도 있습니다. yfinance라는 이름의 라이브..

LGBM

LGBM(Light Gradient Boosting Machine) LightGBM's documentation LightGBM 주요 파라미터 정리 LightGBM이란? LGBM은 'Light'(==fast)하고 또 'Light'(==low memory)하다. 그만큼 또 예민하다는 단점이 있다. 예민하다는 것은 과적합(Overfitting)되기 쉽다는 것이며 1만 개 이하의 적은 데이터셋을 다루기에는 적합하지 않은 모델이다. LGBM을 사용할 때에는 과적합에 특히 유의해야 하며 아래의 하이퍼파라미터들을 통해 학습을 조절할 필요가 있다. max_depth Tree의 깊이가 깊을 수록 당연하게도 train set에 더 가까운 가중치를 학습하게 된다. 다른 모델을 사용할 때보다 현저하게 max_depth를 줄..

xgboost

XGBoost(eXtreme Gradient Boost) 캐글로 배우는 머신러닝 #10 XGBoost 파이썬 Scikit-Learn 형식 XGBoost 파라미터 XGBoost 알고리즘의 개념 이해 머신러닝 앙상블(ensemble) xgboost란? XGBoost는 기존 Gradient Boosting 방식의 느리고, training set에 overfitting되는 문제를 어느 정도 해결한 고성능 ensemble 기법이다. 규제 Overfitting을 방지하도록 하이퍼파라미터를 통해 규제할 수 있다. reg_alpha : L1 규제 reg_lambda : L2 규제 early stopping 주로 딥러닝 학습에 파라미터로 사용되는 early stopping을 지원한다. model.fit(X_train, ..

sklearn - GridSearchCV

GridSearchCV reference : sklearn.model_selection.GridSearchCV(scikit-learn.org) 모형최적화, 데이터사이언스스쿨 [Chapter 4. 분류] 랜덤포레스트(Random Forest) 머신러닝 모델의 하이퍼파라미터를 조정하는 일은 매우 까다롭다. 아주 미묘한 파라미터 값 변화가 모델의 성능을 좌우하고, 모델마다 다양한 파라미터들이 유기적으로 얽혀있기 때문이다. GridSearchCV를 통하면 다양한 하이퍼파라미터 값을 미리 입력하고, 최적의 값과 해당 값으로 표현된 모델 정확도를 돌려받을 수 있다. from sklearn.model_selection import GridSearchCV params = {'n_estimators' : [10, 100..

sklearn - GradientBoostingClassifier

GradientBoostingClassifier Gradient Boosting Model sklearn.ensemble.GradientBoostingClassifier 지도학습 - 그래디언트 부스팅 2.3.6 결정 트리의 앙상블, 텐서 플로우 블로그 GradientBoosting 모델은 RandomForest 모델과 달리 learning_rate를 통해 오차를 줄여나가는 학습 방식을 사용한다. RandomForest 모델은 말그대로 Random하게 Bagging, Tree를 생성한다. 하지만 GradientBoosting 모델은 Tree를 생성할 때마다 이전 Tree보다 오차를 줄이게 된다. 또한 개별 Tree의 깊이는 얕게 만들어내면서 오차가 줄어든 Tree를 계속해서 연결해나가는 구조다.(때문에, ..

K-Nearest Neighbor Algorithm

K-Nearest Neighbor Algorithm(최근접 이웃 알고리즘) Reference : K-NN 알고리즘(K-최근접이웃) 개념 파이썬 라이브러리를 활용한 머신러닝, 한빛미디어 Classification Regression 1. Classification (n = 1) 기존에 분포하는 값 중 가장 가까운 값의 label을 현재 Test값의 label로 지정한다. (n > 1) 기존에 분포하는 값 중 가장 가까운 순서대로 n개의 값을 찾고, 가장 많이 나오는 label을 현재 Test값의 label로 지정한다. ex. N = 3일 때, 탐색 방식 ex. N = 3일 때, 코드 예시 from sklearn.model_selection import train_test_split X, y = mglear..

sklearn - RFE

RFE (recursive feature elimination) Reference : Python 데이터 분석 실무 04-06.모델 성과 개선 (WikiDocs) Simple, yet, Powerful Bankrupt Prediction Model sklearn.feature_selection.RFE, scikit-learn.org RFE는 주요 Feature를 선별해내는 기법 중 하나로 이름(Recursive feature elimination) 그대로 '반복적으로 feature를 제거해나가는' 방식이다. 대표적인 머신러닝 라이브러리 sklearn에서는 feature_selection 모듈을 제공한다. RFE는 아래와 같이 해당 모듈에서 import 할 수 있다. from sklearn.feature_..

1 2