Spaces:
Sleeping
Sleeping
Create app.py
Browse files
app.py
ADDED
@@ -0,0 +1,76 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import gradio as gr
|
2 |
+
import pandas as pd
|
3 |
+
import matplotlib.pyplot as plt
|
4 |
+
import tempfile
|
5 |
+
import pickle
|
6 |
+
import xgboost as xgb
|
7 |
+
plt.style.use('ggplot')
|
8 |
+
|
9 |
+
|
10 |
+
with open('xgboost_model.pkl', 'rb') as file:
|
11 |
+
model = pickle.load(file)
|
12 |
+
|
13 |
+
|
14 |
+
def upload_file(files):
|
15 |
+
file_paths = [file.name for file in files]
|
16 |
+
df = pd.read_csv(file_paths[0])
|
17 |
+
dmatrix = df.iloc[:,:].values
|
18 |
+
predictions = model.predict_proba(dmatrix).T[1]
|
19 |
+
df["target"] = predictions
|
20 |
+
df.to_csv("creditScorePrediction.csv")
|
21 |
+
img = df.hist(figsize=(30, 30))
|
22 |
+
with tempfile.NamedTemporaryFile(suffix='.png', delete=False) as temp_file:
|
23 |
+
# Save the plot to the temporary file
|
24 |
+
plt.savefig(temp_file.name)
|
25 |
+
imagepath = (temp_file.name)
|
26 |
+
# Close the plot to release memory
|
27 |
+
plt.close()
|
28 |
+
return ["creditScorePrediction.csv"], imagepath, {"Credit Score":1}
|
29 |
+
|
30 |
+
with gr.Blocks(theme=gr.themes.Monochrome()) as demo:
|
31 |
+
gr.Markdown("""# Credit Scoring App for Lenders and Banks
|
32 |
+
|
33 |
+
Welcome to the Credit Scoring App! This powerful tool is designed to help lenders and banks assess the creditworthiness of their clients. By uploading a CSV file containing specific financial and demographic data, you'll receive credit scores that aid in making informed lending decisions.
|
34 |
+
""")
|
35 |
+
label = gr.Label("Credit Score prediction demo", show_label = False)
|
36 |
+
image=gr.Image(label = "uploaded data distribution")
|
37 |
+
file_output = gr.File(show_label = False)
|
38 |
+
upload_button = gr.UploadButton("Click to Upload a CSV file", file_types=[".csv"], file_count="multiple")
|
39 |
+
gr.Markdown("""
|
40 |
+
## Uploading Your CSV File
|
41 |
+
|
42 |
+
To get started, you need to upload a CSV file with the following fields in the given order:
|
43 |
+
|
44 |
+
* **ID:** A unique identifier for each client.
|
45 |
+
* **LIMIT_BAL:** The amount of credit given in NT dollars, including individual and family/supplementary credit.
|
46 |
+
* **SEX:** Gender of the customer (1 = male, 2 = female).
|
47 |
+
* **EDUCATION:** Level of education (1 = graduate school, 2 = university, 3 = high school, 0, 4, 5, 6 = others).
|
48 |
+
* **MARRIAGE:** Marital status (0 = others, 1 = married, 2 = single, 3 = others).
|
49 |
+
* **AGE:** Age of the customer in years.
|
50 |
+
|
51 |
+
The following variables represent the repayment status over several months, using a scale:
|
52 |
+
|
53 |
+
* **PAY_0 to PAY_6:** (-2 = No consumption, -1 = paid in full, 0 = use of revolving credit - paid minimum only, 1 = payment delay for one month, 2 = payment delay for two months, ... 8 = payment delay for eight months, 9 = payment delay for nine months and above).
|
54 |
+
|
55 |
+
The following variables represent the amount of bill statement in NT dollars for previous months:
|
56 |
+
|
57 |
+
* **BILL_AMT1 to BILL_AMT6:** Bill statement amount in the corresponding months.
|
58 |
+
|
59 |
+
The following variables represent the amount of previous payment in NT dollars for previous months:
|
60 |
+
|
61 |
+
* **PAY_AMT1 to PAY_AMT6:** Previous payment amount in the corresponding months.
|
62 |
+
|
63 |
+
## Generating Credit Scores
|
64 |
+
|
65 |
+
Once your CSV file is uploaded, the data will be fed into our advanced credit scoring model. The model will analyze the information provided and calculate a credit score for each client. This credit score will be appended as a new column at the end of each entry in the CSV file.
|
66 |
+
|
67 |
+
## Downloading Results
|
68 |
+
|
69 |
+
After the credit scores have been generated, you can easily download the updated CSV file by clicking on the "Download File" button. The file will contain the original data with the credit scores, making it convenient for you to integrate the results into your lending processes.
|
70 |
+
|
71 |
+
We hope you find our Credit Scoring App valuable in assessing credit risk and making well-informed lending decisions. Should you have any questions or feedback, please don't hesitate to reach out to us. Happy lending!""")
|
72 |
+
|
73 |
+
|
74 |
+
upload_button.upload(upload_file, upload_button, [file_output, image, label])
|
75 |
+
|
76 |
+
demo.launch(debug =True, share = True)
|