TuanScientist commited on
Commit
3d2594e
1 Parent(s): f298883

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +55 -0
app.py ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ import pandas as pd
3
+ from neuralprophet import NeuralProphet, set_log_level
4
+ import warnings
5
+
6
+ set_log_level("ERROR")
7
+ warnings.filterwarnings("ignore", category=UserWarning)
8
+
9
+ url = "Bitcoin Historical Data - Investing.com.csv"
10
+ df = pd.read_csv(url)
11
+ df = df[["Date", "Price"]]
12
+ df = df.rename(columns={"Date": "ds", "Price": "y"})
13
+ df.fillna(method='ffill', inplace=True)
14
+ df.dropna(inplace=True)
15
+
16
+ m = NeuralProphet(n_forecasts=3,
17
+ n_lags=3,
18
+ changepoints_range=9, num_hidden_layers=6, daily_seasonality= False, weekly_seasonality = False, yearly_seasonality = True, ar_reg=True,
19
+ n_changepoints=450, trend_reg_threshold=True, d_hidden=9, global_normalization=True, global_time_normalization=True, seasonality_reg=1, unknown_data_normalization=True,
20
+ seasonality_mode="multiplicative", drop_missing=True,
21
+ learning_rate=0.1, epochs=600
22
+ )
23
+
24
+ m.fit(df, freq='D')
25
+
26
+ future = m.make_future_dataframe(df, periods=30, n_historic_predictions=True)
27
+ forecast = m.predict(future)
28
+
29
+ def predict_vn_index(option=None):
30
+ fig1 = m.plot(forecast)
31
+ fig1_path = "forecast_plot1.png"
32
+ fig1.savefig(fig1_path)
33
+
34
+ # Add code to generate the second image (fig2)
35
+ fig2 = m.plot_latest_forecast(forecast) # Replace this line with code to generate the second image
36
+ fig2_path = "forecast_plot2.png"
37
+ fig2.savefig(fig2_path)
38
+ description = "Dự đoán được thực hiện bởi thuật toán AI học sâu (Deep Learning), và học tăng cường dữ liệu bởi đội ngũ AI Consultant. Dữ liệu được cập nhật mới sau 17h của ngày giao dịch."
39
+ disclaimer = "Quý khách chỉ xem đây là tham khảo, công ty không chịu bất cứ trách nhiệm nào về tình trạng đầu tư của quý khách."
40
+
41
+
42
+ return fig1_path, fig2_path, description, disclaimer
43
+
44
+
45
+ if __name__ == "__main__":
46
+ dropdown = gr.inputs.Dropdown(["VNIndex"], label="Choose an option", default="VNIndex")
47
+ outputs = [
48
+ gr.outputs.Image(type="filepath", label="Lịch sử VNIndex và dự đoán"),
49
+ gr.outputs.Image(type="filepath", label="Dự đoán VNIndex cho 45 ngày tới"),
50
+ gr.outputs.Textbox(label="Mô tả"),
51
+ gr.outputs.Textbox(label="Disclaimer")
52
+ ]
53
+ interface = gr.Interface(fn=predict_vn_index, inputs=dropdown, outputs=outputs, title="Dự báo VN Index 45 ngày tới")
54
+ interface.launch()
55
+