import streamlit as st import pandas as pd import numpy as np import pickle import json st.set_page_config( page_title = 'FIFA 2022', layout = 'wide', initial_sidebar_state = 'expanded' ) with open('model.pkl', 'rb') as file_1: #rb =read binary model = pickle.load(file_1) with open('scaler.pkl', 'rb') as file_2: scaler = pickle.load(file_2) with open('encoder.pkl', 'rb') as file_3: encoder = pickle.load(file_3) with open('num.txt', 'r') as file_4: num = json.load(file_4) with open('cat.txt', 'r') as file_5: cat = json.load(file_5) def run(): # Membuat Form with st.form(key='form_fifa_2022_rmt_040'): name = st.text_input('Name', value='') age = st.number_input('Age', min_value=16, max_value=52, value=24, step=1, help='Usia Pemain') weight = st.number_input('Weight', min_value=60, max_value=120, value=68) height = st.slider('Height', 160, 250, 180) price = st.number_input('Price', min_value=0, max_value=1000000000, value=0) st.markdown('---') attacking_work_rate = st.selectbox('AttackingWorkRate', ('Low', 'Medium', 'High'), index=0) defensive_work_rate = st.radio('DefensiveWorkRate', ('Low', 'Medium', 'High'), index=1) st.markdown('---') pace = st.number_input('Kecepatan Lari', min_value=0, max_value=100, value=50) shooting = st.number_input('Shooting', min_value=0, max_value=100, value=50) passing = st.number_input('Passing', min_value=0, max_value=100, value=50) dribbling = st.number_input('Dribbling', min_value=0, max_value=100, value=50) defending = st.number_input('Defending', min_value=0, max_value=100, value=50) physicality = st.number_input('Physicality', min_value=0, max_value=100, value=50) submitted = st.form_submit_button('Predict !') df_inf = { 'Name': name, 'Age': age, 'Height': height, 'Weight': weight, 'ValueEUR': price, 'AttackingWorkRate': attacking_work_rate, 'DefensiveWorkRate': defensive_work_rate, 'PaceTotal': pace, 'ShootingTotal': shooting, 'PassingTotal': passing, 'DribblingTotal': dribbling, 'DefendingTotal': defending, 'PhysicalityTotal': physicality } # Convert to Dataframe pandas df_inf = pd.DataFrame([df_inf]) st.dataframe(df_inf) df_inf = df_inf.rename(columns= {'ValueEUR':'Price'}) if submitted: # Define num and cat df_inf_num = df_inf[num] df_inf_cat = df_inf[cat] # Feature scaling and encoding df_inf_num_scaled = scaler.transform(df_inf_num) df_inf_cat_encoded = encoder.transform(df_inf_cat) # Concat df_inf_final = np.concatenate([df_inf_num_scaled,df_inf_cat_encoded],axis=1) # Predict the new data prediction = model.predict(df_inf_final) st.write('# Rating : ', str(int(prediction))) if __name__ == '__main__': run()