File size: 1,852 Bytes
fc00cff |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
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()
|