Muhamadinsani17 commited on
Commit
5128ea5
·
1 Parent(s): 79101a5

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +35 -58
app.py CHANGED
@@ -1,59 +1,36 @@
1
  import streamlit as st
2
- import pandas as pd
3
- import joblib
4
-
5
- st.header('FTDS Model Deployment')
6
- st.write("""
7
- Created by FTDS Curriculum Team
8
- Use the sidebar to select input features.
9
- """)
10
-
11
- st.sidebar.header('User Input Features')
12
-
13
- def user_input():
14
- limit_balance = st.sidebar.selectbox('limit_balance', [ 80000., 200000., 20000., 260000., 150000., 300000., 130000.,
15
- 500000., 230000., 460000., 780000., 170000., 320000., 290000.,
16
- 240000., 340000., 360000., 380000., 180000., 100000., 90000.,
17
- 50000., 160000., 70000., 280000., 220000., 30000., 120000.,
18
- 10000., 470000., 310000., 140000., 60000., 110000., 430000.,
19
- 210000., 490000., 330000., 250000., 400000., 370000., 440000.,
20
- 700000., 530000., 390000., 410000., 270000., 560000., 40000.,
21
- 680000., 480000., 190000., 350000., 420000., 510000., 800000.,
22
- 450000., 750000., 620000.])
23
- pay_1 = st.sidebar.slider('pay_1', min_value=-12, max_value=12)
24
- pay_2 = st.sidebar.slider('pay_2', min_value=-12, max_value=12)
25
- pay_3 = st.sidebar.slider('pay_3', min_value=-12, max_value=12)
26
- pay_4 = st.sidebar.slider('pay_4', min_value=-12, max_value=12)
27
- pay_5 = st.sidebar.slider('pay_5', min_value=-12, max_value=12)
28
- pay_6 = st.sidebar.slider('pay_6', min_value=-12, max_value=12)
29
-
30
- data = {
31
- 'limit_balance': limit_balance,
32
- 'pay_0': pay_1,
33
- 'pay_2': pay_2,
34
- 'pay_3': pay_3,
35
- 'pay_4': pay_4,
36
- 'pay_5': pay_5,
37
- 'pay_6': pay_6
38
- }
39
- features = pd.DataFrame(data, index=[0])
40
- return features
41
-
42
-
43
- input = user_input()
44
-
45
- st.subheader('User Input')
46
- st.write(input)
47
-
48
- load_model = joblib.load("my_model.pkl")
49
-
50
- if st.button("Predict"):
51
- prediction = load_model.predict(input)
52
-
53
- if prediction == 1:
54
- prediction = 'Defaulted Payment'
55
- else:
56
- prediction = 'Not Defaulted'
57
-
58
- st.subheader('Based on user input, the placement model predicted: ')
59
- st.header(prediction)
 
1
  import streamlit as st
2
+ import eda
3
+ import models
4
+
5
+ page = st.sidebar.selectbox(label='Select Page:', options=['Home Page', 'Exploration Data Analysis', 'Model Prediction'])
6
+ st.sidebar.write('')
7
+ st.sidebar.write('')
8
+ st.sidebar.write('')
9
+ st.sidebar.write('')
10
+ st.sidebar.write('')
11
+ st.sidebar.image('https://www.convergencevc.com/wp-content/uploads/2018/12/Logo-Hacktiv8-bordered.png')
12
+
13
+ if page == 'Home Page':
14
+ st.image('https://th.bing.com/th/id/OIP.v2v_bXcAaqU4DwzYjkygXQHaCe?w=1200&h=400&rs=1&pid=ImgDetMain')
15
+ st.markdown("<h1 style='text-align: center;'>Welcome to Home Page<br>Grade Challenge 5</h1>", unsafe_allow_html=True)
16
+ # st.markdown("<h2 style='text-align: center;'></h2>", unsafe_allow_html=True)
17
+ st.markdown("========================================================================================")
18
+ st.write('')
19
+ st.markdown("<h4 style='text-align: left;'>Nama : Muhammad Insani</h4>", unsafe_allow_html=True)
20
+ st.markdown("<h4 style='text-align: left;'>Batch : HCK-010</h4>", unsafe_allow_html=True)
21
+ st.markdown("<h4 style='text-align: left;'>Objective : Program ini dibuat untuk memprediksi default payment", unsafe_allow_html=True)
22
+ # st.write("Objective : Program ini dibuat untuk memprediksi default_payment_next_month menggunakan dataset pada `bigquery-public-data.ml_datasets.credit_card_default`")
23
+ st.write('')
24
+ st.caption('Silahkan pilih menu lain di Select Box pada sebelah kiri layar anda untuk memulai!')
25
+ st.write('')
26
+ st.write('')
27
+
28
+ with st.expander("Kesimpulan"):
29
+ st.caption('''Program awalnya menggunakan tiga model, yaitu Logistic Regression, K-Nearest Neighbors (KNN), dan Support Vector Machine (SVM) untuk memprediksi default_payment_next_month. Setelah evaluasi, KNN terpilih sebagai model terbaik dengan F1 Score konsisten sekitar 0.466 dan parameter terbaik, seperti n_neighbors 25 dan metrik cosine.''')
30
+ st.caption('''Model KNN berhasil mengatasi masalah default_payment_next_month dengan baik, mengungguli kedua model lainnya. Model K-Nearest Neighbors (KNN) memiliki kinerja baik dalam mengidentifikasi pelanggan tidak mengalami default (kelas 0) pada data uji, dengan True Negatif (TN) sebanyak 672. Namun, terdapat kesalahan signifikan, khususnya 114 False Negatif, yang menandakan model melewatkan pelanggan yang sebenarnya mengalami default (kelas 1). Meskipun demikian, model berhasil mengidentifikasi 65 True Positif, menunjukkan kemampuannya dalam mengenali pelanggan yang benar-benar mengalami default.''')
31
+ st.caption('''Dengan tingkat True Negatif yang tinggi, model ini dapat digunakan dengan baik untuk mengidentifikasi pelanggan yang tidak mengalami default. Namun, untuk kasus di mana mengidentifikasi pelanggan yang benar-benar mengalami default lebih kritis, model ini mungkin perlu dipertimbangkan dengan hati-hati.''')
32
+ elif page == 'Exploration Data Analysis':
33
+ eda.run()
34
+ else:
35
+ models.run()
36
+