딥러닝/정형데이터 12

시계열 데이터를 RNN으로 분석할 때 데이터의 형태(차원)

입력데이터의 형태(차원) RNN모델에 시계열 데이터를 입력할 때 입력데이터의 형태는 3차원이 된다. (학습할 데이터의 수, sequence, x값의 개수) 데이터의 수 : 학습할 데이터의 개수 (데이터의 수-sequnce) sequence : 특정값을 구하기 위해 반영할 시간의 길이 x값의 개수 : 사용할 독립변수의 개수 아래의 예시에서 어떻게 이러한 모양이 나오는지 알아 본다. 이해를 돕기위해 데이터의 수는 빨간색, sequence는 초록색, x값의 개수는 파란색으로 표시한다 자전거 이용률 예시 season(계절), holdiay(방학여부), workingday(평일여부)에 따른 자전거 사용횟수(count)가 시계열적으로 나타나있는 데이터가 있다. 데이터의 개수는 총 13128개이다. X의 column..

RNN,LSTM,GRU를 이용한 비트코인 분석

RNN,LSTM,GRU 1. RNN 이전의 데이터가 다음 데이터에 영향을 준다. 시계열 분석에 유용하다 2. LSTM RNN의 단기기억문제 해결책으로 고안됨 (시간이 많이 지난 데이터의 영향력이 너무 낮아지는 문제) 3. GRU LSTM구조보다 간결하게 변경함, 빠른 속도와 유사한 성능 평가 함수 ### Evaluation of 1 pair of set def evaluation(Y_real, Y_pred, graph_on=False): loss_length = len(Y_real.values.flatten()) - len(Y_pred) if loss_length != 0: Y_real = Y_real[loss_length:] if graph_on == True: pd.concat([Y_real, pd...

3. 삼성전자 주식 데이터 분석 - 예측하기(lstm,RNN모델)

시리즈 삼성전자 주식데이터를 분석하고 예측한다. 1. 삼성전자 주식 데이터 분석 - 분석하기 => sosoeasy.tistory.com/332 2. 삼성전자 주식 데이터 분석 - 예측하기(MLP 모델) => sosoeasy.tistory.com/333 3. 삼성전자 주식 데이터 분석 - 예측하기(lstm, RNN 모델) 1~3 이전과 동일 아래 3가지 목차는 ( 2. 삼성전자 주식 데이터 분석 -예측하기(MLP 모델) => sosoeasy.tistory.com/333 ) 과 동일 1. 주가 데이터 받아오기 2. 필요한 패키지 받아오기 3. 데이터 불러오기 4. 데이터 전처리 0. 필요한 라이브러리 받아오기 from tensorflow.keras import models from tensorflow.ker..

2. 삼성전자 주식 데이터 분석 - 예측하기(MLP모델)

시리즈 삼성전자 주식데이터를 분석하고 예측한다. 1. 삼성전자 주식 데이터 분석 - 분석하기 => sosoeasy.tistory.com/332 2. 삼성전자 주식 데이터 분석 - 예측하기(MLP 모델) 3. 삼성전자 주식 데이터 분석 - 예측하기(lstm, rnn 모델) => sosoeasy.tistory.com/334 1. 주가데이터 받아오기 #주가 데이터를 받아오기 위한 패키지 설치 !pip install pandas_datareader !pip install sklearn 2. 패키지 받아오기 datetime : 날짜와 시간을 조작하는 클래스 제공 pandas_datareader : 웹 상의 데이터를 DataFrame 객체로 만드는 기능 제공 pandas : 데이터처리를 위한 라이브러리 numpy ..

1. 삼성전자 주식데이터 분석 - 분석하기

시리즈 삼성전자 주식데이터를 분석하고 예측한다. 1. 삼성전자 주식 데이터 분석 - 분석하기 2. 삼성전자 주식 데이터 분석 - 예측하기(MLP 모델) => sosoeasy.tistory.com/333 2. 삼성전자 주식 데이터 분석 - 예측하기(lstm, rnn 모델) => sosoeasy.tistory.com/334 1. 필요 라이브러리 다운로드 # 데이터를 가져와 편리하게 다룰 수 있도록 PANDAS 패키지를 설치 !pip install pandas_datareader # 필요한 라이브러리 다운로드 from datetime import datetime import pandas_datareader.data as wb 2. 데이터 불러오기 # 시작날짜와 종료날짜 정하기 start = datetime(2..

퍼셉트론 구현

1. 외출여부 판단 퍼셉트론 함수 # 1. 신호의 총합과 외출 여부를 반환하는 Perceptron 함수를 완성하세요. def Perceptron(x_1,x_2,w_1,w_2): # bias는 외출을 좋아하는 정도로 -1로 설정되어 있습니다. bias = -1 # 입력 받은 값과 편향(bias)값을 이용하여 신호의 총합을 구하세요. output = w_1*x_1+w_2*x_2+bias # 지시한 Activation 함수를 참고하여 외출 여부(0 or 1)를 설정하세요. # 외출 안한다 : 0 / 외출 한다 : 1 if output>0: y = 1 else: y=0 return output, y # 값을 입력 받는 함수입니다. def input_func(): # 비 오는 여부(비가 온다 : 1 / 비가 오지..

DNN(MLP, FFN)으로 iris 구분

1. 데이터 전처리 import numpy as np import pandas as pd import tensorflow as tf from tensorflow.keras import layers # 같은 디렉토리에 iris.csv파일 불러오기 csv = pd.read_csv("iris.csv") # 판다스의 csv모듈 X = csv[["sepal_length", "sepal_width","petal_length","petal_width"]].as_matrix() # 클래스 레이블 (one hot coding용) bclass = {"Iris-virginica":[1,0,0], "Iris-setosa":[0,1,0], "Iris-versicolor":[0,0,1]} y = np.empty((150,3)) ..

DNN을 이용한 회귀분석

1. 파일 읽기 import numpy as np import pandas as pd from pandas import ExcelFile import tensorflow as tf from tensorflow.keras import layers #모듈(변수나 함수를 포함)만 불러오기 from sklearn.preprocessing import StandardScaler, MinMaxScaler #표준 정규화, 최대-최소 정규화 #df = pd.read_excel('File.xlsx', sheetname='Sheet1') #sheet명도 지정할 수 있음 df = pd.read_excel('Real estate valuation data set.xlsx') print(df.columns) *print() :..

keras 함수적 구현

https://keras.io/ko/getting-started/functional-api-guide/ ​ keras를 sequential이 아닌 함수적으로 구현함으로서 모델 내에 input과 output을 조정한다. from keras.layers import Input, Dense from keras.models import Model # input값의 차원을 의미(att의 개수와도 같다) inputs = Input(shape=(784,)) # 레이어 인스턴스는 텐서에 대해 호출 가능하고, 텐서를 반환 x = Dense(64, activation='relu')(inputs) x = Dense(64, activation='relu')(x) predictions = Dense(10, activation=..

케라스(keras) 함수적 api

keras의 계층적 구성은 input을 유연하게 쓰는데(계층별로 다르게 쓰는데) 한계가 있다. 따라서 함수적 api 사용을 통해서 계층별로 필요한 input값을 넣어서 모델을 구성할 수 있다. ​ 다음과 같은 모델을 구성하여 보자. 1. input은 세개 (title,body,tags)가 있다 2. title과 body는 embedding,LSTM의 과정을 거친 후 tags input과 concatenate한다. 3. output layer를 각기다른 2개로 구성하여 priority, department 두개로 만든다. 1. 모델 함수화 from tensorflow.keras import layers from tensorflow import keras ''' input의 구성: (input,output,..

DNN이용하여 thin, normal, fat 분류

1. 데이터 전처리 import numpy as np import pandas as pd import tensorflow as tf from tensorflow.keras import layers #모듈(변수나 함수를 포함)만 불러오기 # BMI 데이터를 읽어 들이고 정규화하기 csv = pd.read_csv("bmi.csv") # 몸무게와 키 데이터(정규화) csv["weight"] /= 100 csv["height"] /= 200 X = csv[["weight", "height"]].as_matrix() print(csv) # 레이블 bclass = {"thin":[1,0,0], "normal":[0,1,0], "fat":[0,0,1]} y = np.empty((20000,3)) # 2000x3 크기..