Step-by-Step Guide — Building a Prediction Model in Python

 

Step-by-Step Guide — Building a Prediction Model in Python



Table of Contents:

Python

Python for Finance — The Complete Beginner’s Guide

Simple and hands-on practice using Amazon Stock Data

Libraries

pip install pandas numpy keras tensorflow
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
from matplotlib.pylab import rcParams
rcParams['figure.figsize']=20,10
from keras.models import Sequential
from keras.layers import LSTM,Dropout,Dense
from sklearn.preprocessing import MinMaxScaler

Understanding the Apple Stock Data

Read Data

import pandas as pddf = pd.read_csv('aapl_stock_1yr.csv')

Head Method

df.head()
Image for post

Tail Method

df.tail(7)
Image for post

Data Manipulation

Subsetting

df = df[['Date', 'Close']]df.head()
Image for post

Data Types

Image for post
df = df.replace({'\$':''}, regex = True)
df = df.astype({"Close": float})df["Date"] = pd.to_datetime(df.Date, format="%m/%d/%Y")df.dtypes
Image for post

Index Column

df.index = df['Date']

Data Visualization

plt.plot(df["Close"],label='Close Price history')
Image for post

LSTM Prediction Model

Data Preparation

df = df.sort_index(ascending=True,axis=0)data = pd.DataFrame(index=range(0,len(df)),columns=['Date','Close'])for i in range(0,len(data)):
data["Date"][i]=df['Date'][i]
data["Close"][i]=df["Close"][i]
data.head()
Image for post

Min-Max Scaler

scaler=MinMaxScaler(feature_range=(0,1))data.index=data.Date
data.drop(“Date”,axis=1,inplace=True)
final_data = data.values
train_data=final_data[0:200,:]
valid_data=final_data[200:,:]
scaler=MinMaxScaler(feature_range=(0,1))scaled_data=scaler.fit_transform(final_data)
x_train_data,y_train_data=[],[]
for i in range(60,len(train_data)):
x_train_data.append(scaled_data[i-60:i,0])
y_train_data.append(scaled_data[i,0])

LSTM Model

lstm_model=Sequential()
lstm_model.add(LSTM(units=50,return_sequences=True,input_shape=(x_train_data.shape[1],1)))
lstm_model.add(LSTM(units=50))
lstm_model.add(Dense(1))
model_data=data[len(data)-len(valid_data)-60:].values
model_data=model_data.reshape(-1,1)
model_data=scaler.transform(model_data)

Train and Test Data

lstm_model.compile(loss=’mean_squared_error’,optimizer=’adam’)
lstm_model.fit(x_train_data,y_train_data,epochs=1,batch_size=1,verbose=2)
X_test=[]
for i in range(60,model_data.shape[0]):
X_test.append(model_data[i-60:i,0])
X_test=np.array(X_test)
X_test=np.reshape(X_test,(X_test.shape[0],X_test.shape[1],1))

Prediction Function

predicted_stock_price=lstm_model.predict(X_test)
predicted_stock_price=scaler.inverse_transform(predicted_stock_price)

Prediction Result

train_data=data[:200]
valid_data=data[200:]
valid_data['Predictions']=predicted_stock_price
plt.plot(train_data["Close"])
plt.plot(valid_data[['Close',"Predictions"]])
Image for post

Step-by-Step Guide — Building a Prediction Model in Python Step-by-Step Guide — Building a Prediction Model in Python Reviewed by square daily updates on October 17, 2020 Rating: 5

No comments:

Powered by Blogger.
User-Agent: * Allow: /ads/preferences/ Allow: /gpt/ Allow: /pagead/show_ads.js Allow: /pagead/js/adsbygoogle.js Allow: /pagead/js/*/show_ads_impl.js Allow: /static/glade.js Allow: /static/glade/ Allow: /tag/js/ Disallow: / Noindex: /