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

Upload 9 files

Browse files
Files changed (9) hide show
  1. eda.py +67 -0
  2. models.py +55 -0
  3. my_model.pkl +3 -0
  4. output.png +0 -0
  5. output2.png +0 -0
  6. output3.png +0 -0
  7. output4.png +0 -0
  8. output5.png +0 -0
  9. output6.png +0 -0
eda.py ADDED
@@ -0,0 +1,67 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ from PIL import Image
3
+
4
+ #membuat function untuk nantinya dipanggil di app.py
5
+ def run():
6
+
7
+ st.markdown("<h1 style='text-align: center;'>Welcome to Explaration Data Analysis</h1>", unsafe_allow_html=True)
8
+ st.markdown("========================================================================================")
9
+ st.markdown("")
10
+ col1,col2= st.columns(2)
11
+
12
+ #menampilkan
13
+ col1.markdown("<h4 style='text-align: left;'>1. Default Payment Next Month by Education Level</h4>", unsafe_allow_html=True)
14
+ image = Image.open('D:\HCK-010\phase_1\GC\p1-ftds010-hck-g5-muhamadinsani17\output.png')
15
+ col1.image(image, caption='figure 1')
16
+
17
+ #menampilkan penjelasan
18
+ with col1.expander('Explanation'):
19
+ st.caption('Berdasarkan visualisasi diatas, ini menunjukkan bahwa kartu kredit lebih umum digunakan oleh mereka dengan tingkat pendidikan yang lebih tinggi yaitu oleh Pascasarjana, Universitas, dan SMA. Tingkat pendidikan kemungkinan dapat menjadi faktor yang mempengaruhi kemungkinan keterlambatan pembayaran pada kartu kredit. pada tingkat pendidikan Pascasarjana dengan proporsi 177 dari 1039 nasabah (17%) dan univeristas dengan 342 dari 1400 (24%).')
20
+
21
+ #menampilkan
22
+ col2.markdown("<h4 style='text-align: left;'>2. Default Payment Next Month by Marital Status</h4>", unsafe_allow_html=True)
23
+ image = Image.open('D:\HCK-010\phase_1\GC\p1-ftds010-hck-g5-muhamadinsani17\output2.png')
24
+ col2.image(image, caption='figure 2')
25
+
26
+ #menampilkan penjelasan
27
+ with col2.expander('Explanation'):
28
+ st.caption('Proporsi gagal bayar cenderung lebih tinggi pada nasabah Menikah yaitu 302 dari total 1332 nasabah (23%) dibandingkan dengan nasabah Lajang dengan 327 dari total 1594 nasabah (20%) dan Janda/duda dengan 6 dari total 35 nasabah (17%), meskipun jumlah gagal pembayaran tertinggi terdapat pada kelompok Lajang.')
29
+
30
+ #menampilkan
31
+ col1.markdown("<h4 style='text-align: left;'>3. Default Payment Next Month by Pay Status</h4>", unsafe_allow_html=True)
32
+ image = Image.open('D:\HCK-010\phase_1\GC\p1-ftds010-hck-g5-muhamadinsani17\output5.png')
33
+ col1.image(image, caption='figure 3')
34
+
35
+ #menampilkan penjelasan
36
+ with col1.expander('Explanation'):
37
+ st.caption('Jika kita membandingkan antara kolom pembayaran yang berbeda, kita dapat melihat bahwa nasabah yang melakukan pembayaran yang konsisten dari bulan ke bulan memiliki kemungkinan lebih kecil untuk gagal bayar. Hal ini dapat terlihat dari jumlah batang yang lebih tinggi untuk nilai pembayaran yang sama di semua kolom pembayaran.')
38
+
39
+ #menampilkan
40
+ col2.markdown("<h4 style='text-align: left;'>4. Default Payment Next Month by Bill Amount</h4>", unsafe_allow_html=True)
41
+ image = Image.open('D:\HCK-010\phase_1\GC\p1-ftds010-hck-g5-muhamadinsani17\output6.png')
42
+ col2.image(image, caption='figure 4')
43
+
44
+ #menampilkan penjelasan
45
+ with col2.expander('Explanation'):
46
+ st.caption('Berdasarkan perbandingan antara kolom tagihan yang berbeda bisa disimpulkan bahwa nasabah dengan jumlah tagihan kartu kredit yang lebih tinggi memiliki kemungkinan lebih besar untuk gagal bayar.')
47
+
48
+ #menampilkan
49
+ col1.markdown("<h4 style='text-align: left;'>5. Default Payment Next Month by Age Range</h4>", unsafe_allow_html=True)
50
+ image = Image.open('D:\HCK-010\phase_1\GC\p1-ftds010-hck-g5-muhamadinsani17\output3.png')
51
+ col1.image(image, caption='figure 5')
52
+
53
+
54
+ #menampilkan penjelasan
55
+ with col1.expander('Explanation'):
56
+ st.caption('Pada rentang usia 21-40 tahun, jumlah default payment next month lebih tinggi dibandingkan dengan rentang usia lainnya,ini menunjukkan adanya potensi risiko kredit yang lebih besar di kalangan tersebut.')
57
+
58
+ #menampilkan
59
+ col2.markdown("<h4 style='text-align: left;'>6. Default Payment Next Month by Limit Balance Range</h4>", unsafe_allow_html=True)
60
+ image = Image.open('D:\HCK-010\phase_1\GC\p1-ftds010-hck-g5-muhamadinsani17\output4.png')
61
+ col2.image(image, caption='figure 6')
62
+
63
+ #menampilkan penjelasan
64
+ with col2.expander('Explanation'):
65
+ st.caption('Berdasarkan visualisasi diatas dapat diamati bahwa semakin tinggi kisaran limit saldo, jumlah default payment cenderung menurun, menunjukkan potensi bahwa nasabah dengan limit saldo yang lebih tinggi memiliki kecenderungan pembayaran yang lebih baik atau lebih stabil.')
66
+
67
+
models.py ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import pandas as pd
3
+ import joblib
4
+
5
+ def run():
6
+ st.markdown("<h1 style='text-align: center;'>Welcome to the Credit Default Prediction Model</h1>", unsafe_allow_html=True)
7
+ st.markdown("========================================================================================")
8
+ st.markdown("<h2 style='text-align: left;'>User Input Features</h2>", unsafe_allow_html=True)
9
+
10
+ def user_input():
11
+ limit_balance = st.number_input('limit balance', min_value=10000, max_value=100000000, step=10000)
12
+ col1,col2= st.columns(2)
13
+ pay_1 = col1.slider('pay in september', min_value=-12, max_value=12, format="paid %d month")
14
+ pay_2 = col2.slider('pay in august', min_value=-12, max_value=12, format="paid %d month")
15
+ pay_3 = col1.slider('pay in july', min_value=-12, max_value=12, format="paid %d month")
16
+ pay_4 = col2.slider('pay in june', min_value=-12, max_value=12, format="paid %d month")
17
+ pay_5 = col1.slider('pay in may', min_value=-12, max_value=12, format="paid %d month")
18
+ pay_6 = col2.slider('pay in april', min_value=-12, max_value=12, format="paid %d month")
19
+
20
+ data = {
21
+ 'limit_balance': limit_balance,
22
+ 'pay_0': pay_1,
23
+ 'pay_2': pay_2,
24
+ 'pay_3': pay_3,
25
+ 'pay_4': pay_4,
26
+ 'pay_5': pay_5,
27
+ 'pay_6': pay_6
28
+ }
29
+
30
+ features = pd.DataFrame(data, index=[0])
31
+ return features
32
+
33
+
34
+ input = user_input()
35
+
36
+ st.markdown("<h2 style='text-align: left;'>User Input Result</h2>", unsafe_allow_html=True)
37
+
38
+ st.table(input)
39
+
40
+ load_model = joblib.load("my_model.pkl")
41
+
42
+ if st.button("Predict", help='Click me!' ):
43
+ prediction = load_model.predict(input)
44
+
45
+ if prediction == 1:
46
+ prediction = 'Defaulted Payment'
47
+ else:
48
+ prediction = 'Not Defaulted'
49
+
50
+ st.markdown("<h4 style='text-align: center;'>Based on user input, the default model is predicted:</h4>", unsafe_allow_html=True)
51
+ st.markdown(f"<h1 style='text-align: center;'>{prediction}</h1>", unsafe_allow_html=True)
52
+
53
+
54
+
55
+
my_model.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a149db17fc414c23e1c0cd7e0513a5705ecc4146d066187664275997faee4512
3
+ size 151011
output.png ADDED
output2.png ADDED
output3.png ADDED
output4.png ADDED
output5.png ADDED
output6.png ADDED