-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathstreamlit_regression.py
More file actions
63 lines (50 loc) · 1.95 KB
/
streamlit_regression.py
File metadata and controls
63 lines (50 loc) · 1.95 KB
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
import pickle
import streamlit as st
import tensorflow as tf
from sklearn.preprocessing import StandardScaler, LabelEncoder, OneHotEncoder
import pandas as pd
import numpy as np
## Load the trained Model
model = tf.keras.models.load_model('regression_model.h5')
with open('lable_encoder_gender.pkl','rb') as file:
lable_encoder_gender = pickle.load(file)
with open('one_hot_encoder_geo.pkl','rb') as file:
onehot_encoder_geo = pickle.load(file)
with open('scaler.pkl','rb') as file:
scaler = pickle.load(file)
## Streamlit app
st.title("Customer Churn Salary Predicition")
## user input
geography = st.selectbox('Geography',onehot_encoder_geo.categories_[0])
gender = st.selectbox('Gender',lable_encoder_gender.classes_)
age = st.slider('Age',18,92)
balance = st.number_input('Balance')
credit_score = st.number_input('Credit Score')
exited = st.selectbox('Exited',[0,1])
tenure = st.slider('Tenure',0,10)
num_of_products = st.slider('Number of Products',1,4)
has_cr_card = st.selectbox('Has Credit Card',[0,1])
is_active_member = st.selectbox('Is Active Member',[0,1])
## prepare the input data
input_data = pd.DataFrame({
'CreditScore' : [credit_score],
'Gender' : [lable_encoder_gender.transform([gender])[0]],
'Age' : [age],
'Tenure' : [tenure],
'Balance' : [balance],
'NumOfProducts' : [num_of_products],
'HasCrCard' : [has_cr_card],
'IsActiveMember' : [is_active_member],
'Exited' : [exited]
})
## One Hot Encoding GeoGraphy
geo_encoded = onehot_encoder_geo.transform([[geography]]).toarray()
geo_encoded_df = pd.DataFrame(geo_encoded,columns=onehot_encoder_geo.get_feature_names_out(['Geography']))
## combine the data
input_data = pd.concat([input_data.reset_index(drop=True),geo_encoded_df],axis=1)
## Scale the input data
scaled_data = scaler.transform(input_data)
## prediction churn
prediction = model.predict(scaled_data)
predicted_salary = prediction[0][0]
st.write(f"Predicted Salary : {predicted_salary}")