Bitha commited on
Commit
309d3ab
1 Parent(s): b0b10f5

Upload 5 files

Browse files
Files changed (5) hide show
  1. P1G5_Set_1_salsa_sabitha.csv +0 -0
  2. app.py +28 -0
  3. eda.py +52 -0
  4. model.pkl +3 -0
  5. prediction.py +72 -0
P1G5_Set_1_salsa_sabitha.csv ADDED
The diff for this file is too large to render. See raw diff
 
app.py ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Import Library
2
+ import streamlit as st
3
+
4
+ # Import Halaman Streamlit yang telah dibuat
5
+ import eda
6
+ import prediction
7
+
8
+ # Tombol Navigasi
9
+ navigasi = st.sidebar.selectbox(label='Select Page:', options=['Home Page', 'Exploration Data Analysis', 'Model Prediksi'])
10
+
11
+ # Looping untuk navigasi
12
+ if navigasi == 'Home Page':
13
+ st.image("https://storage.googleapis.com/danacita-website-v3-prd/website_v3/images/biaya_bootcamp__kursus_hacktiv8_6.original.png")
14
+ st.header('Graded Chalenge 5')
15
+ st.write('')
16
+ st.write('Nama : Salsa Sabitha Hurriyah')
17
+ st.write('Batch : HCK - 014')
18
+ st.write('Model Classification untuk memprediksi pembayaran kredit card pada bulan berikutnya')
19
+ st.write('')
20
+ st.caption('Silahkan pilih menu lain pada Select Box di sebelah kiri layar anda untuk memulai!')
21
+
22
+ # Menampilkan halam EDA
23
+ elif navigasi == 'Exploration Data Analysis':
24
+ eda.run()
25
+
26
+ # Menampilkan halaman prediksi
27
+ elif navigasi == 'Model Prediksi':
28
+ prediction.run()
eda.py ADDED
@@ -0,0 +1,52 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # import library
2
+ import streamlit as st
3
+ import pandas as pd
4
+ import numpy as np
5
+ import matplotlib.pyplot as plt
6
+ import seaborn as sns
7
+ import plotly.express as px
8
+
9
+ # Set Config Halaman
10
+ st.set_page_config(
11
+ page_title = "Exploratory Data Analysis (EDA)",
12
+ )
13
+
14
+ def run():
15
+
16
+ # Set Judul
17
+ st.title("Exploration Data Analysis (EDA) dari Dataset")
18
+
19
+ # Memasukkan Gambar
20
+ st.image("https://images.bisnis.com/posts/2022/11/08/1595896/kartu_kredit_freepik.jpg")
21
+
22
+ # Load Data
23
+ data = pd.read_csv("P1G5_Set_1_salsa_sabitha.csv")
24
+
25
+ # Membuat header dataset
26
+ st.subheader("Dataset Kartu Kredit")
27
+ st.markdown('Ukuran dataset : 2814 rows, diperoleh dari 201 * 14 (tahun lahir dikalikan batch) yang disesuaikan')
28
+
29
+ # Menampilkan dataframe pada streamlit
30
+ st.dataframe(data)
31
+ st.markdown('---')
32
+
33
+ # Menampilkan distribusi data default payment status
34
+ st.subheader("Distribusi data default payment status")
35
+
36
+ # Distribusi data default payment status
37
+ # Membuat data untuk menampilkan pie chart
38
+ labels = [0, 1]
39
+ sizes = data['default_payment_next_month'].value_counts()
40
+ colors = ['pink', 'grey']
41
+
42
+ # Membuat pie chart
43
+ fig, ax = plt.subplots()
44
+ ax.pie(sizes, labels=labels, colors=colors, autopct='%1.1f%%', shadow=True, startangle=140)
45
+
46
+ # Menampilkan pie chart
47
+ ax.axis('equal')
48
+ st.pyplot(fig)
49
+ st.write('Diketahui bahwa status payment dengan status 0 (tidak gagal bayar) lebih banyak dibandingkan dengan status 1 (gagal bayar) dengan persentase "78.6%" dan "21.4%"')
50
+
51
+ if __name__== '__main__':
52
+ run()
model.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:b0537ea04193b9e36045dc3ebabb22a269fe327a2d410b7b7df2164f3423ffe3
3
+ size 1716
prediction.py ADDED
@@ -0,0 +1,72 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # import library
2
+ import streamlit as st
3
+ import pandas as pd
4
+ import numpy as np
5
+ import pickle
6
+
7
+ # Set Config Halaman
8
+ st.set_page_config(
9
+ page_title = "Prediksi Payment Status",
10
+ layout = 'wide',
11
+ initial_sidebar_state = 'expanded'
12
+ )
13
+
14
+ # Load Model
15
+ with open('model.pkl', 'rb') as file:
16
+ model = pickle.load(file)
17
+
18
+ # Function untuk menjalankan streamlit model predictor
19
+ def run():
20
+
21
+ # Set judul
22
+ st.title("Memprediksi Kemungkinan Seseorang Mampu Membayar Kredit atau Tidak")
23
+ st.markdown('---')
24
+ st.image("https://dlabs.ai/wp-content/uploads/2021/09/price-prediction-1024x538.png")
25
+
26
+ # Buat Form Untuk Data Inference
27
+ st.markdown('## Input Data')
28
+ with st.form('my_form'):
29
+ Limit_balance = st.number_input('Limit Balance', min_value=10000, max_value=999999999)
30
+ Pay_1 = st.selectbox('Repayment Status in September', (-2,-1,0,1,2,3,4,5,6,7,8))
31
+ Pay_2 = st.selectbox('Repayment Status in August', (-2,-1,0,1,2,3,4,5,6,7,8))
32
+ Pay_3 = st.selectbox('Repayment Status in July', (-2,-1,0,1,2,3,4,5,6,7,8))
33
+ Pay_4 = st.selectbox('Repayment Status in June', (-2,-1,0,1,2,3,4,5,6,7,8))
34
+ Pay_5 = st.selectbox('Repayment Status in May', (-2,-1,0,1,2,3,4,5,6,7,8))
35
+ Pay_6 = st.selectbox('Repayment Status in April', (-2,-1,0,1,2,3,4,5,6,7,8))
36
+ Pay_amt_1 = st.number_input('Bill Statement in September', min_value=-999999999, max_value=999999999)
37
+ Pay_amt_2 = st.number_input('Bill Statement in August', min_value=-999999999, max_value=999999999)
38
+ Pay_amt_3 = st.number_input('Bill Statement in July', min_value=-999999999, max_value=999999999)
39
+ Pay_amt_4 = st.number_input('Bill Statement in June', min_value=-999999999, max_value=999999999)
40
+ Pay_amt_5 = st.number_input('Bill Statement in May', min_value=-999999999, max_value=999999999)
41
+ Pay_amt_6 = st.number_input('Bill Statement in April', min_value=-999999999, max_value=999999999)
42
+
43
+ # Membuat tombol untuk melakukan prediksi
44
+ submitted = st.form_submit_button("Predict")
45
+
46
+ # dataframe
47
+ data = {'limit_balance': Limit_balance,
48
+ 'pay_1': Pay_1,
49
+ 'pay_2': Pay_2,
50
+ 'pay_3': Pay_3,
51
+ 'pay_4': Pay_4,
52
+ 'pay_5': Pay_5,
53
+ 'pay_6': Pay_6,
54
+ 'pay_amt_1': Pay_amt_1,
55
+ 'pay_amt_2': Pay_amt_2,
56
+ 'pay_amt_3': Pay_amt_3,
57
+ 'pay_amt_4': Pay_amt_4,
58
+ 'pay_amt_5': Pay_amt_5,
59
+ 'pay_amt_6': Pay_amt_6}
60
+
61
+ df = pd.DataFrame([data])
62
+ st.dataframe(df)
63
+
64
+ if submitted:
65
+ y_pred_inf = model.predict(df)
66
+ if y_pred_inf[0] == 0:
67
+ st.write('✅ Tidak Gagal Bayar')
68
+ else:
69
+ st.write('❌ Gagal Bayar')
70
+
71
+ if __name__== '__main__':
72
+ run()