Python으로 주가를 기계학습 모형에 투입하여 도표에 표시해 보다

입문


최근의 개인 열풍은 블록체인 가상화폐다.
따라오다가상화폐를 생각한다면 머신러닝으로 주가를 예측하는 게 좋을 것 같아요.
먼저 데이터를 수집하여 기계 학습의 라이브러리(scikit-learn의 SVM)에 투입하여 각 모델의 결과를 도표화했다.
엄밀히 말하면 이번 물건은 장래 예측이 아니라 최고의 수렴 모델이기 때문에 미묘한 차이점도 있다.
하지만 이는 첫 번째 탄으로 투입 데이터를 늘리고 모델을 케라스, 텐서플로우, 체인저 등으로 만드는 것, 해외의 문헌을 찾는 등 앞으로 취할 수 있는 방침이 많지만 우선 필기를 하는 용도다.

결과



소스 코드


ML_SVM.py
import csv
import numpy as np
from sklearn.svm import SVR
import matplotlib.pyplot as plt

dates = []
prices = []

def get_data(filename):
    with open(filename, 'r') as csvfile:
        csvFileReader = csv.reader(csvfile)
        next(csvFileReader)
        next(csvFileReader)
        for row in csvFileReader:
            dates.append(int(row[0].split('-')[2]))
            prices.append(float(row[1]))
    return

def predict_price(dates, prices, x):
    dates = np.reshape(dates, (len(dates), 1))

    svr_lin = SVR(kernel='linear', C=1e3)
    svr_poly = SVR(kernel='poly', C=1e3, degree=2)
    svr_rbf = SVR(kernel='rbf', C=1e3, gamma=0.1)
    svr_lin.fit(dates, prices)
    svr_poly.fit(dates, prices)
    svr_rbf.fit(dates, prices)

    plt.scatter(dates, prices, color='black', label='Data')
    plt.plot(dates, svr_rbf.predict(dates), color='red', label='RBF model')
    plt.plot(dates, svr_lin.predict(dates), color='green',
             label='Linear model')
    plt.plot(dates, svr_poly.predict(dates), color='blue',
             label='Polynomial model')
    plt.xlabel('Date')
    plt.ylabel('Price')
    plt.title('Support Vector Regression')
    plt.legend()
    plt.show()

    return svr_rbf.predict(x)[0], svr_lin.predict(x)[0], svr_poly.predict(x)[0]


get_data('2181_2018_10.csv')
predicted_price = predict_price(dates, prices, 29)

원본 데이터 가져오기 사이트


데이터는 다음 웹 사이트에서 CSV로 게시됨
1CSV = 1개 품목, 1년.에서 설명한 방법의 대체 방법입니다.
주식 투자 기록

프로세스

  • 주가 CSV 파일 준비
  • csv파일 월초부터 월말까지 29일간의 주가 획득
  • 모델fit
  • matplotlib로 결과 보이기
  • 프로그램 라이브러리


    scikit-learn을 사용합니다.
    Python의 주요 머신 러닝 라이브러리입니다.
    이번에는 scilit-learn에서도 SVM을 사용했습니다.
    SVM에서
  • Polynomial
  • Liner
  • RBF
    세 가지 방법.다른 점은 참조웹 사이트 축소 이미지
    결과에 따라 다른 라이브러리 사용도 고려할 예정이다.
  • SVM은 무엇입니까?


    벡터 머신 지원
    개요 참고웹 사이트 축소 이미지의 기술...
    지원 벡터기(SVM)는 1995년경 AT&T의 V. Vapnik가 발표한 패턴 식별에 사용되는 교사의 기계 학습 방법으로 국부적으로 수렴 문제를 풀지 않는 장점이 있다.
    '이윤의 최대화'라는 생각 등을 통해 범용 능력을 향상시켰고 현재 알려진 방법으로는 가장 우수한 모델 식별 능력을 가진 것으로 여겨진다.
    ...
    데이터를 두 그룹으로 분류하는 데 뛰어나지만 여러 종류의 분류에 직접 적용할 수 없고 계산량이 많으며 내부 핵 함수를 선택하는 기준도 없는 과제
    ...
    학습 데이터의 식별선에 따라 많은 미학습 데이터의 상황을 판별할 수 있는 것을'범화 능력'이라고 한다.최대 이윤의 한가운데에 그려진 선은 범화 능력이 가장 높을 것으로 기대할 수 있다.

    감상


    Liner, Polynomial은 실용적이지 않아요.
    다음은 차트.js와 Django로 웹 응용을 할 수도 있어요.
    모델을 연구하거나 데이터를 투입하여 예측 성능을 높일 수도 있다.
    기대가 큽니다.

    좋은 웹페이지 즐겨찾기