728x90
728x90

tf.constant()

 

- tf.constant() 함수로 텐서를 만들 수 있음

tf.constant(value, dtype=None, shape=None, name='Const')

 

이것저것 해보기

 

import tensorflow as tf

>>> tf.constant([1,2,3,])

<tf.Tensor: shape=(3,), dtype=int32, numpy=array([1, 2, 3], dtype=int32)>

- dtype 지정

>>> tf.constant([1,2,3],dtype=float)

<tf.Tensor: shape=(3,), dtype=float32, numpy=array([1., 2., 3.], dtype=float32)>

- shape 지정

- value의 shape 에 맞춰서 지정

>>> tf.constant([1,2,3],dtype=float,shape=(3,1))

<tf.Tensor: shape=(3, 1), dtype=float32, numpy=
array([[1.],
       [2.],
       [3.]], dtype=float32)>

 

 

728x90
728x90

처음 이클립스 사용하여 웹 프로젝트를 생성시 web.xml 이 없을경우

 

[프로젝트] 오른쪽 마우스 클릭 -> JavaEE Tools -> Generate Deployment Descriptor Stub 선택

728x90

'Development Study > Servlet & JSP' 카테고리의 다른 글

[Servlet Study]  (0) 2023.09.30
728x90

1. CUDA 설치

- 링크 : CUDA Toolkit Arcive(https://developer.nvidia.com/cuda-toolkit-archive)

2.cuDNN 다운로드 복사 붙여 넣기

- 로그인 

- CUDA와 같은 버전 다운로드

- 링크 : developer.nvidia.com/rdp/cudnn-download

3. tensorflow-gpu 설치

- 기존에 tensorflow가 있으면 삭제 후 설치

 

728x90
728x90

DDQN Reinforcement Learning Trading System

DDQN 강화학습 주식 트레이딩 시스템

소개
  • DDQN 알고리즘을 이용한 강화학습 주식 트레이딩 시스템
개발환경
  • 사용언어 - 파이썬
  • IDE - PyCharm
  • 라이브러리
    • Tensorflow
    • Keras
    • Pandas
    • Numpy
    • Matplotlib
    • 등등
개요
  • 환경에서 주어진 State를 받아 Policy를 통해 Action 을 행동한다. 행동한 Action에 따른 Reward를 받게 되고 Q-value를 구하여 신경망을 학습하여 더 좋은 Reward을 받는 방향으로 모델을 업데이트한다.
  • Keras의 인공신경망을 통해 가치 신경망을 구성하여 학습을 진행한다.
  • 주식 데이터는 대신증권 API를 통해 수집한 종목별 일별 데이터를 사용하였으며, 실제 주식한경을 구성하는 것이 관건이라고 볼 수 있다.
  • State 또는 Observation으로 주어지는 데이터는 아래와 같다.
    • [현재가,전일 종가, 전일 대비, 시가, 고가,저가,누적 거래량, 전일 거래량, 전일 거래랭 대비]
  • 앞으로의 데이터 Feature는 추가 되거나 수정될 수 있다.

Version 1.0

개요
  • 데스트를 진행할 환경을 일별 과거데이터를 저장해 높은 csv파일을 DataFrame으로 만들어 사용하였다.
  • 일별 데이터의 종가를 현잭로 설정하였다.
  • 보상을 (잔금 + 보유 주식수 * 현재가) - 초기자본금 / 초기자본금으로 설정 하였다.
  • 보상 정책에 대한 수정이 필요로 한다.
  • 학습에 대한 수익률이 일정치 않은것으로 판단되며, 매수/ 매도량을 1로 설정한 부분과 지속적인 + 수익률을 만들 수 있는 모델을 만드는 것이 앞으로의 과제라고 판단된다.
<시각화>
  • 학습 단계에 따른 수익률
    Episode Profit

  • 마지막 에피소드 행동 비율
    action_ratio

728x90
728x90

머신러닝은 데이터 가공/ 변환, 모델 학습/ 예측 , 그리고 평가의 프로세스로 구성된다.

 

분류의 선능 평가 지표

- accurary

- Confusion Matrix

- Precision

- Recall

- F1

- ROC_AUC

 

트레이드 오프 

- 정밀도 / 재현율 트레이드 오프

- 정밀도와 재현율은 상호 보완적인 평가 지표이기 때문에 어느 한쪽ㄷ을 강제로 높이면 다른 하나의 수치는 떨어지기 쉽습니다.

- 이를 정밀도/재현율 트레이드 오프 라고 합니다.

- 임계값 : threshold

- precision_recall_curve(y_test,pred_proba_class1)

- precisions, recalls, thresholds = precision_recall_curve(y_test,pred_proba_class1)

- 임계값의 인덱스 추출 하여 nd.array 로 생성

- 인덱스에 해당하는 임계값 추출

- 인덱스에 해당하는 정밀도와 재현율 값 추출

- 이를 이용한 시각화

- Binarizer(theshold=임계값) 변경된 값 , predict_proba()[:,1] 예측확률 배열에서 1에 해당하는 칼럼값을 변경 

 

교차검증

- KFold (n_splits = 분할할 폴드 수)

- cross_val_score

 

하이퍼파라미터 튜닝

- GridSearchCV(모델, param_grid = {파라미터 딕셔너리} , scoring=점수 , cv = 5)

- 최적의 하이퍼 파라미터 : best_params_

- 최고의 정확도 : best_score_

- 최적의 하이퍼 파라미터로 학습괸 Estimator : best_estimator_

 

결정트리 / DecisionTree Classifier and Regression

prameter =

- {'min_samples_split':'노드를 분할 하기 위한 최소한의 샘플 데이터 수 / defualt = 2'}

- {'min_samples_leaf':'말단 노드가 되기 위한 최소한의 샘플데이터 수'}

- {'max_features':'최적의 분할을 위해 고려할 최대 피처 개수 / defualt =None'}

- {'max_depth':'트리의 최대 깊이 / default = None'}

- {'max_leaf_nodes':'말단 노드의 최대 개수'}

- 결정트리분류 모델이 반복시마다 동일한 예측 결과 도출을 위해 random_state 설정 

 

randomforest

728x90
728x90
728x90

+ Recent posts