Từ những tiêu chí phân loại cơ bản như trên, việc phân tích và dự đoán một khách hàng có xảy ra nợ quá hạn trong tương lai hay không trước khi ra quyết định cho vay hay dự báo một khách
Trang 1Môn học: Phát triển phần mềm nâng cao cho tính toán khoa học
Giảng viên: Vũ Tiến Dũng
Thành viên: Ngô Văn Khôi — Trưởng nhóm
Nguyễn Trường Sơn
Nguyễn Thị Hường
Hà Nội, tháng 07 năm 2021
Trang 2
3.2 Tối ưu mô hình GradientBoosting và đánh giá kết quả
b.Ý)ì\))::-8'L-.::1À.421)1):P Ọaaadđaiaiaiiiaai'^ẢÝÃÝ Kết luận
Trang 31 Giới thiệu
Ngân hàng là một tô chức tài chính và trung gian tài chính chấp nhận tiền gửi và định kênh những tiền gửi đó vào các hoạt động cho vay trực tiếp hoặc gián tiếp thông qua các
thị trường vốn Ngân hàng là kết nối giữa khách hàng có thâm hụt vốn và khách hàng có
thặng dư vốn Hầu hết các Ngân hàng hoạt động theo một hệ thống được gọi là hoạt động ngân hàng dự trữ phân đoạn mà họ chỉ nắm giữ một dự trữ nhỏ các khoản tiền gửi và cho vay phân còn lại để kiếm lời Do vậy, cho vay là một nghiệp vụ cơ bán của Ngân hàng nhưng đồng thời hoạt động này cũng tiềm ấn nhiều rủi ro, đặc biệt là rủi ro tin dung Rui ro tín dụng trong hoạt động ngân hàng là tôn thất có khả năng xảy ra đối với nợ của tô chức tín dụng, chi nhánh ngân hàng nước ngoai do khách hàng không thực hiện hoặc không có khả năng thực hiện một phần hoặc toàn bộ nghĩa vụ của mình theo cam kết Theo đó, một tiêu chí để đánh giá khả năng trả nợ của khách hàng là chỉ tiêu nợ quá hạn, được cụ thể hóa như sau:
- Nợ nhóm l (nợ đủ tiêu chuẩn): Nợ quá hạn dưới 10 ngày
- Nợ nhóm 2 (nợ cần chú ý): Nợ quá hạn từ 10 ngày đến 90 ngày
- Nợ nhóm 3 (nợ dưới tiêu chuân): Nợ quá hạn từ 91 ngày đến 180 ngày
- Nợ nhóm 4 (nợ nghi ngờ): Nợ quá hạn từ 181 ngày đến 360 ngày
- Nợ nhóm 5 (nợ có khả năng mất vốn): Nợ quá hạn trên 360 ngày
Trong đó, nợ xấu là nợ thuộc các nhóm 3, 4 và 5
Từ những tiêu chí phân loại cơ bản như trên, việc phân tích và dự đoán một khách hàng có xảy ra nợ quá hạn trong tương lai hay không trước khi ra quyết định cho vay hay
dự báo một khách hàng hiện hữu trong tương lai có phát sinh nợ quá hạn hay không là một vấn đề cần thiết và cấp thiết đối với mỗi Ngân hàng Hoạt động này góp phần giúp Ngân hàng hoạt động hiệu quả, bên cạnh đó còn đảm bảo cho mạch tài chính trên thị trường được thông suốt, liền mạch Từ đây, nhóm em quyết định thực hiện đề tài cuối kỳ liên quan đến rủi ro tín dụng dựa trên bộ dữ liệu được lay từ một cuộc thi trên Kaggle mang tén “Give me some credit” Bộ dữ liệu này được dùng để xây dựng ra một mô hình dự báo khách hàng có xảy ra nợ quá hạn trên 90 ngày trong 2 năm tới hay không
Trang 42 Khám phá dữ liệu
Bộ dữ liệu này có LI thuộc tính như sau:
Variable Name
balance on credit cards and personal lines of credit except real estate and no installment
divided by the sum of credit limits
of borrower in
of times borrower has been due but no worse in the last 2
2.2.1, SeriousDigin2yrs
Thuộc tính này để chỉ khách hàng có bị lần nào quá hạn trả nợ hàng tháng nhiều hơn
90 ngày trong 2 năm tới không Giá trị của thuộc tính là Y (Yes - L) hoặc N (No - 0)
Đây là thuộc tính chúng ta sẽ dự đoán ở bộ dữ liệu test (Biến phụ thuộc)
Data Distribution 93.32%
Trang 5Từ kết quả phân tích cho thấy có đến 93.316% dữ liệu có biến đầu ra được dán nhãn
0, trong khi chỉ có 6.684% được dán nhãn 1 Đây là hiện tượng mắt cân bằng dữ liệu xảy
ra rất thường xuyên trong machine learning
2.2.2 RevolvingUtilizationOfUnsecuredLines
Thuộc tính này đề chỉ hạn mức tín dụng của khách hàng không tính các khoản vay nợ hiện tai va bat động sản hay thuộc tinh nay là ty lệ hạn mức còn lại được dùng/hạn mức tôi
đa có thê sử dụng trừ các khoản vay và BĐS
Ví dụ như mình có I thẻ tín dụng và hạn mức của nó là 1,000 đô Trong tài khoản ngân hàng cá nhân của mình cũng đang có 1,000 đô Số dư thẻ tín dụng là 500 đô Vậy số
dư tối đa mình có thể có thông qua thẻ tín dụng và tài khoản ngân hàng cá nhân là 1000 đô
+ 1000 đô = 2000 đô, mình đã sử dụng 500 đô từ hạn mức tín dụng cho nên tong số dư là
300 đô + 1000 đô = 1500 đô Giá tri RevolvingUtilizationOfUnsecuredLines 6 day là 1500/2000 = 0.75
RevolvingUtilizationOfUnsecuredLines Hạn mức tín dụng của khách hàng không tính các khoản vay nợ hiện tại và bất động sản càng cao thi kha năng xảy ra nợ quá hạn trên 90 ngày cảng cao
Trang 62.2.3 Age
Thuộc tính này là dé chỉ tuôi của khách hàng
0.030 0.025 - 0.020 1
NumberOfTime30-59DaysPastDueNotWorse
Trang 7Số lần xảy ra nợ quá hạn từ 30 — 59 ngày cao thì khả năng xảy ra nợ quá hạn trên 90 ngày cao Khả năng không xảy ra nợ quá hạn trên 90 ngày liên quan đến thuộc tính này chi
là l dao động rất nhỏ xung quanh giá trị 0
2.2.5 DebtRatio
Thuộc tính này biểu thị tỷ lệ nợ
Ví dụ khoản nợ hàng tháng của một khách hàng là 200 đô, và chị tiêu hàng tháng là
500 đô, thu nhập hàng tháng là 1000 đô, thi tỉ lệ nợ là (200 + 500)/1000 = 0.7
Monthlylncome
Trang 8Ở mức thu nhập thấp hơn thì khả năng xảy ra vấn đề về tài chính cao hơn nhưng mỗi quan hệ này không quá rõ ràng
NumberOfOpenCreditLinesAndLoans Cùng số thẻ tín dụng hoặc khoản vay thì khả năng xáy ra vấn đề về tài chính thấp hơn nhưng mối quan hệ này không quá rõ ràng
ea 1 0.8¬
Trang 9Số lần xảy ra nợ quá hạn trên 90 ngày cao thì kha nang xay ra ng quá hạn trên 90 ngày cao Khả năng không xảy ra nợ quá hạn trên 90 ngày liên quan đến thuộc tính này chỉ là I dao động rất nhỏ xung quanh giá trị 0
Số khoản vay của khách hàng liên quan đến bất động sản càng ít thì kha năng xảy ra
nợ quá hạn trên 90 ngày càng thấp
2.2.10 NumberOfTime60-89 DaysPastDueNotW orse
Thuộc tính này biểu thị số lần khách hàng chậm thanh toán các khoản trả hàng tháng
từ 60 - 89 ngày.
Trang 10Gs 0 Gal
Trang 12Mô tả đặc điểm thông kê ban đầu của dữ liệu thê hiện ở bảng sau:
RevolvingUtilizationOfUnsecuredLines age =- DebtRatio MonthlyIncome NunberOfOpenCreditLinesAndLoans
count 150000.000000 150000.000000 150000.000000 150000.000000 1.202690e+05 150000.000000
mean 6.048438 52.295207 0.421033 353.005076 6.670221e+03 8.452760 std 249 755371 14771866 4.192781 2037.616523 = 1.436467e+04 §.145951 min 0.000000 0.000000 0.000000 0.000000 0.000000e+00 0.000000 25% 0.029867 41000000 0.000000 0.175074 3.400000e+03 §.000000
có trung vị tại 0.3665 Thu nhập trung bình rơi vào khoảng hơn $6000/tháng (khá gần mức thu nhập trung bình của nước Mỹ năm 2019 — 2020), tuy nhiên dai thu nhập dao động khá lớn
Trang 132.2.3 Phân tích tương quan giữa các biến độc lập
2.2.4.1 Cac phuong phap dé tim outlier
Dùng 4 phương pháp để tìm outlier như sau:
trén 97.5% thì duoc coi 1a outlier
độ lệch tuyệt đối (MAD) Nếu z-score có hiệu chỉnh nằm dưới 3.5 hoặc nằm trên 3.5 thì duoc coi la outlier
o la độ lệch chuân Nêu dữ liệu năm dưới z hoặc trên z thì duoc coi 1a outlier
Trang 14(4) Majority vote based Outliers: Néu co 2/3 phuong phap trén cho ra dữ liệu là outlier thì điểm đữ liệu đó được coi là outlier
2.2.4.2 Các phương pháp đề giải quyết outlier
Dùng 3 phương pháp để giải quyét outlier như sau:
(1) Thay thé bang giá trị nhỏ nhất (min) của chính cột dữ liệu đó
(2) Thay thế bằng median của chính cột dữ liệu đó
2.2.4.3 Áp dụng vào bộ dữ liệu hiện tại
Các điểm màu đỏ đại diện cho cac potential outlier
Hạn mức tín dụng nằm trong khoảng từ 0 — l nhưng có rất nhiéu potential outlier
Comparing Outlier Tests with n=5000 ercentile-based Outliers
nằm ra ngoài giới hạn đấy và có những điểm outlier lên đến khoảng 3000
Để giải quyết các outlier của thuộc tính này ta dùng phương pháp cận trên là | va thu được kết quả như sau:
Giải quyết outlier của cột RevolvingUtilizationOfUnsecuredLines
17500
17500
17500
17500
Trang 15
RevolvingUtilizationOfUnsecuredLines 22.4.3.2 Giải quyết outlier của cột Age
Phuong phap Percentile-based outliers cho ra nhiều potential outlier nhưng trừ 0 tuôi
Để giải quyết các outlier nay, ta thay thé tất cả các outlier bằng cận dưới là 21 va thu được kết quả như sau:
Comparing Outlier Tests with n=5000
Percentile-based Outlier:
4 MAD-based Outliers t
srp-based Outliers
không thê gửi tiền ngân hàng thì mọi độ tuổi đều có thể có tiền gửi ngân hàng.
Trang 16tính này nếu điểm đữ liệu đó lớn hơn 95 và thu được kết quá như sau:
Giải quyết outlier của cột NumberOfTime30-59DaysPastDueNotfWorse
Trang 1722.4.3.4 Gidi quyét outlier của cột DebtRatio
Comparing Outlier Tests with n=1000 tile-based Outliers
Để giải quyết các outlier này, ta thay thế các outlier bằng cận dưới của phương pháp MAD-based Outliers và kết quả thu được như sau:
Trang 18Giải quyết outlier của cot MonthlyIncome
Comparing Outlier Tests with n=1000 -based Outliers
—=e=-cce > J >
Qo 10000 20000 30000 40000 50000 60000 70000 Majority-vote based Outliers
Monthlylncome
Đối với thuộc tính này, ta lựa chọn phương pháp Majority vote based outliers
Để giải quyết các outlier này, ta thay thế các outlier bằng cận dưới của phương pháp Majority vote based outlier và thu được kết quá như sau:
Trang 190 5000 10000 15000
Monthlylncome
Đối với thuộc tính này, ta ngay lập tức có thê nhìn thấy 96 và 98 là các outliers Và
để giải quyết các outlier này, ta thay thế bằng median của chính cột đó nếu x lớn hơn 95 và thu được kết quả như sau:
để giải quyết các outlier này, ta thay thế bằng median của chính cột đó nếu x lớn hơn 95 và thu được kết quả như sau:
Trang 203.1 Xây dựng baseline model
Bài phân tích xây dựng 5 mô hình theo các phương pháp: K-neares( neighbors (KNN), Logistic Regression, Random Forest, AdaBoost va GradientBoosting
Đánh giá hiệu quả các mô hình dựa trên phương pháp Cross-validation với tiêu chí đánh giá là giá trị AUC của từng mô hình
Kết quả sau khi chạy model như bảng bên dưới đây:
3.2 Tối ưu mô hình GradientBoosting và đánh giá kết quả
Nhóm sử dụng phương pháp GridSearchCV trong thư viện sklearn dé tôi ưu các tham số cho mô hình, kết quả thu được như sau:
Trang 21False Positive nate
Nhóm lựa chọn điểm tối ưu cho bài toán là 0.0667, tức là nêu xắc suất đề khách hàng
có rủi ro trả nợ quá hạn lớn hơn 90 ngày là 6,67% thì được dán nhãn là I, ngược lại thì dán
nhãn là 0 và quyết định cho khách hàng vay Theo đó, kết quả dự đoán với tập dữ liệu test duoc tom tat bang confusion matrix va classification report nhu sau
Trang 22
Classification report Dựa vào ma trận trên ta thấy mô hình dự đoán chính xác 111,538 khách hàng không
bị quá hạn trả nợ hơn 90 ngày và 7,910 khách hàng bị quá hạn trả nợ hơn 90 ngày Tỷ lệ dự báo chính xác accuracy = (TP+TN)/ (TP+FP+TN+EN) = 80%
4 Xây dựng demo webapp
Nhóm sử dụng thư viện Pickle đề lưu lại và tái sử dụng mô hình Nhóm đã xây dựng
1 website dé hién thị kết quả dự báo khả năng trả nợ quá hạn trên 90 ngày của khách hang Cán bộ ngân hang có thể nhập các thông số của khách hàng và website sẽ đưa ra kết quả
dự báo về khả năng trả nợ của khách hàng
Website được xây dựng giao diện bằng thư viện streamlit có giao diện như bên dưới đây
5 Kết luận
Bài toán đánh giá rủi ro trả nợ quá hạn của khách hàng là một trong những bài toán rất phô biến và có tính thực tiễn, quan trọng trong ngành ngân hàng Cũng chính vì lý do này, nhóm nghiên cứu đã quyết định lựa chọn đề tài cuối kỳ liên quan đến rủi ro tín dụng dựa trên bộ dữ liệu được lay tir m6t cudc thi trén Kaggle mang tén “Give me some credit” Théng qua bai nghién cứu, các thành viên trong nhóm đã có cơ hội nghiên cứu và thực
Trang 23hành tất cả các giai đoạn của một dự án về phân tích đữ liệu bao gồm: thu thập dữ liệu, tìm hiểu dữ liệu, làm sạch dữ liệu, xây dựng mô hình, tối ưu và đánh giá mô hình, kiểm thử,
Các kiến thức đã được học trong bộ môn đều được áp dụng xuyên suốt quá trình thực hiện dự án Nhóm cũng đã xây dựng một website dé người dùng có thê thực hành dự báo kết quả dựa trên những dự liệu đầu vào Sau cùng, mặc dù đây là một bài toán thực tế, tuy nhiên vì lý bảo mật dữ liệu nên các số liệu thực tế của ngành ngân hàng rất khó tiếp cận,
do vậy, khi áp dụng những ngiên cứu trong dự án này vào thực tế chắc chắn sẽ còn những điêm cân nghiên cứu cũng như xử lý thêm đề tôi ưu và phù hợp với thực tiên
TÀI LIỆU THAM KHẢO [1] Gurarie, E (n.d.) GLM: Logistic Regression and Model Selection Retrieved from University of Maryland
[2] Generalized Linear Models With Examples in R-Springer - Peter K Dunn - Gordon K Smyth [3] https://docs.python.org/3/library/re.html
[3] https://www.kaggle.com/c/GiveMeSomeCredit/discussion
[4] https://medium.com/@MLJARofficial/give-me-some-credit-machine-learning- approach-4899757d0bcb
[6] Mô hình hồi quy và Khám pha Khoa hoc - GS Nguyễn Van Tuan
[7] Jason Brownlee-Machine Learning Mastery with Python 2016
[8] Christopher M Bisho- Pattern Recognition and Machine Learning