import gradio as gr import pandas as pd import random from keras.models import load_model import numpy as np data = pd.read_pickle("merged_all_table.pkl", compression='bz2') home_team_id = sorted(data["home_team_long_name"].unique()) away_team_id = sorted(data["away_team_long_name"].unique()) nn_model = load_model('models/nn_model.h5') def main_process(model, Home_team, Away_team): home_temp = data[data["home_team_long_name"] == Home_team] home_temp = home_temp[["home_team_overall_score", "home_total_goal", "home_players_avg_overall_rating", "home_players_avg_overall_score", "home_players_avg_ideal_body_rate", "home_total_win", "home_total_loose", "home_total_draw", "league_home_total_win", "league_home_total_loose", "league_home_total_draw"]] print("Home Team Data Geathring ✅") away_temp = data[data["away_team_long_name"] == Away_team] away_temp = away_temp[["away_team_overall_score", "away_total_goal", "away_players_avg_overall_rating", "away_players_avg_overall_score", "away_players_avg_ideal_body_rate", "away_total_win", "away_total_loose", "away_total_draw", "league_away_total_win", "league_away_total_loose", "league_away_total_draw"]] print("Away Team Data Geathring ✅") table = pd.concat([home_temp.mean(), away_temp.mean()], axis=0) table = table[["home_team_overall_score", "away_team_overall_score", "home_total_goal", "away_total_goal", "home_players_avg_overall_rating", "home_players_avg_overall_score", "home_players_avg_ideal_body_rate", "away_players_avg_overall_rating", "away_players_avg_overall_score", "away_players_avg_ideal_body_rate", "home_total_win", "home_total_loose", "home_total_draw", "away_total_win", "away_total_loose", "away_total_draw", "league_home_total_win", "league_home_total_loose", "league_home_total_draw", "league_away_total_win", "league_away_total_loose", "league_away_total_draw"]] print("Table Concatination ✅") X = table.to_frame().T pred = model.predict(X) predicted_labels = np.argmax(pred) print("Data Prediction ✅") print(predicted_labels) return predicted_labels def predict(Home_team, Away_team, Model_name): if Home_team == "": raise gr.Error("Home Team is required, Please Select The Home Team!") if Away_team == "": raise gr.Error("Away Team is required, Please Select The Away Team!") if Model_name == "": raise gr.Error("Model is required, Please Select The Model!") if Model_name == "Simple Nueral Network Model": model = nn_model prediction = main_process(model, Home_team, Away_team) if prediction == 0: return "🥳 Home Team Win 🎉" if prediction == 1: return "🥳 Away Team Win 🎉" if prediction == 2: return "😑 Match Draw 😑" # markup table for markdown # # Members: # | Students Name | Student ID | # | :--- | :----: | # | Zeel Karshanbhai Sheladiya | 500209119 | # | Ravikumar Chandrakantbhai Patel | 500196861 | # | Dharma Teja Reddy Bandreddi | 500209454 | # | Sai Charan Reddy Meda | 500201602 | # | Aditya Babu | 500209122 | # | Sudip Bhattarai | 500198055 | # | NOMAN FAZAL MUKADAM | 500209115 | # | Leela Prasad Kavuri | 500209550 | # | Vamsi Dasari | 500200775 | with gr.Blocks() as demo: gr.Markdown(""" [![GitHub](https://img.shields.io/badge/github-%23121011.svg?style=for-the-badge&logo=github&logoColor=white)](https://github.com/ravi7522/Football-Prediction) """) with gr.Row(): gr.Label("⚽️ Football Prediction ⚽️", container=False) with gr.Row(): with gr.Column(): dd_home_team = gr.Dropdown( label="Home Team", choices=home_team_id, info="Select Your Home Team:", multiselect=False, ) with gr.Column(): dd_away_team = gr.Dropdown( label="Away Team", choices=away_team_id, info="Select Your Away Team:", multiselect=False, ) with gr.Row(): with gr.Column(): dd_model = gr.Dropdown( label="Model ( Feature Under Construction 🚧 )", choices=["Simple Nueral Network Model"], info="Select Your Model:", multiselect=False, ) with gr.Row(): predict_btn = gr.Button(value="Predict") with gr.Row(): Answer = gr.Label("👋 Hello, Let us predict the Football Match 💁‍♂️", container=False) predict_btn.click( predict, inputs=[ dd_home_team, dd_away_team, dd_model, ], outputs=[Answer], ) demo.launch()