|
import gradio as gr |
|
import pandas as pd |
|
import numpy as np |
|
import yfinance as yf |
|
from sklearn.preprocessing import MinMaxScaler |
|
from tensorflow import keras |
|
|
|
|
|
model = keras.models.load_model('your_model.h5') |
|
|
|
|
|
def predict_stock_price(stock_ticker, start_date, end_date): |
|
|
|
data = yf.download(stock_ticker, start=start_date, end=end_date) |
|
|
|
|
|
if data.empty: |
|
return "No data available for the selected dates." |
|
|
|
|
|
scaler = MinMaxScaler() |
|
scaled_data = scaler.fit_transform(data['Close'].values.reshape(-1, 1)) |
|
|
|
|
|
input_data = scaled_data[-60:] |
|
input_data = input_data.reshape((1, input_data.shape[0], 1)) |
|
|
|
|
|
prediction = model.predict(input_data) |
|
predicted_price = scaler.inverse_transform(prediction) |
|
|
|
return f"Predicted stock price for tomorrow: ${predicted_price[0][0]:.2f}" |
|
|
|
|
|
stock_ticker_input = gr.Dropdown( |
|
choices=["AAPL", "GOOGL", "MSFT", "AMZN", "TSLA"], |
|
label="Select Stock Ticker" |
|
) |
|
|
|
start_date_input = gr.Date(label="Start Date") |
|
end_date_input = gr.Date(label="End Date") |
|
|
|
iface = gr.Interface( |
|
fn=predict_stock_price, |
|
inputs=[ |
|
stock_ticker_input, |
|
start_date_input, |
|
end_date_input |
|
], |
|
outputs="text", |
|
title="Stock Price Prediction App", |
|
description="Enter the stock ticker and date range to predict the stock price for tomorrow." |
|
) |
|
|
|
|
|
iface.launch() |
|
|