import streamlit as st import joblib import pandas as pd import json from io import StringIO with open('LinearRegression_model.pkl', 'rb') as file_1: lin_reg = joblib.load(file_1) # Load the MinMaxScaler with open('Scaler.pkl', 'rb') as file_2: scaler = joblib.load(file_2) # Load the OneHotEncoder with open('OHEncoder.pkl', 'rb') as file_3: encoder = joblib.load(file_3) with open('num_features.txt', 'r') as file_4: num_features = json.load(file_4) with open('cat_features.txt', 'r') as file_5: cat_features = json.load(file_5) st.title('Prediksi Harga Taksi Online') name = st.selectbox('Service Name',tuple(encoder.categories_[0].tolist())) #name = st.selectbox('Service Name',('Black','Black SUV','Lux','Lux Black','Lux Black XL','Lyft','Lyft XL','UberPool','UberX','UberXL','WAV')) distance = st.slider('Distance (miles)',0,20) sm = st.selectbox('Surge Multiplier',(1.0, 1.25, 2.5 , 2.0 , 1.75, 1.5 , 3.0 )) new_data = pd.DataFrame({ 'name': [name], 'distance': [distance], 'surge_multiplier': [sm] }) ''' new_data = pd.DataFrame([[name,distance,sm]],columns=['name','disntance','surge_multiplier']) ''' new_cat_encoded = encoder.transform(new_data[cat_features]) cat_cols_df = pd.DataFrame(new_cat_encoded, columns=encoder.get_feature_names_out(cat_features)) X = pd.concat([cat_cols_df, new_data['surge_multiplier']], axis=1) num_cols_scaled = scaler.transform(new_data[num_features]) X['distance'] = num_cols_scaled col = X.pop('distance') X.insert(0, 'distance', col) col = X.pop('surge_multiplier') X.insert(1, 'surge_multiplier', col) if st.button('Predict'): price_pred = lin_reg.predict(X) st.subheader('Harga taksi: ${:.2f}'.format(price_pred[0]))