Qua những phân tích ở phần trên, có thể thấy rõ ràng rằng việc xây dựng một ứng dụng có khả năng dự đoán, phân tích dữ liệu khách hàng đã có để đưa ra những khuyến nghị, những trợ giúp cho các nhà quản lý trong việc đưa ra định hướng, đưa ra những chiến lược hướng tới khách hàng để nhằm làm giảm thiểu rủi ro, tăng hiệu quả của công việc giới thiệu sản phẩm dịch vụ mới tới khách hàng, tìm kiếm khách hàng mới và duy trì khách hàng sẵn có là một yêu cầu rất quan trọng đối với Ngân hàng Quân đội.
Đối với nội dung của đề tài tốt nghiệp này sẽ tập trung xây dựng ứng dụng có khả năng dự đoán hành vi của người dùng một khi họ đăng ký là khách hàng mới của Ngân hàng Quân đội. Điều này có nghĩa là khi có một khách hàng mới đăng ký mở tài khoản tại Ngân hàng Quân đội, ứng dụng sẽ dựa trên những thông tin của tập khách hàng sẵn có từ trước để thực hiện quá trình phân tích đánh giá nhằm phân loại khách hàng, từ đó tìm ta được khách hàng này thuộc tập khách hàng mẫu nào, và dựa trên đó có thể suy đoán được hành vi của khách hàng này. Việc suy đoán ra hành vi của khách hàng này là công việc quan trọng, bởi vì nó sẽ ảnh hưởng trực tiếp tới việc giới thiệu các sản phẩm dịch vụ của ngân hàng tới khách hàng.
Trên cơ sở những tìm hiểu ở bên trên cộng với việc xác định rõ mục đích của công việc phân loại khách hàng, đề tài sẽ tập trung chủ yếu vào việc xây dựng ứng dụng nhằm phân cụm tập hợp dữ liệu khách hàng của Ngân hàng Quân đội. Để thực hiện được công việc dự đoán hành vi của khách hàng, ứng dụng sẽ được cài đặt theo phương pháp phân cụm sử dụng thuật toán k-means kết hợp với tích lũy bằng chứng để đưa ra được
kết quả phân cụm của khách hàng một cách chính xác. Đối với phương pháp phân cụm sử dụng thuật toán k-means, ứng dụng sẽ tiến hành gộp dữ liệu khách hàng mới và những dữ liệu khách hàng cũ vào, tiến hành phân cụm thành các tập con. Dựa trên đặc tính của những tập con đó thông qua dữ liệu cũ, ứng dụng sẽ tiến hành dự đoán hành vi của những dữ liệu mới đưa vào. Mô hình thực hiện việc cài đặt được chỉ ra như hình bên dưới đây: Tập dữ liệu khách hàng cũ (đã được gán nhãn) Tập dữ liệu khách hàng mới (chưa gán nhãn) Bộ phân cụm tích lũy bằng chứng K- means Kết quả phân cụm lần 1 Kết quả phân cụm lần 2 Kết quả phân cụm lần n ….. Kết quả dự đoán
Hình 3.5 Mô hình tính toán dữ liệu phương pháp phân cụm tích lũy dựa trên k-means
Kết quả đầu ra sẽ được điều chỉnh theo những tham số đầu vào sao cho đảm bảo hợp lý ở một mức độ cho phép. Các kết quả đầu ra cũng được tập hợp lại và so sánh để có thể đánh giá xu hướng một cách chính xác nhất có thể.
Dữ liệu sử dụng cho quá trình lấy mẫu sẽ được lấy từ cơ sở dữ liệu của Ngân hàng Quân đội. Tuy nhiên dữ liệu này sẽ trải qua một quá trình làm mịn để đảm bảo rằng sẽ loại bỏ được những thuộc tính dư thừa và những giá trị bị thiếu của thuộc tính. Dữ liệu đầu ra của quá trình này sẽ đảm bảo đáp ứng cho ứng dụng hoạt động một cách hiệu quả.
Chương 4. Thực nghiệm và đánh giá 4.1 Mục đích xây dựng và vai trò của ứng dụng
Ứng dụng được xây dựng trên cơ sở đáp ứng nhu cầu của việc khai phá dữ liệu của Ngân hàng Quân đội để nhằm dự đoán nhu cầu của khách hàng cũng như đánh giá hành vi của họ. Việc đánh giá được dựa trên một số thuộc tính (các trường) của bản ghi của từng khách hàng. Các thuộc tính này được lựa chọn sao cho phù hợp với ứng dụng, đảm bảo ứng dụng hoạt động tốt. Kết quả của ứng dụng sẽ được thể hiện trên giao diện của chương trình một cách đơn giản dễ nhìn để người dùng có thể dễ dàng quan sát được kết quả.
Ứng dụng cũng chỉ ra độ chính xác của phương pháp này. Đây là một tiêu chí quan trọng trong việc đánh giá kĩ thuật đưa ra có đáng tin cậy hay không. Việc điều chỉnh ứng đụng để có độ chính xác cao hơn cũng là công việc được nghiên cứu, tuy nhiên sẽ không là mục tiêu chính trong đồ án này.
Ứng dụng được xây dựng với mục đích dự đoán một khách hàng mới khi tham gia mở tài khoản ở Ngân hàng Quân đội sẽ có thể sử dụng những dịch vụ nào mà Ngân hàng Quân đội đã cung cấp, từ đó nhằm giúp cho nhân viên Ngân hàng Quân đội có thể xác định được các dịch vụ mà Ngân hàng này sẽ cung cấp tới khách hàng.
4.2. Mô hình thực nghiệm 4.2.1. Dữ liệu thực nghiệm 4.2.1. Dữ liệu thực nghiệm
Nguồn dữ liệu
Dữ liệu được lấy từ cơ sở dữ liệu của Ngân hàng Quân đội, bao gồm các bảng dữ liệu liên quan đến thông tin khách hàng và các bảng dữ liệu liên quan đến dịch vụ của Ngân hàng Quân đội. Các dịch vụ sử dụng trong việc xây dựng ứng dụng ở phần này gồm có 3 dịch vụ là dịch vụ Mobile banking, dịch vụ Cho vay và dịch vụ thẻ.
- Dịch vụ mobile banking: Dịch vụ mobile banking là dịch vụ dựa trên các ứng dụng mobile do Ngân hàng cung cấp cho khách hàng. Với việc sử dụng dịch vụ này, các Ngân hàng có thể sử dụng để thực hiện các giao dịch được định nghĩa sẵn như: Vấn tin tài khoản, mua hàng, lấy biến động số dư, in sao kê v.v…Các thao tác hoàn toàn được thực hiên trên thiết bị di động của khách hàng. Hiện tại các Ngân hàng đang tích cực phát triển dịch vụ này và Ngân hàng Quân đội cũng không phải là ngoại lệ.
1.Dịch vụ Cho vay: Đây là dịch vụ truyền thống của Ngân hàng. Khi khách hàng có nhu cầu cần vay vốn để đầu tư thì sẽ làm thủ tục vay vốn của Ngân hàng. Ngân hàng
sẽ làm công việc xác thực khách hàng, đánh giá rủi ro cũng như đánh giá khả năng trả nợ, tài sản cầm cố của khách hàng trước khi cho vay.
- Dịch vụ thẻ: Trong vài năm trở lại đây, dịch vụ thẻ đã phát triển một cách nhanh chóng, cho phép khách hàng có thể sử dụng một thẻ (debit, credit) để thanh toán mua bán, rút tiền, vấn tin số dư v.v…trên các thiết bị được Ngân hàng cung cấp (ATM, POS). Thông tin về mỗi dịch vụ trên đều đươc lưu trong cơ sở dữ liệu của Ngân hàng thành một bảng riêng biệt, kèm theo thông tin về mã của khách hàng sử dụng dịch vụ này. Thông tin khách hàng được lưu thành một bảng riêng chi tiết, bao gồm mã khách hàng để liên kết đến các bảng dịch vụ khác. Hình dưới đây cho ta cái nhìn khái quát về cách thức tổ chức dữ liệu trong cơ sở dữ liệu Ngân hàng Quân đội:
Bảng4.1: Thông tin khách hàng
STT Tên trường Mô tả
1 CustomerID Mã khách hàng 2 CustomerName Tên khách hàng
3 CustomerType Loại khách hàng (cá nhân, doanh nghiệp) 4 JobType Ngành nghề công việc
5 Nation Quốc tịch 6 DateOfBirth Ngày sinh
7 Sex Giới tính
8 Status Tình trạng hôn nhân 9 Identification CMTND
10 savg_acc Số tiền trong tài khoản saving account 11 curr_acc Số tiền trong tài khoản current account 12 cust_inc Thu nhập của khách hàng
Bảng 4.2: Dịch vụ mobile banking
STT Tên trường Mô tả
1 CustomerID Mã khách hàng
2 Account Tài khoản
3 Mobile Số điện thoại
… … …
Bảng 4.3: Dịch vụ vay
STT Tên trường Mô tả
1 CustomerID Mã khách hàng
2 CurrencyType Loại tiền
3 Amount Số tiền vay
4 Startdate Ngày bắt đầu vay
5 Enddate Ngày đáo hạn
6 ServiceType Nhóm sản phẩm vay
7 RateType Loại lãi xuất
8 FormulaType Công thức tính lãi
… … …
Bảng 4.4: Dịch vụ thẻ
STT Tên trường Mô tả
1 CustomerID Mã khách hàng 2 Branch Chi nhánh 3 ClassOfCard Hạng thẻ 4 CustomerType Loại khách hàng 5 PublicType Loại phát hành 6 StartValid Ngày phát hành 7 FirstName Tên 8 LastName Họ … … … Chuẩn bị dữ liệu
- Phân tích các trường liên quan đến quá trình phân loại trong bảng dữ liệu khách hàng: Trên bảng thông tin khách hàng, những trường không liên quan đến quá trình phân loại bao gồm: thông tin ngày bắt đầu sử dụng dịch vụ, ngày hết hạn dịch vụ, thông tin chi nhánh đưa ra dịch vụ cho khách hàng, số CMTND, quốc tịch v.v… Đây là những thông tin khó có khả năng định lượng hóa và do đó khó có thể sử dụng trong thuật toán k- neareast neighbor của chúng ta, cần phải được loại bỏ. Qúa trình này được thực hiện thủ công. Sau khi loại bỏ bớt những trường không cần thiết của bảng khách hàng sẽ được bảng rút gọn chỉ còn một số trường sau:
Bảng 4.5: Bảng các trường sau khi thực hiện phân tích trường
STT Tên trường Mô tả
1 CustomerID Mã khách hàng 2 CustomerName Tên khách hàng
3 CustomerType Loại khách hàng (cá nhân, doanh nghiệp) 4 DateOfBirth Ngày sinh
5 Sex Giới tính
6 Status Tình trạng hôn nhân
7 savg_acc Số tiền trong tài khoản saving account 8 curr_acc Số tiền trong tài khoản current account 9 cust_inc Thu nhập của khách hàng
- Sàng lọc bảng dữ liệu khách hàng: Duyệt qua tất các dữ liệu của bảng dữ liệu khách hàng đã được rút gọn, những trường dữ liệu nào thiếu sẽ được điền vào theo nguyên tắc sau: Tìm giá trị có tần suất mà xuất hiện nhiều nhất trong dữ liệu của trường này và điền vào vị trí trường còn thiếu. Sau quá trình này sẽ đảm bảo tất cả dữ liệu trong trường này là đầy đủ không bị thiếu. Qúa trình này được thực hiện bằng một ứng dụng nhỏ viết ngay trong Oracle.
- Chuyển đổi dữ liệu phù hợp với quá trình phân loại: Thực hiện liên kết 4 bảng dữ liệu lại ta có thông tin khách hàng nào sử dụng dịch vụ nào. Tuy nhiên, vấn đề quan trọng ở đây là chỉ quan tâm đến những thông tin của khách hàng cùng với những thông tin dịch vụ khách hàng sử dụng, do mỗi một trong ba bảng dịch vụ sẽ được mô hình hóa thành một cột thông tin ghép thêm vào bảng khách hàng, để chỉ ra rằng khách hàng sử dụng dịch vụ nào. Sau quá trình này, ta có bảng thông tin khách hàng như sau:
Bảng 4.6: Bảng sau khi thực hiện ghép bảng dữ liệu
STT Tên trường Mô tả
1 CustomerID Mã khách hàng
2 CustomerName Tên khách hàng
3 CustomerType Loại khách hàng (cá nhân, doanh nghiệp)
4 DateOfBirth Ngày sinh
5 Sex Giới tính
6 Status Tình trạng hôn nhân
7 savg_acc Số tiền trong tài khoản saving account 8 curr_acc Số tiền trong tài khoản current account
9 cust_inc Thu nhập của khách hàng
10 Use_mobile_banking
Cho biết khách hàng có sử dụng dịch vụ mobile banking không (giá trị 0 cho biết là không, giá trị 1 cho biết là có dùng)
11 Use_loan
Giá trị 0 cho biết khách hàng không dùng dịch vụ vay, giá trị 1 cho biết khách hàng có dùng dịch vụ vay.
12 Use_card
Giá trị 0 cho biết khách hàng không dùng dịch vụ thẻ, giá trị 1 cho biết khách hàng có dùng dịch vụ thẻ.
Đối với những thuộc tính không có khả năng định lượng, cần phải chuyển đổi thành giá trị tương ứng có khả năng định lượng. Trong bảng dữ liệu khách hàng, có các cột sau sẽ được chuyển đổi thành giá trị tương ứng:
Bảng 4.7: Danh sách các trường thực hiện chuyển đổi dữ liệu
Tên trường Giá trị tổng tương ứng
CustomerType 0: khách hàng cá nhân; 1: khách hàng doanh nghiệp
DateOfBirth Chuyển đổi thành tuổi, bằng cách lấy năm hiện tại – năm sinh
Sex 0: nữ; 1: nam
Như vậy sau quá trình làm mịn dữ liệu đã cho ra đầu ra là tập dữ liệu mẫu là một bảng, gọi là bảng Thông tin mẫu, mô tả khá đầy đủ về thông tin có khả năng định lượng của khách hàng như bên dưới đây (trừ hai trường là customerid và customername để cho biết rõ hơn thông tin khách hàng):
Bảng 4.8: Bảng các trường sau khi thực hiện chuyển đổi dữ liệu
STT Tên trường Mô tả
1 CustomerID Mã khách hàng
2 CustomerName Tên khách hàng
3 CustomerType 0: khách hàng cá nhân; 1: khách hàng doanh nghiệp
4 Age Số tuổi
5 Sex 0: nữ; 1: nam
6 Status 0: chưa lập gia đình; 1: đã lập gia đình 7 savg_acc Số tiền trong tài khoản saving account 8 curr_acc Số tiền trong tài khoản current account
9 cust_inc Thu nhập của khách hàng
10 use_mobile_banking
Cho biết khách hàng có sử dụng dịch vụ mobile banking không (giá trị 0 cho biết là không, giá trị 1 cho biết là có dùng)
11 use_loan
Gía trị 0 cho biết khách hàng không dùng dịch vụ vay, giá trị 1 cho biết khách hàng có dùng dịch vụ vay.
12 use_card
Gía trị 0 cho biết khách hàng không dùng dịch vụ thẻ, giá trị 1 cho biết khách hàng có dùng dịch vụ thẻ.
Dung lượng dữ liệu
Tập dữ liệu mẫu sử dụng ở đây sau khi trích rút có 300 bản ghi tập dữ liệu này sẽ được đưa vào để thực hiện quá trình phân cụm. Thuật toán thực hiện phân cụm được sử dụng cài đặt là thuật toán phân cụm tích lũy. Dữ liệu dự đoán sẽ được gộp vào tập dữ liệu có từ trước để thực hiện quá trình phân cụm, và dựa vào kết quả phân cụm sẽ dự đoán được hướng sử dụng dịch vụ của dữ liệu thông tin khách hàng được đưa vào.
4.2.2 Công cụ thực nghiệm
Để đánh giá việc tìm hiểu phương pháp phân cụm tích lũy bằng chứng, cần phải có một công cụ cho phép chạy thuật toán cài đặt phân cụm tích lũy để lấy kết quả đầu ra,
đem so sánh với mong muốn kết quả thực tế nhằm xem xét độ chính xác của việc dự đoán khi sử dụng phương pháp này. Hiện nay phương pháp phân cụm tích lũy là phương pháp tương đối mới trên thế giới nên các ứng dụng mã nguồn mở chưa hỗ trợ việc cài đặt thuật toán này. Với mong muốn có thể đánh giá được tính đúng đắn của phương pháp, trong phạm vi luận văn này sẽ xây dựng một công cụ ở mức độ đơn giản để hỗ trợ cho việc cài đặt thuật toán phân cụm tích lũy k-means.
Hình 4.1: Giao diện ứng dụng cài đặt thuật toán phân cụm tích lũy dựa trên phương pháp k-means
Việc xây dựng công cụ phân tích này mới chỉ ở mức độ đơn giản. Nó bao gồm phần mềm cài đặt thuật toán phân cụm tích lũy k-means có kết nối đến cơ sở dữ liệu Oracle (dữ liệu đã được chuẩn bị sẵn như mô tả ở phần trên nhằm đảm bảo ứng dụng có thể hoạt động tốt).
Như mô tả trên hình, giao diện sẽ hiển thị số dòng dữ liệu đầu vào, các thông số tham số cần thiết cho quá trình phân cụm. Một cải tiến đáng kể là việc sử dụng giá trị k nhỏ nhất và lớn nhất. Thuật toán sẽ lựa chọn ngẫu nhiên một giá trị k trong khoảng trên, sau đó sẽ chạy thuật toán k-means. Tùy theo số lần lặp lại mà ta sẽ xây dựng lên được ma trận kết hợp A, sau đó bắt đầu xây dựng lại các cụm theo thuật toán SL(Single Link). Theo cách này, số lượng cụm sau quá trình chạy thuật toán sẽ không còn phụ thuộc vào tham số là số cụm đưa vào ban đầu.
Để phục vụ cho mục đích dự đoán kết quả như đã đặt ra, giao diện chương trình còn cho phép nhập các thông tin liên quan đến bản ghi của khách hàng mới. Khách hàng này có thể ở hai dạng: đã tham gia một dịch vụ, hoặc chưa tham gia dịch vụ này. Ứng dụng sẽ tiến hành phân cụm cả bản ghi của khách hàng này để đưa khách hàng vào một nhóm (cụm) các khách hàng cụ thể. Sau đó dựa trên tính chất của nhóm này sẽ đưa ra dự đoán cho hành vi của khách hàng này trong tương lai.
Các kết quả được liệt kê ở phía bên dưới sẽ cho biết kết quả tính toán dự đoán