Spaces:
Sleeping
Sleeping
Commit
·
97d7d24
1
Parent(s):
06e6b3c
Create app.py
Browse files
app.py
ADDED
@@ -0,0 +1,99 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# import required libraries
|
2 |
+
|
3 |
+
import pandas as pd
|
4 |
+
import numpy as np
|
5 |
+
import matplotlib.pyplot as plt
|
6 |
+
import seaborn as sns
|
7 |
+
import pickle
|
8 |
+
|
9 |
+
from datetime import datetime
|
10 |
+
from datetime import timedelta
|
11 |
+
from sklearn.model_selection import RandomizedSearchCV, GridSearchCV, train_test_split
|
12 |
+
from sklearn.ensemble import RandomForestRegressor
|
13 |
+
from sklearn.metrics import r2_score
|
14 |
+
from sklearn.preprocessing import LabelEncoder
|
15 |
+
from sklearn.preprocessing import StandardScaler
|
16 |
+
import streamlit as st
|
17 |
+
import warnings
|
18 |
+
warnings.filterwarnings('ignore')
|
19 |
+
|
20 |
+
st.title("Predict Unrolled Values")
|
21 |
+
st.sidebar.header('Enter the Details here')
|
22 |
+
st.write("""Regression Model""")
|
23 |
+
|
24 |
+
# load the saved model using pickle
|
25 |
+
with open('aajTak_model.pkl', 'rb') as f1:
|
26 |
+
model1 = pickle.load(f1)
|
27 |
+
|
28 |
+
# Load the saved weekDay label encoder object using pickle
|
29 |
+
with open('weekDay_le.pkl','rb') as file1:
|
30 |
+
weekDay_le = pickle.load(file1)
|
31 |
+
|
32 |
+
# Load the saved timeBand label encoder object using pickle
|
33 |
+
with open('timeBand_le.pkl','rb') as file2:
|
34 |
+
timeBand_le = pickle.load(file2)
|
35 |
+
|
36 |
+
# previous_number_of_repairs =
|
37 |
+
# st.sidebar.number_input('Enter the Previous Number of Repairs Undergone 0 to 5 )',min_value=0,max_value=5,step=1)
|
38 |
+
|
39 |
+
# DATA from user
|
40 |
+
def user_report():
|
41 |
+
|
42 |
+
Share = round(float(st.sidebar.slider('Share', 0.000000, 100.000000, 0.611246)), 6)
|
43 |
+
AMA = round(float(st.sidebar.slider('AMA', 0.000000, 45.000000, 4.196084)), 6)
|
44 |
+
rate = round(float(st.sidebar.slider('rate', 0.000000, 1.500000, 0.018516)), 6)
|
45 |
+
daily_reach = round(float(st.sidebar.slider('daily reach', 0.000000, 300.000000, 36.23)), 6)
|
46 |
+
cume_reach = round(float(st.sidebar.slider('cume reach', 0.000000, 300.000000, 36.231006)), 6)
|
47 |
+
|
48 |
+
# Output: {'Friday': 0, 'Monday': 1, 'Saturday': 2, 'Sunday': 3, 'Thursday': 4, 'Tuesday': 5, 'Wednesday': 6}
|
49 |
+
|
50 |
+
Week_Day_Encoded = st.sidebar.selectbox("Week Day",
|
51 |
+
("Monday", "Tuesday","Wednesday","Thursday","Friday", "Saturday", "Sunday" ))
|
52 |
+
if Week_Day_Encoded=='Monday':
|
53 |
+
Week_Day_Encoded=1
|
54 |
+
elif Week_Day_Encoded=="Tuesday":
|
55 |
+
Week_Day_Encoded=5
|
56 |
+
elif Week_Day_Encoded=="Wednesday":
|
57 |
+
Week_Day_Encoded=6
|
58 |
+
elif Week_Day_Encoded=="Thursday":
|
59 |
+
Week_Day_Encoded =4
|
60 |
+
elif Week_Day_Encoded=="Friday":
|
61 |
+
Week_Day_Encoded =0
|
62 |
+
elif Week_Day_Encoded=="Saturday":
|
63 |
+
Week_Day_Encoded =2
|
64 |
+
else:
|
65 |
+
Week_Day_Encoded=3
|
66 |
+
|
67 |
+
user_report_data = {
|
68 |
+
'Share': Share,
|
69 |
+
'AMA': AMA,
|
70 |
+
'rate': rate,
|
71 |
+
'daily reach': daily_reach,
|
72 |
+
'cume reach': cume_reach,
|
73 |
+
'Week_Day_Encoded': Week_Day_Encoded,
|
74 |
+
'Time_Band_Encoded': Time_Band_Encoded}
|
75 |
+
report_data = pd.DataFrame(user_report_data, index=[0])
|
76 |
+
|
77 |
+
return report_data
|
78 |
+
|
79 |
+
#Customer Data
|
80 |
+
user_data = user_report()
|
81 |
+
st.subheader("Entered Details")
|
82 |
+
st.write(user_data)
|
83 |
+
|
84 |
+
|
85 |
+
# define the prediction function
|
86 |
+
def predict_unrolled_value(user_data):
|
87 |
+
|
88 |
+
# make the prediction using the loaded model and input data
|
89 |
+
predicted_unrolled_value = model1.predict(user_data)
|
90 |
+
|
91 |
+
# return the predicted max number of repairs as output
|
92 |
+
return np.round(predicted_unrolled_value[0])
|
93 |
+
|
94 |
+
|
95 |
+
# Function calling
|
96 |
+
y_pred = int(predict_unrolled_value(user_data))
|
97 |
+
st.write("Click here to see the Predictions")
|
98 |
+
if st.button("Predict"):
|
99 |
+
st.subheader(f"Predicted Unrolled Value: {y_pred} ")
|