abhi.2000 / app.py
Abhisesh7's picture
Update app.py
253645c verified
raw
history blame
1.73 kB
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
# Load your trained model
model = keras.models.load_model('your_model.h5') # Ensure this path is correct
# Function to predict stock prices
def predict_stock_price(stock_ticker, start_date, end_date):
# Fetch data
data = yf.download(stock_ticker, start=start_date, end=end_date)
# Check if data is returned
if data.empty:
return "No data available for the selected dates."
# Preprocess data
scaler = MinMaxScaler()
scaled_data = scaler.fit_transform(data['Close'].values.reshape(-1, 1))
# Prepare input for the model
input_data = scaled_data[-60:] # Use the last 60 days of data
input_data = input_data.reshape((1, input_data.shape[0], 1))
# Predict stock prices
prediction = model.predict(input_data)
predicted_price = scaler.inverse_transform(prediction) # Rescale back to original price
return f"Predicted stock price for tomorrow: ${predicted_price[0][0]:.2f}"
# Create the Gradio interface
stock_ticker_input = gr.Dropdown(
choices=["AAPL", "GOOGL", "MSFT", "AMZN", "TSLA"], # Add more tickers as needed
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."
)
# Launch the Gradio app
iface.launch()