golda commited on
Commit
8b96ae6
1 Parent(s): 2835f82

Upload 9 files

Browse files
Files changed (9) hide show
  1. X_cat.txt +1 -0
  2. X_num_norm.txt +1 -0
  3. X_num_skew.txt +1 -0
  4. app.py +10 -0
  5. eda.py +46 -0
  6. gabungandata.csv +0 -0
  7. pipelines.pkl +3 -0
  8. prediction.py +72 -0
  9. requirements.txt +7 -0
X_cat.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ ["HasCrCard", "IsActiveMember", "Geography", "Gender"]
X_num_norm.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ ["CreditScore", "Tenure", "Balance", "EstimatedSalary"]
X_num_skew.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ ["Age", "NumOfProducts"]
app.py ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import eda
3
+ import prediction
4
+
5
+ navigation = st.sidebar.selectbox('Pilih Halaman: ', ('EDA', 'predict'))
6
+
7
+ if navigation == 'EDA':
8
+ eda.run()
9
+ else:
10
+ prediction.run()
eda.py ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import pandas as pd
3
+ import seaborn as sns
4
+ import matplotlib.pyplot as plt
5
+ import plotly.express as px
6
+
7
+ st.set_page_config(
8
+ page_title= 'pelanggan pergi?',
9
+ layout='wide',
10
+ initial_sidebar_state='expanded'
11
+ )
12
+ def run():
13
+ # membuat Tittle
14
+ st.title('prediksi pelanggan yang tak akan kembali')
15
+
16
+ # magic syntaxs
17
+ '''
18
+ pada page kali ini, penulis akan mencoba melihat apakah pelanggan akan pergi untuk selamanya atau tidak
19
+ '''
20
+
21
+ # show dataframe
22
+ data = pd.read_csv('gabungandata.csv')
23
+ st.dataframe(data)
24
+
25
+ # membuat barplot berdasarkan input user
26
+ st.write('#### barplot berdasarkan Input user')
27
+ pilihan = st.selectbox('pilih colomn: ', ('Gender', 'NumOfProducts', 'Geography', 'Exited'))
28
+ fig = plt.figure(figsize= (15,5))
29
+ sns.countplot(data[pilihan])
30
+ st.pyplot(fig)
31
+
32
+ # membuat histogram berdasarkan input user
33
+ st.write('#### Histogram berdasarkan Input user')
34
+ pilihan = st.selectbox('pilih colomn: ', ('CreditScore', 'Age', 'Balance', 'EstimatedSalary', 'Balance'))
35
+ fig = plt.figure(figsize= (15,5))
36
+ sns.histplot(data[pilihan], bins=30, kde=True)
37
+ st.pyplot(fig)
38
+
39
+ # membuat plotly plot
40
+ st.write('#### Plotly Plot - age with CreditScore')
41
+ fig = px.scatter(data, x='Age', y= 'CreditScore', hover_data=['Exited'])
42
+ st.plotly_chart(fig)
43
+
44
+ if __name__== '__main__':
45
+ run()
46
+
gabungandata.csv ADDED
The diff for this file is too large to render. See raw diff
 
pipelines.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:45ce4a964f252a7d5560a5a258ad2ed2f71ce9bff95cb61ca213d343ac468f85
3
+ size 17582071
prediction.py ADDED
@@ -0,0 +1,72 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import pandas as pd
3
+ import numpy as np
4
+ import pickle
5
+ import json
6
+
7
+ # Load All Files
8
+ with open('pipelines.pkl', 'rb') as file_1:
9
+ clf_rfc = pickle.load(file_1)
10
+
11
+ with open('X_num_skew.txt', 'r') as file_2:
12
+ X_num_skew = json.load(file_2)
13
+
14
+ with open('X_num_norm.txt', 'r') as file_3:
15
+ X_num_norm = json.load(file_3)
16
+
17
+ with open('X_cat.txt', 'r') as file_4:
18
+ X_cat = json.load(file_4)
19
+
20
+ def run():
21
+ # membuat Tittle
22
+ st.title('prediksi apakah konsumen anda pergi?')
23
+
24
+ with st.form(key='form_prediksi_konsumen_minggat'):
25
+ Surname = st.text_input('Surname', value='')
26
+ Age = st.number_input('Age', min_value=18, max_value=80, step=1, help='Usia pelanggan?')
27
+ Gender = st.radio('Gender', ('Male','Female'), index=1, help='jenis kelamin?')
28
+ Geography = st.selectbox('Geography', ('Spain','France', 'Germany'), index=0, help='kebangsaan?')
29
+ st.markdown('---')
30
+
31
+ HasCrCard = st.selectbox('HasCrCard', (0,1), index=0, help='apakah anda kartu kredit?')
32
+ IsActiveMember = st.selectbox('IsActiveMember', (0,1), index=0, help='apakah anda punya kartu member?')
33
+ st.markdown('---')
34
+
35
+ CreditScore = st.slider('CreditScore', 350, 850, 500)
36
+ Tenure = st.slider('Tenure', 0, 10, 0)
37
+ Balance = st.slider('Balance', 0, 250000, 50000)
38
+ EstimatedSalary = st.slider('EstimatedSalary', 1000, 150000, 34000)
39
+ NumOfProducts = st.slider('NumOfProducts', 1, 4, 1)
40
+
41
+ submitted = st.form_submit_button('Predict')
42
+
43
+ data_inf = {
44
+ 'Age': Age,
45
+ 'Gender': Gender,
46
+ 'Geography': Geography,
47
+ 'HasCrCard': HasCrCard,
48
+ 'IsActiveMember': IsActiveMember,
49
+ 'CreditScore': CreditScore,
50
+ 'Tenure': Tenure,
51
+ 'Balance': Balance,
52
+ 'EstimatedSalary': EstimatedSalary,
53
+ 'NumOfProducts': NumOfProducts,
54
+ }
55
+
56
+ data_inf = pd.DataFrame([data_inf])
57
+ a = st.dataframe(data_inf)
58
+ b = ('')
59
+
60
+ if a == 0:
61
+ b = 'tidak pergi'
62
+ else:
63
+ b = 'pergi'
64
+
65
+ if submitted:
66
+
67
+ y_pred_inf = clf_rfc.predict(data_inf)
68
+ st.write('# berapa pelanggan anda pergi? \n', str(b))
69
+
70
+ if __name__== '__main__':
71
+ run()
72
+
requirements.txt ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ streamlit
2
+ pandas
3
+ seaborn
4
+ matplotlib
5
+ plotly
6
+ numpy
7
+ scikit-learn==1.2.1