Priyanka-Kumavat commited on
Commit
97d7d24
·
1 Parent(s): 06e6b3c

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +99 -0
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} ")