Spaces:
Sleeping
Sleeping
| import streamlit as st | |
| import pandas as pd | |
| from fastai.tabular.all import load_learner | |
| import random | |
| import torch | |
| import joblib | |
| import numpy as np | |
| # Set random seed for reproducibility | |
| random.seed(42) | |
| torch.manual_seed(42) | |
| # Load the saved model and LabelEncoder | |
| learn = load_learner('tabular_model1.pkl') # Replace with your model path | |
| label_encoder = joblib.load('label_encoder.pkl') # Replace with your encoder path | |
| # Function to make predictions | |
| def predict_location(input_data): | |
| input_df = pd.DataFrame([input_data]) | |
| pred_class, pred_idx, outputs = learn.predict(input_df.iloc[0]) | |
| # Apply softmax to get probabilities | |
| probabilities = torch.nn.functional.softmax(torch.tensor(outputs), dim=0) | |
| # Get the index of the maximum probability | |
| pred_idx = np.argmax(probabilities.numpy()) | |
| # Convert the index to the corresponding location | |
| location = label_encoder.inverse_transform([pred_idx])[0] | |
| # Debugging: Output probabilities and index | |
| print(f"Probabilities: {probabilities.numpy()}") | |
| print(f"Predicted index: {pred_idx}") | |
| return location | |
| # Streamlit app | |
| def main(): | |
| st.title('Location Prediction App') | |
| # Example input fields (replace with your actual input fields) | |
| product_name = st.text_input('Product Name') | |
| day_of_purchase = st.selectbox('Day of Purchase', ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']) | |
| product_price = st.number_input('Product Price (INR)') | |
| avg_purchase_value = st.number_input('Average Purchase Value (INR)') | |
| # Prepare input data for prediction | |
| input_data = { | |
| 'Product Name': product_name, | |
| 'Day of Purchase': day_of_purchase, | |
| 'Product Price (INR)': product_price, | |
| 'Average Purchase Value (INR)': avg_purchase_value | |
| } | |
| # Predict button | |
| if st.button('Predict Location'): | |
| prediction = predict_location(input_data) | |
| st.success(f'Predicted Location: {prediction}') | |
| if __name__ == '__main__': | |
| main() | |