Coding Is My Life

코딩은 인생

728x90

파이썬 머신러닝 10

[ML/AI][Bitcoin Trend Prediction with ML/머신러닝 활용한 비트코인 추세예측]

서론 기존의 주가예측은 가격 데이터 및 거시경제 데이터를 기반으로 다음날의 종가를 RNN, LSTM 같은 순환 신경망 모델로 예측하였다. 여러 논문의 예측 결과 그래프를 보면 거짓말같이 실제 주가와 거의 비슷하게 예측되는 결과물이 많이 있다. 하지만 자세히 보면 예측한 그래프가 원래 그래프 보다 1일 앞에 있는것과 비슷하다는 것을 알 수 있다. 이러한 이유는 모델이 학습을 할때 loss값이 현재 값- 전날 값이 가장 최적의 loss값이라고 판단했기 때문에 이러한 결과가 나오는 것이다. 그리고 다음날의 종가는 거의 랜덤한 값의 가깝기 때문에 정확하게 예측하는 것은 한계가 있다. 이러한 한계가 있기 때문에 주가 추세 예측에 대한 연구를 하게 되었다. 예측 모델로는 classification 모델인 Linea..

[ML/AI][Bitcoin Data Analysis And RNN Model Prediction]

거래소로부터 데이터 불러오기 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 import ccxt,pandas as pd import datetime def to_timestemp(dt): dt = datetime.datetime.timestamp(dt) dt = int(dt) * 1000 return dt binance = ccxt.binance() col = ['datetime', 'open', 'high', 'low', 'close', 'volume'] format = '%Y-%m-%d %H:%M:%S' dt = datetime.datetime.strptime('2018-01-01 00:00:00',format) dt = to_timestemp(dt) btc_ohlcv = binan..

[ML/AI][SimpleRNN with Keras]

RNN RNN은 은닉층의 노드에서 활성화 함수를 통해 나온 결과값을 출력층 방향으로도 보내면서, 다시 은닉층 노드의 다음 계산의 입력으로 보내는 특징을 갖고있습니다. x는 입력층의 입력 벡터, y는 출력층의 출력 벡터입니다. RNN에서 은닉층에서 활성화 함수를 통해 결과를 내보내는 역할을 하는 노드를 셀(Cell)이라고 하고 이전의 값을 기억하는 메모리 역할을 하므로 메모리 셀이라고 표현합니다. 현재 시점 변수를 t로 표현 t 시점의 메모리 셀은 t-1 시점의 메모리 셀이 보낸 은닉 상태값을 t 시점의 은닉 상태 계산을 위한 입력값으로 사용 뉴런 단위로 시각화 Keras SimpleRNN 위에서 설명했듯이 이전 timestep의 출력이 다음 timestep으로 완전히 연결된 모델을 keras에서는 sim..

[머신러닝][교차검증, 파라미터 튜닝]

교차 검증 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 # K폴드 교차 검증 # K개의 데이터 폴드 세트를 만들어서 K번만큼 각 폴드 세트에 학습과 검증을 반복적으로 수행하는 방법 # 쉽게 말해서 5개의 데이터(1,2,3,4,5)가 한세트라고 할때 K가 5이면 1 2 3 4 5로 데이터 세트를 5개로 나눈 다음에 1 2 3 4 학습 5 검증 -> 1 2 3 5 학습 4 검증 -> ... 이렇게 5번에 학습을 해서 나온 값들을 평균을 내는 것이 K폴드 교차 검증이다. # Stratified K 폴드 # 불균형한 분포도를 가진 레이블 데이터 집합을 위한 K 폴드 방식이다. # 작은 비율로 레이블 값이 있다면 K 폴드로 랜덤하게 학습 및 테스트 세트의 인덱스를 고르더라..

[머신러닝][kaggle 실습- 보험 비용 예측하기]

데이터 수집 www.kaggle.com/mirichoi0218/insurance Medical Cost Personal Datasets Insurance Forecast by using Linear Regression www.kaggle.com import pandas as pd data = pd.read_csv('/content/drive/MyDrive/insurance.csv') data.head() 데이터를 불러온다. temp = [] smk = [] for i in range(len(data)): if data.iloc[i]['sex'] == 'female': temp.append(1) elif data.iloc[i]['sex'] == 'male': temp.append(0) if data.ilo..

[머신러닝][Deep learning을 이용한 XOR문제해결]

우리가 흔히 알고있는 XOR문제를 Deep learning으로 훈련시켜 보겠다. import numpy as np from keras.models import Sequential from keras.layers import Dense # 데이터 생성 x_XOR = np.array([[0,0],[0,1],[1,0],[1,1]]) y_XOR = np.array([0,1,1,0]) # 모델생성 model = Sequential() model.add(Dense(2,input_shape = (4,2),activation = 'relu')) model.add(Dense(6)) model.add(Dense(1,activation = 'sigmoid')) #출력층만 sigmoid 설정해줌 # 손실함수 최적화 함수 설정..

[머신러닝][Classification 알고리즘 실습-Mushroom Classification]

Classfication소개 Classification 알고리즘이란 테이터를 학습하여 얻은 결과를 분류하여 나타내는 알고리즘이다. 오늘 소개할 Classification은 Logistic Regression이다 Logistic Regession이란 Training Data 특성과 분포를 나타내는 최적의 직선을 찾고(Linear Regression) 그 직선을 기준으로 위(1) 또는 아래(0)등으로 분류해주는 알고리즘이다. Logistic Regression은 sigmoid function을 사용하고 sigmoid function은 쉽게 말해 x의 값에 어떤 값이 들어와도 0~1사이의 값으로 수렴하는 값을 가지는 함수이다. Classfication 검증 검증 단계에서는 sklearn.metrics impo..

[머신러닝][Linear Regression알고리즘 파이썬으로 구현]

회귀 소개 회귀 분석은 Y = Wx+b 라는 직선(모델)에서 X는 특성(feature)이며 y는 label이다. 이 Y = Wx+b 직선의 X를 넣었을 때 나오는 값을 Y^이라고 하면 label인 Y와 직선에서 나온 예측값의 최소를 구하는 W,b을 설정해주는것이 Linear Rregession에 핵심이다. 그렇다면 x1,x2,x3.... , y1,y2,y3.... 데이터가 있을 때 이것을 제곱 평균식으로 나타내면 다음과 같다. n은 데이터의 갯수이며 loss는 손실함수이다. 이때 loss의 y^을 Wx+b로 표현할 수 있다. 표현한 식은 다음과 같다. 이 loss의 값이 최소가 되게 하는 것이 Linear Regression이다. 그렇다면 x값과 y의 값은 데이터에서 주어지므로 결론적으로는 w,b의 값을..

[머신러닝][코로나 확진자 예측하기]

일단 데이터수집은 해당 사이트에서 수집하였다. https://www.kaggle.com/sudalairajkumar/novel-corona-virus-2019-dataset Novel Corona Virus 2019 Dataset Day level information on covid-19 affected cases www.kaggle.com 그리고 사용된 csv파일은 time_series_covid_19_confirmed.csv 파일을 사용하였다. import pandas as pd from sklearn.model_selection import train_test_split import matplotlib.pyplot as plt data2 = pd.read_csv('/content/drive/MyD..

Linear Regression 을 이용한 주식 가격 예측 프로그램

그동안 배운 판다스와 넘파이, 머신러닝을 바탕으로 약간 저의 뇌피셜?로 만든 주가 예측 프로그램입니다. colab.research.google.com/drive/1VD0yl4kuGQiZhCsy0ckUXz3VWM3k90-I?usp=sharing Google Colaboratory colab.research.google.com 코렙으로 작성하였고 아직 머신러닝에 대해서 잘 몰라서 이게 맞는지는 모르겠습니다... 만약 지적하실 부분이 있다면 지적해 주십시오!

728x90