Spaces:
Running
Running
import gradio as gr | |
import pandas as pd | |
import random | |
from keras.models import load_model | |
import tensorflow as tf | |
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(""" | |
# Subject: Data Science Project Management and Requirement Gathering 02 (Group 4) | |
[](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() |