Nhyira1's picture
Upload 3 files
581d81b verified
raw
history blame contribute delete
No virus
2.45 kB
import pickle
import streamlit as st
# Importing necessary libraries
import pandas as pd
from huggingface_hub import hf_hub_download
# Function to scale user input
def scale_input(user_input):
with open('scaler.pkl', 'rb') as file:
scaler = pickle.load(file)
user_input_df = pd.DataFrame([user_input], columns=feature_names)
scaled_input = scaler.transform(user_input_df)
return pd.DataFrame(scaled_input, columns=user_input_df.columns)
#download model from hugging face
model_path = hf_hub_download(repo_id="JemimaA/fifa-regression-ensemble", filename="ensemble_model.pkl")
# Load trained model
with open(model_path , 'rb') as file:
model = pickle.load(file)
# Feature names
feature_names = ['value_eur', 'age', 'potential', 'movement_reactions', 'wage_eur']
st.title('Player Rating Prediction App ⚽️')
# User input fields
st.sidebar.header('Player Features')
def user_input_features():
value_eur = st.sidebar.number_input('Value (EUR)', min_value=0, max_value=int(1e9), value=int(1e6))
wage_eur = st.sidebar.number_input('Wage (EUR)', min_value=0, max_value=int(1e9), value=int(1e6))
age = st.sidebar.slider('Age', 16, 40, 25)
potential = st.sidebar.slider('Potential', 1, 100, 50)
movement_reactions = st.sidebar.slider('Movement Reactions', 1, 100, 50)
data = {
'value_eur': value_eur,
'wage_eur': wage_eur,
'age': age,
'potential': potential,
'movement_reactions': movement_reactions
}
return data
input_data = user_input_features()
# Get predictions from model
st.subheader('Prediction')
scaled_input = scale_input(input_data)
prediction = model.predict(scaled_input)
st.write(f"Predicted Player Rating: {prediction[0]:.1f}")
# Explain model's prediction
if st.button('Explain Prediction'):
st.write('In this App, we are using a simple model that averages the predictions of 3 different models: Random Forest, Gradient Boosting and XGBoost to predict the player rating.')
st.write('The model was trained on the FIFA Male Legacy Players dataset, which contains data on players from the popular FIFA video game series. The dataset contains information on player attributes such as age, potential, value, etc. The model was trained to predict the player rating based on these attributes.')
st.write("This is a demo project and doesn't use any advanced model explanation techniques. Use with caution.")