MohammedJafar-2001 commited on
Commit
7880504
Β·
verified Β·
1 Parent(s): 032ecfc

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +110 -16
app.py CHANGED
@@ -22,21 +22,110 @@
22
  # st.write(f"The predicted price of the rental house is {result}")
23
 
24
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25
  import joblib
26
  import streamlit as st
27
 
28
- st.title("User Behavior Using Mobile Prediction")
 
 
 
 
 
 
 
 
 
29
 
30
- # Inputs
31
- Device_Model = st.selectbox("Enter Device Model Type", ['Xiaomi Mi 11', 'iPhone 12', 'Google Pixel 5', 'OnePlus 9', 'Samsung Galaxy S21'])
32
- age = st.number_input("Enter age", min_value=0, max_value=100, step=1, format="%d")
33
- gender = st.radio("Enter gender", ['Male', 'Female'])
34
- Operating_System = st.selectbox("Enter Operating System Type", ['Android', 'iOS'])
35
- App_Usage_Time = st.number_input("Enter the App Usage Time")
36
- Screen_On_Time = st.number_input("Enter the Screen On Time")
37
- Battery_Drain = st.number_input("Enter the Battery Drain")
38
- Number_of_Apps_Installed = st.number_input("Enter the Number of Apps Installed")
39
- Data_Usage = st.number_input("Enter the Data Usage")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
40
 
41
  # Load the model
42
  model_path = "./rfc.pkl" # Adjust if in a subdirectory
@@ -52,13 +141,18 @@ try:
52
  operating_system_encoded = mapping_os[Operating_System]
53
  gender_encoded = mapping_gender[gender]
54
 
55
- if st.button("Submit"):
56
- result = model_2.predict([[device_model_encoded, operating_system_encoded, App_Usage_Time, Screen_On_Time, Battery_Drain, Number_of_Apps_Installed, Data_Usage, age, gender_encoded]])
57
- st.write(f"The predicted behavior is: {result}")
 
 
 
 
58
  except FileNotFoundError:
59
- st.error(f"Model file not found at: {model_path}")
60
  except Exception as e:
61
- st.error(f"An error occurred: {e}")
 
62
 
63
 
64
 
 
22
  # st.write(f"The predicted price of the rental house is {result}")
23
 
24
 
25
+ # import joblib
26
+ # import streamlit as st
27
+
28
+ # st.title("User Behavior Using Mobile Prediction")
29
+
30
+ # # Inputs
31
+ # Device_Model = st.selectbox("Enter Device Model Type", ['Xiaomi Mi 11', 'iPhone 12', 'Google Pixel 5', 'OnePlus 9', 'Samsung Galaxy S21'])
32
+ # age = st.number_input("Enter age", min_value=0, max_value=100, step=1, format="%d")
33
+ # gender = st.radio("Enter gender", ['Male', 'Female'])
34
+ # Operating_System = st.selectbox("Enter Operating System Type", ['Android', 'iOS'])
35
+ # App_Usage_Time = st.number_input("Enter the App Usage Time")
36
+ # Screen_On_Time = st.number_input("Enter the Screen On Time")
37
+ # Battery_Drain = st.number_input("Enter the Battery Drain")
38
+ # Number_of_Apps_Installed = st.number_input("Enter the Number of Apps Installed")
39
+ # Data_Usage = st.number_input("Enter the Data Usage")
40
+
41
+ # # Load the model
42
+ # model_path = "./rfc.pkl" # Adjust if in a subdirectory
43
+ # try:
44
+ # model_2 = joblib.load(model_path)
45
+
46
+ # # Encode categorical variables
47
+ # mapping_device = {'Xiaomi Mi 11': 0, 'iPhone 12': 1, 'Google Pixel 5': 2, 'OnePlus 9': 3, 'Samsung Galaxy S21': 4}
48
+ # mapping_os = {'Android': 0, 'iOS': 1}
49
+ # mapping_gender = {'Male': 0, 'Female': 1}
50
+
51
+ # device_model_encoded = mapping_device[Device_Model]
52
+ # operating_system_encoded = mapping_os[Operating_System]
53
+ # gender_encoded = mapping_gender[gender]
54
+
55
+ # if st.button("Submit"):
56
+ # result = model_2.predict([[device_model_encoded, operating_system_encoded, App_Usage_Time, Screen_On_Time, Battery_Drain, Number_of_Apps_Installed, Data_Usage, age, gender_encoded]])
57
+ # st.write(f"The predicted behavior is: {result}")
58
+ # except FileNotFoundError:
59
+ # st.error(f"Model file not found at: {model_path}")
60
+ # except Exception as e:
61
+ # st.error(f"An error occurred: {e}")
62
+
63
+
64
  import joblib
65
  import streamlit as st
66
 
67
+ # Set page configuration
68
+ st.set_page_config(page_title="User Behavior Prediction", page_icon="πŸ“±", layout="wide")
69
+
70
+ # Title and Description
71
+ st.title("πŸ“± User Behavior Prediction Using Mobile Data")
72
+ st.markdown("""
73
+ Welcome to the **User Behavior Prediction App**!
74
+ This tool predicts user behavior based on mobile usage data, powered by a machine learning model.
75
+ Fill in the details below and click **Submit** to see the results.
76
+ """)
77
 
78
+ # Inputs in columns for better alignment
79
+ col1, col2 = st.columns(2)
80
+
81
+ with col1:
82
+ Device_Model = st.selectbox(
83
+ "πŸ“± Device Model Type",
84
+ ['Xiaomi Mi 11', 'iPhone 12', 'Google Pixel 5', 'OnePlus 9', 'Samsung Galaxy S21'],
85
+ help="Select the type of mobile device being used."
86
+ )
87
+ Operating_System = st.selectbox(
88
+ "βš™οΈ Operating System Type",
89
+ ['Android', 'iOS'],
90
+ help="Select the mobile's operating system."
91
+ )
92
+ gender = st.radio(
93
+ "πŸ‘€ Gender",
94
+ ['Male', 'Female'],
95
+ help="Select the gender of the user."
96
+ )
97
+ age = st.number_input(
98
+ "πŸŽ‚ Age",
99
+ min_value=0, max_value=100, step=1, format="%d",
100
+ help="Enter the user's age."
101
+ )
102
+
103
+ with col2:
104
+ App_Usage_Time = st.number_input(
105
+ "⏱️ App Usage Time (in hours)",
106
+ min_value=0.0, step=0.1,
107
+ help="Enter the total app usage time (e.g., 3.5 hours)."
108
+ )
109
+ Screen_On_Time = st.number_input(
110
+ "πŸ”† Screen On Time (in hours)",
111
+ min_value=0.0, step=0.1,
112
+ help="Enter the total screen on time (e.g., 5.2 hours)."
113
+ )
114
+ Battery_Drain = st.number_input(
115
+ "πŸ”‹ Battery Drain (in percentage)",
116
+ min_value=0.0, step=0.1,
117
+ help="Enter the battery drain percentage (e.g., 15.5%)."
118
+ )
119
+ Number_of_Apps_Installed = st.number_input(
120
+ "πŸ“± Number of Apps Installed",
121
+ min_value=0, step=1,
122
+ help="Enter the total number of apps installed on the device."
123
+ )
124
+ Data_Usage = st.number_input(
125
+ "πŸ“Ά Data Usage (in GB)",
126
+ min_value=0.0, step=0.1,
127
+ help="Enter the total data usage (e.g., 1.5 GB)."
128
+ )
129
 
130
  # Load the model
131
  model_path = "./rfc.pkl" # Adjust if in a subdirectory
 
141
  operating_system_encoded = mapping_os[Operating_System]
142
  gender_encoded = mapping_gender[gender]
143
 
144
+ # Predict and display result
145
+ if st.button("πŸš€ Submit"):
146
+ with st.spinner("Running prediction..."):
147
+ result = model_2.predict([[device_model_encoded, operating_system_encoded, App_Usage_Time, Screen_On_Time, Battery_Drain, Number_of_Apps_Installed, Data_Usage, age, gender_encoded]])
148
+ st.success("πŸŽ‰ Prediction Completed!")
149
+ st.markdown(f"**πŸ“Š Predicted User Behavior:** `{result[0]}`")
150
+
151
  except FileNotFoundError:
152
+ st.error(f"🚨 Model file not found at: `{model_path}`. Please upload the model.")
153
  except Exception as e:
154
+ st.error(f"🚨 An error occurred: {e}")
155
+
156
 
157
 
158