import streamlit as st from sklearn import tree import pandas as pd def load_data(): data=pd.read_csv(r"C:\Users\Lenovo\Downloads\sales.csv") return data data = load_data() def predict_page(): from sklearn.preprocessing import LabelEncoder le=LabelEncoder() le.fit(data['Category']) data['Category']=le.transform(data['Category']) le1=LabelEncoder() le1.fit(data['Sub Category']) data['Sub Category']=le1.transform(data['Sub Category']) le2 = LabelEncoder() le2.fit(data['City']) data['City'] = le2.transform(data['City']) X = data[["City", "Category", "Sub Category"]] y = data["Sales"] from sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2) clf = tree.DecisionTreeRegressor() clf = clf.fit(X_train, y_train) y_pred = clf.predict(X_test) from sklearn.metrics import mean_absolute_error, r2_score print("Mean Absolute Error:", mean_absolute_error(y_test, y_pred)) print("R-squared Score:", r2_score(y_test, y_pred)) clf = tree.DecisionTreeRegressor() clf = clf.fit(X_train, y_train) def predict(City, Category, Sub_Category): prediction = clf.predict([[City, Category, Sub_Category]]) return prediction st.title("Sales Prediction") City = st.selectbox("Select City", options=data['City'].unique()) category = st.selectbox("Select category", options=data["Category"].unique()) sub_category = st.selectbox("Select sub category", options=data["Sub Category"]) if st.button("Predict"): result = predict(City, category, sub_category) st.success(f'Predicted Sales: {result}') return predict_page()