Spaces:
Build error
Build error
bills
commited on
Commit
•
19a7a50
1
Parent(s):
c1d7673
Add file
Browse files- .gitattributes +0 -33
- Procfile +1 -0
- apps.py +83 -0
- fang_stock_prediction.h5 +0 -0
- requirements.txt +6 -0
- runtime.txt +1 -0
.gitattributes
DELETED
@@ -1,33 +0,0 @@
|
|
1 |
-
*.7z filter=lfs diff=lfs merge=lfs -text
|
2 |
-
*.arrow filter=lfs diff=lfs merge=lfs -text
|
3 |
-
*.bin filter=lfs diff=lfs merge=lfs -text
|
4 |
-
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
5 |
-
*.ftz filter=lfs diff=lfs merge=lfs -text
|
6 |
-
*.gz filter=lfs diff=lfs merge=lfs -text
|
7 |
-
*.h5 filter=lfs diff=lfs merge=lfs -text
|
8 |
-
*.joblib filter=lfs diff=lfs merge=lfs -text
|
9 |
-
*.lfs.* filter=lfs diff=lfs merge=lfs -text
|
10 |
-
*.mlmodel filter=lfs diff=lfs merge=lfs -text
|
11 |
-
*.model filter=lfs diff=lfs merge=lfs -text
|
12 |
-
*.msgpack filter=lfs diff=lfs merge=lfs -text
|
13 |
-
*.npy filter=lfs diff=lfs merge=lfs -text
|
14 |
-
*.npz filter=lfs diff=lfs merge=lfs -text
|
15 |
-
*.onnx filter=lfs diff=lfs merge=lfs -text
|
16 |
-
*.ot filter=lfs diff=lfs merge=lfs -text
|
17 |
-
*.parquet filter=lfs diff=lfs merge=lfs -text
|
18 |
-
*.pb filter=lfs diff=lfs merge=lfs -text
|
19 |
-
*.pickle filter=lfs diff=lfs merge=lfs -text
|
20 |
-
*.pkl filter=lfs diff=lfs merge=lfs -text
|
21 |
-
*.pt filter=lfs diff=lfs merge=lfs -text
|
22 |
-
*.pth filter=lfs diff=lfs merge=lfs -text
|
23 |
-
*.rar filter=lfs diff=lfs merge=lfs -text
|
24 |
-
*.safetensors filter=lfs diff=lfs merge=lfs -text
|
25 |
-
saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
26 |
-
*.tar.* filter=lfs diff=lfs merge=lfs -text
|
27 |
-
*.tflite filter=lfs diff=lfs merge=lfs -text
|
28 |
-
*.tgz filter=lfs diff=lfs merge=lfs -text
|
29 |
-
*.wasm filter=lfs diff=lfs merge=lfs -text
|
30 |
-
*.xz filter=lfs diff=lfs merge=lfs -text
|
31 |
-
*.zip filter=lfs diff=lfs merge=lfs -text
|
32 |
-
*.zst filter=lfs diff=lfs merge=lfs -text
|
33 |
-
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Procfile
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
web: sh setup.sh && streamlit run apps.py
|
apps.py
ADDED
@@ -0,0 +1,83 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import warnings
|
2 |
+
import numpy as np
|
3 |
+
import pandas as pd
|
4 |
+
import datetime as dt
|
5 |
+
import streamlit as st
|
6 |
+
import tensorflow as tf
|
7 |
+
import pandas_datareader as pdr
|
8 |
+
from tensorflow.keras import load_model
|
9 |
+
from sklearn.preprocessing import MinMaxScaler
|
10 |
+
from tensorflow.keras.models import Sequential
|
11 |
+
from tensorflow.keras.layers import Dense, Dropout, LSTM
|
12 |
+
|
13 |
+
# warnings.filterwarnings('ignore')
|
14 |
+
# plt.style.use('fivethirtyeight')
|
15 |
+
|
16 |
+
st.set_page_config(
|
17 |
+
page_title="FANG Stock Prediction",
|
18 |
+
page_icon=":bitcoin:",
|
19 |
+
layout="wide"
|
20 |
+
)
|
21 |
+
|
22 |
+
st.write("# Welcome to FANG Stock Prediction Dashboard :bitcoin:")
|
23 |
+
|
24 |
+
company_ticker = ['FB', 'AAPL', 'TSLA', 'GOOG', 'NVDA']
|
25 |
+
|
26 |
+
start_date = dt.datetime(2007, 1, 1)
|
27 |
+
end_date = dt.datetime(2020, 12, 13)
|
28 |
+
data_FB = pdr.DataReader(company_ticker[0], 'yahoo', start_date, end_date)
|
29 |
+
# data_AAPL = pdr.DataReader(company_ticker[1], 'yahoo', start_date, end_date)
|
30 |
+
# data_TSLA = pdr.DataReader(company_ticker[2], 'yahoo', start_date, end_date)
|
31 |
+
data_GOOG = pdr.DataReader(company_ticker[3], 'yahoo', start_date, end_date)
|
32 |
+
# data_NVDA = pdr.DataReader(company_ticker[4], 'yahoo', start_date, end_date)
|
33 |
+
|
34 |
+
scaler = MinMaxScaler()
|
35 |
+
scaled_data_FB = scaler.fit_transform(data_FB.filter(['Adj Close']).values.reshape(-1, 1))
|
36 |
+
scaled_data_GOOG = scaler.fit_transform(data_GOOG.filter(['Adj Close']).values.reshape(-1, 1))
|
37 |
+
prediction_days = 89
|
38 |
+
|
39 |
+
test_start = dt.datetime(2020, 12, 31)
|
40 |
+
test_end = dt.datetime.now()
|
41 |
+
test_data_FB = pdr.DataReader(company_ticker[0], 'yahoo', test_start, test_end)
|
42 |
+
# test_data_AAPL = pdr.DataReader(company_ticker[1], 'yahoo', test_start, test_end)
|
43 |
+
# test_data_TSLA = pdr.DataReader(company_ticker[2], 'yahoo', test_start, test_end)
|
44 |
+
test_data_GOOG = pdr.DataReader(company_ticker[3], 'yahoo', test_start, test_end)
|
45 |
+
# test_data_NVDA = pdr.DataReader(company_ticker[4], 'yahoo', test_start, test_end)
|
46 |
+
actual_prices = test_data_GOOG.filter(['Adj Close']).values
|
47 |
+
|
48 |
+
total_dataset = pd.concat((data_GOOG['Adj Close'], test_data_GOOG['Adj Close']), axis=0)
|
49 |
+
|
50 |
+
model_inputs = total_dataset[len(total_dataset) - len(test_data_GOOG) - prediction_days:].values
|
51 |
+
model_inputs = model_inputs.reshape(-1, 1)
|
52 |
+
model_inputs = scaler.fit_transform(model_inputs)
|
53 |
+
|
54 |
+
def test_data_predict(lstm_model):
|
55 |
+
X_test = []
|
56 |
+
|
57 |
+
for x in range(prediction_days, len(model_inputs)):
|
58 |
+
X_test.append(model_inputs[x-prediction_days:x, 0])
|
59 |
+
|
60 |
+
X_test = np.array(X_test)
|
61 |
+
X_test = np.reshape(X_test, (X_test.shape[0], X_test.shape[1], 1))
|
62 |
+
|
63 |
+
prediction_prices = lstm_model.predict(X_test)
|
64 |
+
prediction_prices = scaler.inverse_transform(prediction_prices)
|
65 |
+
|
66 |
+
return prediction_prices
|
67 |
+
|
68 |
+
stock_lstm = load_model("https://github.com/bills1912/stock-predicition/blob/main/fang_stock_prediction.h5")
|
69 |
+
|
70 |
+
predict_prices = test_data_predict(lstm_model=stock_lstm)
|
71 |
+
valid = test_data_GOOG.filter(['Adj Close'])
|
72 |
+
valid['Predictions'] = predict_prices
|
73 |
+
|
74 |
+
st.line_chart(data_GOOG.filter['Adj Close'])
|
75 |
+
st.line_chart(valid)
|
76 |
+
|
77 |
+
real_data = [model_inputs[len(model_inputs)+1 - prediction_days:len(model_inputs)+1, 0]]
|
78 |
+
real_data = np.array(real_data)
|
79 |
+
real_data = np.reshape(real_data, (real_data.shape[0], real_data.shape[1], 1))
|
80 |
+
|
81 |
+
real_prediction = stock_lstm.predict(real_data)
|
82 |
+
real_prediction = scaler.inverse_transform(real_prediction)
|
83 |
+
st.text(f"Real prediction stock prices on Google is {real_prediction[0]}")
|
fang_stock_prediction.h5
ADDED
Binary file (934 kB). View file
|
|
requirements.txt
ADDED
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
numpy>=1.17.3
|
2 |
+
pandas==1.3.5
|
3 |
+
streamlit==1.10.0
|
4 |
+
tensorflow==2.6.0
|
5 |
+
pandas-datareader==0.10.0
|
6 |
+
sklearn==0.0
|
runtime.txt
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
python-3.9.14
|