Commit
•
45c8de4
1
Parent(s):
30452f4
Upload 6 files
Browse files- eda.py +3 -2
- prediction.py +62 -1
eda.py
CHANGED
@@ -7,10 +7,11 @@ import matplotlib.pyplot as plt
|
|
7 |
def app():
|
8 |
st.title('Exploratory Data Analysis')
|
9 |
|
10 |
-
df = pd.read_csv('
|
11 |
-
st.
|
12 |
st.write(df)
|
13 |
|
|
|
14 |
st.write('How is the percentage of default payment as education level increases?')
|
15 |
vis_1(df)
|
16 |
|
|
|
7 |
def app():
|
8 |
st.title('Exploratory Data Analysis')
|
9 |
|
10 |
+
df = pd.read_csv('eda_data.csv')
|
11 |
+
st.subheader('Dataset Preview')
|
12 |
st.write(df)
|
13 |
|
14 |
+
st.subheader('Data Analysis Questions')
|
15 |
st.write('How is the percentage of default payment as education level increases?')
|
16 |
vis_1(df)
|
17 |
|
prediction.py
CHANGED
@@ -2,6 +2,67 @@
|
|
2 |
import streamlit as st
|
3 |
import numpy as np
|
4 |
import pandas as pd
|
|
|
5 |
|
6 |
def app():
|
7 |
-
st.title('Prediction for Default Payment on the Next Month')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
import streamlit as st
|
3 |
import numpy as np
|
4 |
import pandas as pd
|
5 |
+
import joblib
|
6 |
|
7 |
def app():
|
8 |
+
st.title('Prediction for Default Payment on the Next Month')
|
9 |
+
|
10 |
+
df = pd.read_csv('eda_data.csv')
|
11 |
+
st.subheader('Dataset Preview')
|
12 |
+
st.write(df)
|
13 |
+
|
14 |
+
st.subheader('Input Data')
|
15 |
+
input = user_input(df)
|
16 |
+
|
17 |
+
st.subheader('User Input')
|
18 |
+
st.write(input)
|
19 |
+
|
20 |
+
load_model = joblib.load("model.pkl")
|
21 |
+
|
22 |
+
prediction = load_model.predict(input)
|
23 |
+
|
24 |
+
if prediction == 1:
|
25 |
+
prediction = 'Payment Defaulted (1)'
|
26 |
+
else:
|
27 |
+
prediction = 'Payment Not Defaulted (0)'
|
28 |
+
|
29 |
+
st.subheader('Prediction Result:')
|
30 |
+
st.write('Based on user input, the model predicted: ')
|
31 |
+
st.write(prediction)
|
32 |
+
|
33 |
+
def user_input(df):
|
34 |
+
limit_balance = st.number_input('limit_balance', value=0.0)
|
35 |
+
education_level = st.selectbox('education_level', df['education_level'].unique())
|
36 |
+
pay_1 = st.selectbox('pay_1', [i for i in range(-1, 13)])
|
37 |
+
pay_2 = st.selectbox('pay_2', [i for i in range(-1, 13)])
|
38 |
+
pay_3 = st.selectbox('pay_3', [i for i in range(-1, 13)])
|
39 |
+
pay_4 = st.selectbox('pay_4', [i for i in range(-1, 13)])
|
40 |
+
pay_5 = st.selectbox('pay_5', [i for i in range(-1, 13)])
|
41 |
+
pay_6 = st.selectbox('pay_6', [i for i in range(-1, 13)])
|
42 |
+
pay_amt_1 = st.number_input('pay_amt_1', value=0.0)
|
43 |
+
pay_amt_2 = st.number_input('pay_amt_2', value=0.0)
|
44 |
+
pay_amt_3 = st.number_input('pay_amt_3', value=0.0)
|
45 |
+
pay_amt_4 = st.number_input('pay_amt_4', value=0.0)
|
46 |
+
pay_amt_5 = st.number_input('pay_amt_5', value=0.0)
|
47 |
+
pay_amt_6 = st.number_input('pay_amt_6', value=0.0)
|
48 |
+
|
49 |
+
data = {
|
50 |
+
'limit_balance' : limit_balance,
|
51 |
+
'education_level' : education_level,
|
52 |
+
'pay_1' : pay_1,
|
53 |
+
'pay_2' : pay_2,
|
54 |
+
'pay_3': pay_3,
|
55 |
+
'pay_4' : pay_4,
|
56 |
+
'pay_5' : pay_5,
|
57 |
+
'pay_6' : pay_6,
|
58 |
+
'pay_amt_1' : pay_amt_1,
|
59 |
+
'pay_amt_2' : pay_amt_2,
|
60 |
+
'pay_amt_3' : pay_amt_3,
|
61 |
+
'pay_amt_4' : pay_amt_4,
|
62 |
+
'pay_amt_5' : pay_amt_5,
|
63 |
+
'pay_amt_6' : pay_amt_6
|
64 |
+
}
|
65 |
+
features = pd.DataFrame(data, index=[0])
|
66 |
+
return features
|
67 |
+
|
68 |
+
|