Giờ ta sẽ dùng quần thể phân lớp được xây dựng ở phần trước để xếp hạng tín dụng cho khách hàng mới. Bởi vì thứ hạng của các khách hàng cũ cũng cần phải được xem xét lại một cách thường xuyên, đặc biệt là khi các thông tin về tình hình tài chính của họ đã thay đổi đáng kể. Như vậy, trong tập dữ liệu bao gồm cả những khách hàng cũ sẽ được đánh giá lại. Dữ liệu mới từ file „CreditRating_NewCompanies.dat‟ được nạp vào mảng newDS.
newDS = readtable('CreditRating_NewCompanies.dat');
Để tiến hành xếp hạng tín dụng cho dữ liệu mới, ta gọi hàm predict rong bộ phân lớp. Hàm predict trả về hai giá trị là lớp dự đoán và điểm số phân lớp. Điểm số
76
phân lớp cho biết thông tin về mức độ chính xác của xếp hạng dự đoán. Ta có thể copy các thuộc tính vào ma trận X nhưng vì chỉ gọi hàm predict một lần nên ta sẽ sử dụng mảng newDS trực tiếp.
[predClass,classifScore] = b.predict([newDS.RE_TA newDS.MVE_BVTD newDS.Industry]);
Công đoạn tiếp theo là tạo ra một báo cáo. Đoạn code phía dưới chỉ in ra màn hình báo cáo của 3 khách hàng đầu tiên làm ví dụ. Ngoài ra với sự hỗ trợ của công cụ triển khai của MATLAB, quá trình phân lớp có thể được thực hiện từ xa bởi các nhà phân tích tín dụng thông qua trình duyệt web dù MATLAB không được cài trên máy tính của họ.
for i = 1:3
fprintf(' Khach hang %d:\n',newDS.ID(i));
fprintf(' RE/TA = %5.2f\n',newDS.RE_TA(i)); fprintf(' MVE/BVTD = %5.2f\n',newDS.MVE_BVTD(i)); fprintf(' Ma nganh = %2d\n',newDS.Industry(i));
fprintf(' Xep hang du doan : %s\n',predClass{i}); fprintf(' Diem so phan lop : \n');
for j = 1:length(b.ClassNames) if (classifScore(i,j)>0) fprintf('%s:%5.4f\n',b.ClassNames{j},classifScore(i,j)); end end end Kết quả hiển thị : Khach hang 60644: RE/TA = 0.22
77
MVE/BVTD = 2.40 Ma nganh = 6
Xep hang du doan: AA Diem so phan lop : A : 0.3127 AA : 0.6666 AAA : 0.0125 BBB : 0.0083 Khach hang 33083: RE/TA = 0.24 MVE/BVTD = 1.51 Ma nganh = 4
Xep hang du doan: BBB Diem so phan lop: A : 0.1035 BB : 0.0030 BBB : 0.8934 Khach hang 63830: RE/TA = 0.18 MVE/BVTD = 1.69 Ma nganh = 7
Xep hang du doan: A Diem so phan lop: A : 0.7131 AA : 0.0004 BB : 0.0055
78
BBB : 0.2811
Dữ liệu xếp hạng dự đoán và các điểm số tương ứng sẽ được lưu trữ để phục vụ cho các đánh giá định kỳ về chất lượng của bộ phân lớp. Các thông tin này được lưu trong mảng predDS.
classnames = b.ClassNames;
predDS = [table(newDS.ID,predClass),array2table(classifScore)];
predDS.Properties.VariableNames =
{'ID','PredRating',classnames{:}};
Sau đó, thông tin có thể được lưu vào một file dữ liệu dạng text tên là PredictedRatings.dat bằng lệnh sau:
writetable(predDS,'PredictedRatings.dat');
Hoặc lưu trực tiếp vào CSDL bằng công cụ của MATLAB.