FIFA-player-rating / predict.py
frommcmxcv's picture
final
a132bb1
# import libraries
import streamlit as st
import pandas as pd
import numpy as np
import pickle
# load model
with open('model.pkl', 'rb') as file:
model = pickle.load(file)
# judul
st.title('FIFA 2022 Player Rating Prediction')
def run():
# buat form untuk input data
with st.form("my_form"):
st.write("Form Data Pemain")
nama = st.text_input(label = "Nama",
help = "Masukkan nama lengkap pemain",
placeholder="Contoh: Cristiano Ronaldo")
usia = st.number_input(label = "Usia",
help = "Masukkan usia pemain",
min_value=16, max_value= 60,
step = 1, placeholder= 'Contoh: 25',
value=None)
height = st.number_input(label = "Tinggi",
help = "Masukkan tingg pemain dalam cm",
min_value=140, max_value= 250,
step = 10, placeholder= 'Contoh: 175',
value=None)
weight = st.number_input(label = "Berat",
help = "Masukkan berat pemain dalam kg",
min_value=40, max_value= 150,
step = 1, placeholder= 'Contoh: 75',
value=None)
price = st.number_input(label = "Harga",
help = "Masukkan harga pemain dalam euro",
min_value=0,
step = 10000, placeholder= 'Contoh: 7500000',
value=None)
st.write('___')
attacking = st.select_slider(label = "Attacking Work Rate",
options = ['Low', 'Medium', 'High'],
help = "Pilih tingkat kinerja serang pemain")
defense = st.select_slider(label = "Defensive Work Rate",
options = ['Low', 'Medium', 'High'],
help = "Pilih tingkat kinerja bertahan pemain")
st.write('___')
pace = st.slider(label = "Pace",
min_value=0, max_value=100, value = 50,
help = "Pilih tingkat pace pemain")
shooting = st.slider(label = "Shooting",
min_value=0, max_value=100, value = 50,
help = "Pilih tingkat shooting pemain")
passing = st.slider(label = "passing",
min_value=0, max_value=100, value = 50,
help = "Pilih tingkat passing pemain")
dribbling = st.slider(label = "dribbling",
min_value=0, max_value=100, value = 50,
help = "Pilih tingkat dribbling pemain")
defending = st.slider(label = "defending",
min_value=0, max_value=100, value = 50,
help = "Pilih tingkat defending pemain")
physicality = st.slider(label = "physicality",
min_value=0, max_value=100, value = 50,
help = "Pilih tingkat physicality pemain")
# Every form must have a submit button.
submitted = st.form_submit_button("Submit")
if submitted:
st.write('hasil input data')
# dataframe
dict = {
'Name': nama,
'Age': usia,
'Height': height,
'Weight': weight,
'Price': price,
'AttackingWorkRate': 'High',
'DefensiveWorkRate': 'Low',
'PaceTotal': pace,
'ShootingTotal': shooting,
'PassingTotal': passing,
'DribblingTotal': dribbling,
'DefendingTotal': defending,
'PhysicalityTotal': physicality}
df = pd.DataFrame([dict])
st.dataframe(df, hide_index=True)
# prediksi
result = model.predict(df)
# tampilkan hasil
st.write(f'# Predicted Rating {nama}:', round(result[0],ndigits=None))