Update app.py
Browse files
app.py
CHANGED
@@ -21,11 +21,12 @@ X.columns
|
|
21 |
from sklearn.model_selection import train_test_split
|
22 |
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.2)
|
23 |
|
|
|
24 |
|
25 |
from sklearn.preprocessing import StandardScaler
|
26 |
scaler_normal = StandardScaler()
|
27 |
def scaler(data, runtime = False):
|
28 |
-
normal_col = ['person_income','person_age','person_emp_length', 'loan_amnt','loan_int_rate','cb_person_cred_hist_length']
|
29 |
if(runtime == False):
|
30 |
data.loc[:,normal_col] = scaler_normal.fit_transform(data.loc[:,normal_col])
|
31 |
else:
|
@@ -35,8 +36,8 @@ def scaler(data, runtime = False):
|
|
35 |
X_train = scaler(X_train)
|
36 |
X_test = scaler(X_test, True)
|
37 |
|
38 |
-
|
39 |
-
|
40 |
|
41 |
features = {
|
42 |
"person_home_ownership": ['MORTGAGE', 'OTHER','OWN', 'RENT',],
|
@@ -52,13 +53,15 @@ def preprocess(model_input):
|
|
52 |
model_input[f'{feature}_{option}'] = 1
|
53 |
else:
|
54 |
model_input[f'{feature}_{option}'] = 0
|
55 |
-
|
56 |
model_input.drop([_ for _ in features], inplace = True, axis = 1)
|
57 |
return model_input
|
58 |
|
|
|
59 |
|
60 |
-
def credit_run(person_age,
|
61 |
-
|
|
|
62 |
model_input = preprocess(
|
63 |
pd.DataFrame( { 'person_age': person_age,
|
64 |
'person_income': person_income,
|
@@ -68,12 +71,13 @@ def credit_run(person_age, person_emp_length,person_home_ownership,cb_person_def
|
|
68 |
'loan_grade': loan_grade,
|
69 |
'loan_amnt': loan_amnt,
|
70 |
'loan_int_rate': loan_int_rate,
|
|
|
71 |
'cb_person_default_on_file': cb_person_default_on_file,
|
72 |
'cb_person_cred_hist_length': cb_person_cred_hist_length
|
73 |
}, index = [0]
|
74 |
))
|
75 |
-
out =
|
76 |
-
return "High risk of defaulting" if out[0] == 1 else "Low risk of defaulting"
|
77 |
|
78 |
import gradio as gr
|
79 |
with gr.Blocks(theme=gr.themes.Soft()) as demo:
|
|
|
21 |
from sklearn.model_selection import train_test_split
|
22 |
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.2)
|
23 |
|
24 |
+
X_train.head()
|
25 |
|
26 |
from sklearn.preprocessing import StandardScaler
|
27 |
scaler_normal = StandardScaler()
|
28 |
def scaler(data, runtime = False):
|
29 |
+
normal_col = ['person_income','person_age','person_emp_length', 'loan_amnt','loan_int_rate','cb_person_cred_hist_length','loan_percent_income']
|
30 |
if(runtime == False):
|
31 |
data.loc[:,normal_col] = scaler_normal.fit_transform(data.loc[:,normal_col])
|
32 |
else:
|
|
|
36 |
X_train = scaler(X_train)
|
37 |
X_test = scaler(X_test, True)
|
38 |
|
39 |
+
rf_model = RandomForestClassifier(max_depth = 5)
|
40 |
+
rf_model.fit(X_train, y_train)
|
41 |
|
42 |
features = {
|
43 |
"person_home_ownership": ['MORTGAGE', 'OTHER','OWN', 'RENT',],
|
|
|
53 |
model_input[f'{feature}_{option}'] = 1
|
54 |
else:
|
55 |
model_input[f'{feature}_{option}'] = 0
|
56 |
+
|
57 |
model_input.drop([_ for _ in features], inplace = True, axis = 1)
|
58 |
return model_input
|
59 |
|
60 |
+
|
61 |
|
62 |
+
def credit_run(person_age, person_income, person_home_ownership,
|
63 |
+
person_emp_length, loan_intent, loan_grade, loan_amnt,
|
64 |
+
loan_int_rate, cb_person_default_on_file, cb_person_cred_hist_length):
|
65 |
model_input = preprocess(
|
66 |
pd.DataFrame( { 'person_age': person_age,
|
67 |
'person_income': person_income,
|
|
|
71 |
'loan_grade': loan_grade,
|
72 |
'loan_amnt': loan_amnt,
|
73 |
'loan_int_rate': loan_int_rate,
|
74 |
+
'loan_percent_income': loan_amnt / person_income,
|
75 |
'cb_person_default_on_file': cb_person_default_on_file,
|
76 |
'cb_person_cred_hist_length': cb_person_cred_hist_length
|
77 |
}, index = [0]
|
78 |
))
|
79 |
+
out = rf_model.predict(model_input)
|
80 |
+
return "High risk of defaulting" if out[0] == 1 else "Low risk of defaulting"
|
81 |
|
82 |
import gradio as gr
|
83 |
with gr.Blocks(theme=gr.themes.Soft()) as demo:
|