반응형

AI/DeepLearning 23

RNN 모델 정리 2

6. MLP DNN(다입력 다:다) 2개의 컬럼에 각 3개씩 데이터를 입력받아, 2개의 값으로 출력되는 모델을 만들자. #1. 데이터 import numpy as np dataset = np.array([[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]]) print("dataset.shape ", dataset.shape) dataset = np.transpose(dataset) print(dataset) print("dataset.shape :", dataset.shape) (10,3)의 데이터이다. split_xy3 함수를 이용하여 x를 2개 컬럼 3개씩 , y를 1개 컬럼 2개씩 다음 형태로 ..

AI/DeepLearning 2020.10.10

RNN 모델 정리 1

1. MLP DNN 모델(다:1) 1부터 10까지의 데이터를 준비한다. #1. 데이터 import numpy as np dataset = np.array([1,2,3,4,5,6,7,8,9,10]) 함수를 사용해서 4개씩 잘라서 x를 만들고, 그 다음 수 1개의 숫자를 y로 만들자 def split_xy1(dataset, time_steps): x, y = list(), list() for i in range(len(dataset)): end_number = i + time_steps if end_number > len(dataset) - 1: break tmp_x, tmp_y = dataset[i:end_number], dataset[end_number] x.append(tmp_x) y.append(tm..

AI/DeepLearning 2020.10.08

RNN용 데이터 자르기

RNN 모델은 주로 연속적인 데이터를 처리할 때 많이 사용한다. 주가, 환율, 금리, 국제 유가 등 그러다 보니 연속되는 데이터를 구했을 때 제일 처음 고민하는 것 중하나가 이 데이터를 어떻게 잘라야 할지, 데이터의 x값과 y값을 어떻게 나누어야 할지, 만약 RNN을 적용한다면 몇 개씩 잘라서 작업을 해야 할지 등 데이터를 분리하는 어려움을 겪게 된다. 특히 x와 y를 어디서부터 어디까지로 할 것인가가 첫 번째 고민이다. 1. split 함수 만들기 (다:1) #1. 데이터 import numpy as np dataset = np.array([1,2,3,4,5,6,7,8,9,10]) 우선 RNN에 쓸것이고 5개의 연속된 데이터로 그 다음의 데이터 값을 예측하는 모델을 만들고자 한다. 1부터 4까지의 데이..

AI/DeepLearning 2020.10.06

케라스 모델의 파라미터들과 기타 기법들

#2. 모델구성 from keras.models import load_model model = load_model("savetest01.h5") from keras.layers import Dense #추가 model.add(Dense(1)) #추가 model.summary()​ #1. 데이터 import numpy as np x_train = np.array([[1,2,3,4,5],[2,3,4,5,6],[3,4,5,6,7]]) y_train = np.array([6,7,8]) x_train = x_train.reshape(x_train.shape[0], x_train.shape[1], 1) print("x_train.shape : ", x_train.shape) #(3,5,1) print("y_trai..

AI/DeepLearning 2020.10.06

시계열 모델 1 RNN

RNN이란 RNN(순환신경망, Recurrent Neural Network)는 주로 시계열 분석, 자연어 처리 등 순서가 있는 데이터에 사용하면 좋은 결과가 있는 모델이다. 실제로 주식, 파생상품, 기상, 전력량 등을 계산할 때 매우 유효하고 캐글이나 해커톤 등의 대회에서 기계열 문제를 다룰 때 많이 사용한다. 위 그림을 보면 x는 1부터 5까지로 구성되어 있고, y는 아직 모른다. 물론 경험상 6이 나올 거라는 예상은 되지만, 머신은 아직 모른다. 우선 x1에 1이 입력되고 훈련이 시작된다. 첫 번째 노드에서 h(hypersis)와 w(가중치)를 구한다. 이를 다음 노드에 전달하고 x2로 2가 입력된다. 이때, 이전 노드에서 받은 w와 h 그리고 이번에 받아들인 2를 같이 연산하여 다시 w와 h를 구한..

AI/DeepLearning 2020.10.05

회귀 모델 정리 - 앙상블 및 기타 모델

앙상블은 여러 모델을 합치는 모델로, 1:1 모델은 없다 2개의 모델이 합쳐서 2개의 모델로 출력되는 다:다 모델을 만들자 다:다 1 모델 #1. 데이터 import numpy as np x1 = np.array([range(1, 101), range(101, 201)]) y1 = np.array([range(1, 101), range(101, 201)]) x2 = np.array([range(501, 601), range(601, 701)]) y2 = np.array([range(501, 601), range(601, 701)]) print(x1.shape) print(y1.shape) print(x2.shape) print(y2.shape) (2, 100) (2, 100) (2, 100) (2, 10..

AI/DeepLearning 2020.07.13

회귀 모델 정리 - 함수형 모델

1:1모델 데이터 입력과 출력은 Sequential과 동일하다. #1. 데이터 # 1~7까지 데이터를 훈련시키고 8~10 데이터로 평가, 훈련이 잘되었나 11~13 예측 import numpy as np x_train = np.array([1,2,3,4,5,6,7]) y_train = np.array([1,2,3,4,5,6,7]) x_test = np.array([8,9,10]) y_test = np.array([8,9,10]) x_predict = np.array([11,12,13]) #2. 모델 구성 from keras.models import Model from keras.layers import Dense, Input input1 = Input(shape=(1,)) dense1 = Dense(10..

AI/DeepLearning 2020.07.11

회귀 모델 정리 - 순차모델

DNN Sequential 4가지 모델 1:1 #1. 데이터 # 1~7까지 데이터를 훈련시키고 8~10 데이터로 평가, 훈련이 잘되었나 11~13 예측 import numpy as np x_train = np.array([1,2,3,4,5,6,7]) y_train = np.array([1,2,3,4,5,6,7]) x_test = np.array([8,9,10]) y_test = np.array([8,9,10]) x_predict = np.array([11,12,13]) #2. 모델 구성 from keras.models import Sequential from keras.layers import Dense model = Sequential() model.add(Dense(100, input_dim = 1,..

AI/DeepLearning 2020.07.07

회귀 모델 5 - 함수형 모델 (1:1, 다:다, 다:1, 1:다)

이전까지 model=Sequential()을 이용하여 순차적 모델을 만들었었다. 케라스 딥러닝에서는 두 가지 모델을 구성하는 방식이 있는데 순차적 모델과 함수형 모델이 있다. 모델의 간결함은 순차적 모델이 좋으나 모델이 길어지고 앙상블 등의 여러 가지 기법을 사용하고자 하면 함수형 모델은 필수이다. 1:1 #1. 데이터 import numpy as np x = np.array(range(1,101)) y = np.array(range(1,101)) from sklearn.model_selection import train_test_split x_train, x_test, y_train, y_test = train_test_split( x, y, random_state=66, test_size=0.4, s..

AI/DeepLearning 2020.07.01

회귀 모델 4 R2, RMSE 추가

https://soccerda.tistory.com/131 회귀모델의 판별식 R2, RMSE #RMSE 구하기 from sklearn.metrics import mean_squared_error def RMSE(y_test, y_predict): return np.sqrt(mean_squared_error(y_test, y_predict)) print("RMSE : ", RMSE(y_test, y_predict)) RMSE(평균 제.. soccerda.tistory.com R2는 1에 가까울수록 RMSE는 낮을수록 좋은 수치이다. 아직 데이터가 적은 양이어서 Validation을 추가했다고 더 좋은 값이 나오는 것이 눈에 띄지 않지만, 많아질수록 Train 데이터에서 일부의 검증 세트를 분리하여 훈련하는..

AI/DeepLearning 2020.06.27
반응형