diqitalize commited on
Commit
ee501cb
1 Parent(s): e3c8eb1
Files changed (5) hide show
  1. Procfile +1 -0
  2. Training_Data.pkl +3 -0
  3. app.py +70 -0
  4. requirements.txt +6 -0
  5. setup.sh +13 -0
Procfile ADDED
@@ -0,0 +1 @@
 
 
1
+ web: sh setup.sh && streamlit run app.py
Training_Data.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:fdd73a4449456def74f8cd20200b3861bf07451367510ef944199585ea64e73c
3
+ size 7685009
app.py ADDED
@@ -0,0 +1,70 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import pandas as pd
3
+ import numpy as np
4
+ import pickle
5
+ import base64
6
+ import seaborn as sns
7
+ import matplotlib.pyplot as plt
8
+
9
+ st.write("""
10
+ # Credit Risk Detection App
11
+
12
+ """)
13
+
14
+ url_dataset = f'<a href="Training_Data.csv">Download Dataset CSV File</a>'
15
+ st.markdown(url_dataset, unsafe_allow_html=True)
16
+
17
+ def user_input_features() :
18
+ income = st.sidebar.slider('income', 10310, 9999938)
19
+ age = st.sidebar.slider('age', 21, 79)
20
+ experience = st.sidebar.slider('experience', 0, 20)
21
+ married = st.sidebar.slider ('married', 0, 1)
22
+ house_ownership = st.sidebar.slider ('house_ownership', 0, 2)
23
+ car_ownership = st.sidebar.slider ('car_ownership', 0, 1)
24
+ profession = st.sidebar.slider ('profession', 0, 51)
25
+ current_job_years = st.sidebar.slider('current_job_years', 0, 14)
26
+ current_house_years = st.sidebar.slider('current_house_years', 10, 14)
27
+
28
+ data = {'income':[income],
29
+ 'age':[age],
30
+ 'experience':[experience],
31
+ 'married': [married],
32
+ 'house_ownership': [house_ownership],
33
+ 'car_ownership': [car_ownership],
34
+ 'profession': [profession],
35
+ 'current_job_years':[current_job_years],
36
+ 'current_house_years':[current_house_years]}
37
+
38
+ features = pd.DataFrame(data)
39
+ return features
40
+
41
+ input_df = user_input_features()
42
+
43
+ credit_raw = pd.read_csv('Training_Data.csv')
44
+ credit_raw.fillna(0, inplace=True)
45
+ credit = credit_raw.drop(columns=['risk_flag'])
46
+ df = pd.concat([input_df, credit],axis=0)
47
+
48
+ df = df[:1] # Selects only the first row (the user input data)
49
+ df.fillna(0, inplace=True)
50
+
51
+ features = ['income','age','experience','married','house_ownership','car_ownership','profession','current_job_years',
52
+ 'current_house_years']
53
+
54
+ df = df[features]
55
+
56
+
57
+ st.subheader('User Input features')
58
+ st.write(df)
59
+
60
+ load_clf = pickle.load(open('Training_Data.pkl', 'rb'))
61
+ detection = load_clf.predict(df)
62
+ detection_proba = load_clf.predict_proba(df)
63
+ credit_labels = np.array(['Normal', 'Beresiko'])
64
+ st.subheader('Detection')
65
+ #st.write(detection)
66
+ st.write(credit_labels[int(detection)])
67
+ st.subheader('Detection Probability')
68
+ st.write(detection_proba)
69
+ #df_prob = pd.DataFrame(data=detection_proba, index=['Probability'], columns=credit_labels)
70
+ #st.write(df_prob)
requirements.txt ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ matplotlib==3.5.2
2
+ numpy==1.23.1
3
+ pandas==1.4.3
4
+ seaborn==0.11.2
5
+ streamlit==1.12.0
6
+ sklearn
setup.sh ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ mkdir -p ~/.streamlit/
2
+
3
+ echo "\
4
+ [general]\n\
5
+ email = \"your-email@domain.com\"\n\
6
+ " > ~/.streamlit/credentials.toml
7
+
8
+ echo "\
9
+ [server]\n\
10
+ headless = true\n\
11
+ enableCORS=false\n\
12
+ port = $PORT\n\
13
+ " > ~/.streamlit/config.toml