import gradio as gr import numpy as np import pandas as pd import pickle import xgboost as xgb from catboost import CatBoostRegressor def predict(team, inning, venue, hits, errors, lob, runs, opp_team, opp_runs, opp_hits): data = [team, opp_team, inning, venue, hits, opp_hits, errors, runs, opp_runs, lob] df_main = pd.read_csv("Score_prediction_dataset_11th_July.csv") df_main = df_main.drop(columns=['Final_Score', 'Opp_LOB']) df_main = pd.get_dummies(df_main, columns=['Team_Name', 'Opposition_Team']) df = pd.DataFrame([data], columns=["Team_Name", "Opposition_Team", "Inning", "Home/Away", "Hits", "Opp_Hits", "Errors", "Runs", "Opp_Runs", "LOB"]) df = pd.get_dummies(df, columns=['Team_Name', 'Opposition_Team']) df = df.reindex(columns=df_main.columns, fill_value=0) # print(df.columns) # print(len(df.columns)) xgb_model = xgb.XGBRegressor() xgb_model.load_model('xgbr1_exp10_model.json') with open('pca_model7.pkl', 'rb') as f: pca = pickle.load(f) # with open('label_encoder_teams_xgbr1_exp3.pkl', 'rb') as f: # label_encoder = pickle.load(f) home_away_status = {'Home': 0, 'Away': 1} df['Home/Away'] = df['Home/Away'].map(home_away_status) df = df.astype(int) df = pca.transform(df) score = xgb_model.predict(df) if score[0] < 0: score = np.clip(score[0], a_min=0, a_max=None) return np.round(score,1) if score[0] < runs: score = runs return score return np.round(score[0],1) def predict_2(team, inning, venue, hits, errors, lob, runs, opp_team, opp_runs, opp_hits): data = [team, opp_team, inning, venue, hits, opp_hits, errors, runs, opp_runs, lob] df_main = pd.read_csv("Score_prediction_dataset_11th_July.csv") df_main = df_main.drop(columns=['Final_Score', 'Opp_LOB']) df_main = pd.get_dummies(df_main, columns=['Team_Name', 'Opposition_Team']) df = pd.DataFrame([data], columns=["Team_Name", "Opposition_Team", "Inning", "Home/Away", "Hits", "Opp_Hits", "Errors", "Runs", "Opp_Runs", "LOB"]) df = pd.get_dummies(df, columns=['Team_Name', 'Opposition_Team']) df = df.reindex(columns=df_main.columns, fill_value=0) cat_model = CatBoostRegressor() cat_model.load_model('catbr1_exp11_model.json') # with open('label_encoder_teams_catbr1_exp1.pkl', 'rb') as f: # label_encoder = pickle.load(f) # df['Team_Name'] = label_encoder.transform(df['Team_Name']) # df['Opposition_Team'] = label_encoder.transform(df['Opposition_Team']) home_away_status = {'Home': 0, 'Away': 1} df['Home/Away'] = df['Home/Away'].map(home_away_status) df = df.astype(int) # print(df) with open('pca_model7.pkl', 'rb') as f: pca = pickle.load(f) df = pca.transform(df) score = cat_model.predict(df) if score[0] < 0: score = np.clip(score[0], a_min=0, a_max=None) return np.round(score,1) if score[0] < runs: score = runs return score return np.round(score[0],1) team_names = ["Arizona Diamondbacks", "Atlanta Braves", "Baltimore Orioles", "Boston Red Sox", "Chicago Cubs", "Chicago White Sox", "Cincinnati Reds", "Cleveland Guardians", "Colorado Rockies", "Detroit Tigers", "Houston Astros", "Kansas City Royals", "Los Angeles Angels", "Los Angeles Dodgers", "Miami Marlins", "Milwaukee Brewers", "Minnesota Twins", "New York Mets", "New York Yankees", "Oakland Athletics", "Philadelphia Phillies", "Pittsburgh Pirates", "San Diego Padres", "San Francisco Giants", "Seattle Mariners", "St. Louis Cardinals", "Tampa Bay Rays", "Texas Rangers", "Toronto Blue Jays", "Washington Nationals"] with gr.Blocks() as demo: # gr.Image("../Documentation/Context Diagram.png", scale=2) # gr(title="Your Interface Title") gr.Markdown("""