본문 바로가기

공부

(7)
도커 컨테이너의 아이피 고정(docker network) 1부 1부 - 도커 네트워크 생성 개발한 딥러닝 모델을 남들이 잘 쓸 수 있도록 배포하는 것은 모델을 만드는 과정만큼 까다롭다. 딥러닝 모델은 무겁고, 연산량이 많기 때문에 모델을 많은 사람이 동시에 사용하는 환경에서는 여러 장비로 분산 처리 하는 것이 좋다. 우리는 GPU가 4장씩 내장된 서버 2개를 제공받았고, 딥러닝 추론을 하는 8개의 도커 컨테이너, 요청 분산을 위한 NGINX컨테이너 2개를 만들어서 요청을 처리했다. NGINX는 웹 서버 프로그램으로 백엔드 서버로 들어오는 요청을 총 8개 컨테이너에 골고루 분산시켜 주는 역할을 한다. 그런데 가끔 서버를 리부팅 한 후에 백엔드서버 - NGINX - 딥러닝추론 컨테이너의 통신이 종종 먹통이 되는 사례가 발생했다. 원인을 분석해보니 각 도커 컨테이너의 I..
주가 예측 연구의 종류 정리 1 본 글에서는 프로그래밍을 활용한 주가 예측 분야의 다양한 방법론을 설명하고 해당 방법론들의 장단점을 정리해보고자 한다. 이후에는 가볍게 구현한 코드를 통해 좀 더 디테일하게 설명할 예정이다. 목차는 다음과 같다. 1. 규칙 기반 매수,매도 모델 2. 딥러닝 기반 주가 예측 모델 2.1 딥러닝 기반 주가 예측 모델(NLP) 2.2 딥러닝 기반 주가 예측 모델(기술적 지표) 2.3 딥러닝 기반 주가 예측 모델(강화학습) 3. 기타 1. 규칙 기반 매수,매도 모델 규칙 기반은 알고리즘 매매/ 자동 매매/시스템 트레이딩 등 개념과 비슷하다. 하지만 본 글에서 굳이 '규칙' 이라는 단어를 사용한 것은 특정한 규칙에 의해 작동하지 않는 딥러닝 모델과의 구분을 위해 사용했다. 규칙 기반의 모델은 단어 그대로 특정 규..
파이썬 캔들 차트 구현 주가 분석 연구를 하게 되면 차트를 통해 시각화해야하는 경우가 많다. 그러나 캔들 차트는 구현이 까다로워서 대중적으로 사용되지는 않았었는데, FinaceDataReader 라이브러리에 차트 기능이 추가되어 간편하게 차트 시각화가 가능해졌다. 직접 사용해 본 결과, 코드 한줄로도 간단한 캔들 차트가 완성되어 무척 신기했다. 그러나 각 캔들의 정확한 날짜를 알기 위해서는 줌 인 기능을 통해 엄청 크게 확대한 후 눈으로 짐작해야해서 매우 불편했다. 따라서 가격 캔들과 거래량 봉에 마우스를 갖다대면 날짜와 가격을 알 수 있도록 코드를 커스터마이징 했다. 코드는 다음과 같으며 깃허브에도 공유할 예정이다. 사용하기 위해서는 FDR의 chart.plot 함수를 재정의 하거나 아래 코드의 함수를 자신만의 이름으로 바꿔..
파이썬을 이용해 급등 종목 추출하기 In [8]: from IPython.core.display import display, HTML display(HTML("")) In [1]: import pandas as pd import numpy as np import FinanceDataReader as fdr import matplotlib.pyplot as plt from tqdm import tqdm from datetime import datetime from dateutil.relativedelta import relativedelta FinanceDataReader를 이용해 종목 데이터 전체를 가져오기¶ KRX : KRX 종목 전체 KOSPI : KOSPI 종목 KOSDAQ : KOSDAQ 종목 KONEX : KONEX 종목 In [..
퀀트란? 주식을 분석하는 방법에는 기본적 분석과 기술적 분석이 있다. 기본적 분석은 기업의 재무정보를 활용해서 기업 가치를 매기고, 기업 가치와 주식의 가격을 비교하여 기업 가치에 비해 주가가 낮을 경우 매수, 높을 경우 매도 하는 전략을 취한다. 기술적 분석은 이와는 대조적이다. 차트를 이용하여 주식을 분석하는 방법을 사용하는데 이동평균, MACD, RSI 와 같은 보조 지표를 사용하기도 하고 눌림목, 장대양봉 등 특정 패턴의 발생을 이용한다. 아래 첨부된 이미지는 기술적 분석 방법에서 사용되는 저항선에 관련된 내용과 관련이 있는데, 기술적 분석 방법에는 가격이 상승하지 못하는 저항선과 가격이 떨어지지 않는 지지선이라는 개념이 있다. 아래 그림은 저항선에 막혀서 주가가 하락하는 이미지 예시다. 기술적 분석은 수..
알고리즘이란? 우리는 소프트웨어 분야와 관련 여부에 상관없이 알고리즘이라는 단어를 참 많이 듣는다. 아마도 정부에서 강조하는 4차산업 혁명이나, 코딩교육 의무화등 소프트웨어가 우리 일상속에 많이 스며든 탓인것 같다. 알고리즘이라는 말의 어원은 의외로 사람 이름이다. 중세시대 페르시아의 수학자 알-콰리즈미(750~850년경)에서 비롯되었다고 알려졌으며, 알 콰리즈미는 이차방정식의 풀잇법과 인수분해를 개발한 사람이다. 그럼 우리는 어떤 의미로 알고리즘 이라는 단어를 사용하고 있을까? 알고리즘의 사전적 의미는 '문제를 푸는 방법이나 절차' 이다. 이를 좀 더 구체적으로 말하면 어떤 문제가 있을 때, 주어진 '입력' 정보를 원하는 '출력(답)' 정보로 만드는 일련의 과정이다. 예를 들어 어떤 수의 절댓값을 구하는 알고리즘을 ..
크롤링,스크레이핑 정리 크롤링,스크레이핑 정의: 우리는 데이터를 수집할 때, 어딘가에 요청하거나 웹에서 긁어온다는 표현을 쓰기도 합니다. 이때 긁어 온다는 말을 조금 더 정확하게, 전문적으로 표현한 것이 크롤링, 스크레이핑 입니다. 예를 들어 2010년부터 2019년까지 월마다 음원사이트의 인기차트 100순위 데이터를 직접 수집할 때, 오래된 데이터를 찾기위해 수많은 클릭과, 저장의 반복이 이루어질 것입니다. 이러한 단순반복 작업을 프로그램을 통해 자동화 시켜서 수행하는 작업을 크롤링이라고 합니다. 크롤링의 원리: 웹에 존재하는 데이터는 대부분 HTML 이라는 문서로 구조화 되어있습니다. 메모장 안에 텍스트를 통째로 구겨넣은 것이 아닌, 제목을 쓰는 공간, 내용을 쓰는 공간, 날짜를 쓰는 공간 모두 태그 라는 문법으로 구분되어..