일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 자기소개서
- 데이터사이언스학과
- pandas
- 커리어전환
- 데이터 사이언티스트
- 파라미터 튜닝
- 하이퍼 파라미터 튜닝
- 경력 기술서
- 머신러닝
- 랜덤포레스트
- 데이터사이언스
- 이력서 첨삭
- 퀀트 투자 책
- 데이터 사이언스
- AutoML
- 판다스
- 퀀트
- sklearn
- 데이터사이언티스트
- 파이썬
- 코딩테스트
- 하이퍼 파라미터
- 데이터분석
- 대학원
- 사이킷런
- 베이지안 최적화
- 주요 파라미터
- 경력기술서 첨삭
- 주식데이터
- 주가데이터
- Today
- Total
목록분류 전체보기 (119)
GIL's LAB
본 포스팅에서는 투자시에 자주 참고하게 되는 EPS, PER, 영업이익률 등의 투자지표를 크롤링하는 방법을 소개한다. 먼저, 아이투자(http://www.itooza.com/)에 접속하자. 접속하면 아래와 같은 화면을 볼 수 있다. 빨간 박스로 표시한 검색창에 관심있는 종목명 혹은 종목코드를 검색해보도록 하자. 여기서는 예제로 SK하이닉스를 검색하였다. 검색하면 아래와 같은 화면을 볼 수 있다. 보다시피, SK하이닉스의 다양한 투자지표가 테이블 형태로 정리된 것을 볼 수 있다. 본 포스팅에서는 저 테이블을 크롤링할 것이다. 다만, 투자지표가 컬럼명으로 오는 것이 추후 분석에 편할 것 같아 전치를 시켜서 저장하도록 한다. 자, 그러면 이제 파이썬으로 저 테이블을 크롤링해보자. 먼저 필요한 모듈을 다음과 같..
이번 포스팅에서는 지난 포스팅에서 설계한 실험을 수행하기 위한 코드를 소개한다. 사실 실험 1의 코드와 매우 유사하기에 코드를 작성하고 구동하는데 매우 적은 시간이 소요되었다. 그러면 곧바로 코드 소개로 넘어가자. 먼저, 필요한 모듈을 임포트한다. 이전 코드와 다르게 MAE를 임포트하였고, 회귀모델만 임포트하였다. import os import pandas as pd import numpy as np from sklearn.metrics import mean_absolute_error as MAE from sklearn.linear_model import LinearRegression as LR import warnings 그리고 워닝을 무시하고, 데이터가 있는 경로로 설정한다. # 주가 데이터가 있는 ..
이번 포스팅에서는 이전 포스팅에서 설명한 이전 종가를 가지고 미래 종가를 예측하는 파이썬 코드를 설명한다. 실험 결과는 다음 포스팅에서 정리하도록 한다. 먼저, 실험에 필요한 모듈을 불러오고 워닝을 무시한다. import os import pandas as pd import warnings import itertools from statsmodels.tsa.stattools import adfuller from statsmodels.tsa.stattools import grangercausalitytests as GCT os.chdir(r"C:\Users\Gilseung\Desktop\Jupyter\GILLAB\QUANT_DATA\201609~202108\주가") warnings.filterwarning..
개요 이번 실험에서는 지난 실험 실패를 교훈삼아 종가를 사용하는대신 종가의 등락폭을 사용하여 실험을 진행하고자 한다. 실험 구성은 실험 1과 거의 유사하지만, 해석을 위해서 또 어차피 회귀모델 성능이 좋을 것이라 예상되니 회귀모델만 사용하도록 한다. 또한, 이번에는 실험 결과를 바탕으로 다양한 백테스트를 추가할 예정이다. 백테스트는 (4) 백테스트라는 제목으로 추후에 포스팅하겠다. 준비물 코스피/코스닥 종목별 종가의 등락폭 데이터 (기간: 2016년 9월 1일 ~ 2021년 8월 31일) 실험 목표 이전 종가의 등락폭으로 미래 종가의 등락폭 예측이 어느정도 가능해보이는 종목을 파악한다. 종목별로 적절한 예측 모델이 무엇인지 파악한다. 종목별로 적절한 lag를 파악한다. lag는 결국 아래 그림과 같이 입..
드디어 첫 번째 실험이 끝났고, 실험 결과를 보자마자 뭔가 잘못되었다는 걸 알았습니다. 등락이 심하지 않은 종목의 경우에는 당연히 다음날 종가를 오늘의 종가로 예측하더라도 퍼센트 오차가 크기 어렵다는걸 생각을 못했네요. 그래서 원래 생각했던 것에 비해 MAPE가 매우 작았고, 코스피 종목까지만 실험을 진행했습니다. 다음 실험에서는 등락폭을 예측하도록 모델링을 해야겠네요. 좋은 것을 배웠다고 생각하고, 실험 결과를 정리해보겠습니다. 망한 실험도 실험이니까요...ㅜㅜ 실험 결과 정리 첫 번째 실험 결과 raw 데이터는 아래와 같습니다. 이제 몇 가지를 확인해볼게요. 먼저, 가장 우수한 성능을 보였던 모델과 lag의 분포를 확인해보겠습니다. 모델은 신경망과 선형회귀가 각각 1, 2등을 했습니다. 바로 이전 시..
본 포스팅에서는 한국경제신문에서 제공하는 한경컨센선스에 업로드된 2016년 9월 1일부터 2021년 8월 31일까지의 증권사 리포트를 크롤링하는 방법을 소개한다. 정확히는 리포트 파일이 아니고, 리포트 요약 자료를 크롤링하는 방법을 소개한다. 한경컨센선스 (http://consensus.hankyung.com/)에 먼저 접속하면 아래와 같은 페이지를 볼 수 있다. 기업 리포트, 산업 리포트, 시장 리포트 등 다양한 리포트를 볼 수 있다. 본 포스팅에서는 기업 리포트에 초점을 두도록 한다. 기업 REPORT 아이콘을 클릭한 뒤, 상단에 날짜를 2016년 9월 1일부터 2021년 8월 31일까지로 바꾸면 아래와 같은 화면을 보게 된다. 먼저 예시로서 지금보는 페이지를 크롤링해서 저장하도록 하자. 가져올 부분..
본 포스팅에서는 시계열 분류에서 사용되는 개념인 쉐이플릿(Shapelet)에 대해 소개하고, 다음 포스팅에서는 쉐이플릿 탐색에 대해 다뤄보도록 한다. 쉐이플릿은 최근 많은 시계열 분석 과제에서 직관적이고 설명 가능하다는 특성덕분에 많은 주목을 받고 있다. 우리 회사에서도 관심을 가지고 있고, 나도 쉐이플릿과 관련된 논문을 준비중이다. 시계열 분류란? 쉐이플릿은 시계열 분류(time series classification)에 사용되는 특징이므로, 시계열 분류에 대해 먼저 소개한다. 시계열 분류는 말그대로 시계열을 분류하는 지도학습 과제로, 샘플이 시계열이라는 것을 빼면 일반적인 분류와 크게 다를 것은 없다. 그러니까 아래 그림에서 왼쪽에 있는 시계열 인스턴스가 입력되면, 이 인스턴스의 라벨이 A인지 B인지..
두 번째 실험에서는 종목 간 선후행 관계가 존재하는지를 확인하고자 한다. 가령, 한 종목의 주가가 올라가면 다른 종목의 주가가 뒤따라서 올라가는 그러한 관계를 확인하고자 한다. 그럼 실험 대상과 방법에 대해 알아보자. 실험 대상 종목: 2016년 9월 1일부터 2021년 8월 31일까지 주가 데이터가 있는 코스피 종목 (즉, 2016년 9월 1일 이전에 상장해서 현재까지 상장폐지되지 않은 종목) 구간: 2016년 9월 1일 ~ 2021년 8월 31일 (이하 전구간) / 2020년 9월 1일 ~ 2021년 8월 31일 (이하 최신구간) 실험 이해를 위한 배경 지식 시계열의 정상성 (stationarity)이란 시계열의 확률적인 성질들이 시간의 흐름에 따라 변하지 않는다는 것을 의미하며, 정상 시계열은 정상..
본 포스팅에서는 금융 데이터를 수집하는데 많이 사용되는 파이썬 패키지인 FinanceDataReader를 이용하여, 주식 및 다양한 경제 지표 데이터를 수집하는 방법을 소개한다. API나 크롤링을 사용하는 것에 비해, 굉장히 손쉽게 수집할 수 있어, 일별 데이터만 수집한다면 이 패키지를 사용하는 것을 추천한다 (추후에 반드시 API를 이용하여 분/틱 데이터 수집하는 것을 공유해야겠다..) 패키지 설치 Anaconda prompt를 실행하여 pip install finance-datareader를 입력하여 아래와 같이 패키지를 설치한다. 환율 데이터 수집 환율 데이터는 fdr.DataReader(환율, 시작날짜, 종료날짜)를 입력하여 수집할 수 있다. 단, 종료날짜를 입력하지 않으면 시작날짜부터 현재날짜까..
이번 포스팅에서는 ipynb 파일에서 실행 결과를 초기화하는 방법을 소개한다. 이 방법은 코드를 구동하다가 출력 결과가 너무 많아 (print 문을 너무 많이 사용하거나, 그림을 많이 사용했거나 등), 브라우저에서 outofmemory 에러가 발생할 때 유용하다. 일단 이 오류가 발생하면 ipynb 파일 사이즈도 너무 커져있는 상태이기 때문에, 파일이 잘 안 열리는 현상이 있다. 이러한 현상이 발생했을 때, 아래 코드를 이용하면 출력 결과를 모두 삭제해서 파일 크기를 줄일 수 있다. import sys import io import os from IPython.nbformat.current import read, write def clear_notebook(fname, new_fname): # 기존 파일..