File size: 1,232 Bytes
ee8711b | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | import gradio as gr
import joblib
import numpy as np
# Load model and scaler
model = joblib.load("stock_model.pkl")
scaler = joblib.load("scaler.pkl")
label_encoder = joblib.load("label_encoder.pkl")
def predict_rating(ticker, pe, de, roe, mcap, dividend):
try:
# Prepare input for model
features = np.array([[float(pe), float(de), float(roe), float(mcap), float(dividend)]])
scaled = scaler.transform(features)
prediction = model.predict(scaled)
rating = label_encoder.inverse_transform(prediction)[0]
return f"📈 Stock **{ticker.upper()}** is recommended to: **{rating}**"
except Exception as e:
return f"❌ Error: {str(e)}"
# Define the Gradio interface
iface = gr.Interface(
fn=predict_rating,
inputs=[
gr.Textbox(label="Stock Ticker (e.g., INFY)"),
gr.Number(label="PE Ratio"),
gr.Number(label="DE Ratio"),
gr.Number(label="ROE (%)"),
gr.Number(label="Market Cap (₹ Cr)"),
gr.Number(label="Dividend Yield (%)")
],
outputs="markdown",
title="📊 Stock Recommendation - Morningstar Style",
description="Enter stock parameters to get a Buy/Hold/Sell recommendation."
)
iface.launch()
|