Xây dựng mô hình thực nghiệm

Một phần của tài liệu Nghiên cứu mạng neural network và ứng dụng trong dự đoán khả năng gửi tiền tiết kiệm của khách hàng cá nhân qua telemarketing tại ngân hàng (Trang 58 - 63)

CHƯƠNG 3: THỰC NGHIỆM VÀ ĐÁNH GIÁ

3.2. Xây dựng mô hình thực nghiệm

Trong bước này, cần phải kiểm tra xem tập dữ liệu có bị khuyết thiếu, chứa dữ liệu nhiễu hay dữ liệu không hợp lệ để có biện pháp xử lý. Kết quả chạy cho thấy tập dữ liệu bị thiếu 20 giá trị ở thuộc tinh Luong:

Hình 22: Dữ liệu khuyết thiếu trong tập dữ liệu

Với những bản ghi bị thiếu dữ liệu Luong sẽ được bổ sung giá trị trung bình của thuộc tính vào những dữ liệu bị thiếu. Và sau khi bổ sung dữ liệu khuyết, thực hiện lại việc kiểm tra dữ liệu khuyết thiếu, kết quả cho ra là dữ liệu đã được thay thế thành công:

Hình 23: Thay thế dữ liệu khuyết thiếu

Ngoài việc bản ghi chứa dữ liệu khuyết thiếu sẽ ảnh hưởng đến chất lượng kết quả của mô hình thì việc tập dữ liệu chứa các bản ghi bị trùng lặp cũng ảnh hưởng đáng kể đến kết quả mô hình. Thật may là tập dữ liệu này không có bản ghi bị trùng lặp:

Hình 24: Xử lý dữ liệu trùng lặp

Ngoài ra như đã đề cập ở trên, dữ liệu đầu vào của thuật toán neural network là dữ liệu định lượng, mà tập dữ liệu đầu vào lại chứa cả dữ liệu định lượng và dữ liệu định tính. Vì vậy cần phải rời rạc hóa dữ liệu, giữ nguyên dữ liệu định lượng và chuyển dữ liệu định tính thành dữ liệu định lượng. Tập dữ liệu có 15 thuộc tính, dưới đây là một vài thuộc tính để minh họa cho việc rời rạc hóa dữ liệu:

Tuoi TT_hon_nhan Trinh_do TT_no_tin_dung Luong Ket_qua

59 Da ket hon THCS Khong 2343 Co

54 Da ket hon THPT/Dai hoc Khong 184 Co

60 Doc than Tieu hoc Khong 313 Co

55 Da ket hon THCS Khong 2476 Co

Bảng 2: Dữ liệu chưa được rời rạc hóa

Tuoi

TT_hon nhan_Da

ket hon

TT_hon nhan_Doc

than

Trinh_do_

THCS

Trinh_do_

Tieu hoc

Trinh_do_

Chua xac dinh

TT_no_tin

dung_khong Luong Ket_qua_khong

59 1 0 1 0 0 1 2343 0

54 1 0 0 0 0 1 45 0

60 0 1 0 1 0 1 1270 0

55 1 0 1 0 0 1 2476 0

Bảng 3: Dữ liệu đã được rời rạc hóa

3.2.2. Thực nghiệm với thuật toán neural network

Sau khi tiền xử lý dữ liệu, đã có dữ liệu sạch thì bước tiếp theo sẽ tiến hành thực nghiệm dữ liệu với thuật toán neural network. Trong phần này sẽ có 3 bước:

- Bước 1: Tạo tập dữ liệu đào tạo (training data) và dữ liệu kiểm tra (testing data). Đây là bước cơ bản và là bước bắt buộc trước khi thực hiện bất kỳ một bài toán phân lớp. Ở bước này, thuật toán được khởi tạo tập dữ liệu huấn luyện (data training) và dữ liệu kiểm thử (data testing), tỷ lệ giữa 2 tập dữ liệu là 8:2. Ở mỗi lần thực nghiệm, các bản ghi trong mỗi tập dữ liệu sẽ được lấy ngẫu nhiên.

Hình 25: Khởi tạo dữ liệu

- Bước 2: Khởi tạo mạng neural network: Trong bước này sẽ thực hiện khởi tạo lớp đầu vào, lớp đầu ra, chọn số tầng ẩn, số nút trong mỗi tầng ẩn. Việc xác định số tầng ẩn và số nút trong mỗi tầng là điều rất quan trọng để tối ưu bài toán. Cùng một tập dữ liệu, mạng neural network có số tầng ẩn và số nút trong số tầng ẩn khác nhau sẽ cho ra kết quả và độ chính xác khác nhau. Đây là một vấn để nghiên khác.

Trong khóa luận, cụ thể là đối với bài toán ‘Dự đoán khả năng gửi tiền của khách hàng’, qua nhiều lần thực nghiệm và điều chỉnh số lớp ẩn và số nút trong mỗi lớp, nhận thấy rằng với mạng có 1 lớp đầu vào, 1 tầng ẩn và 1 lớp đầu ra thì cho ra kết quả tốt nhất (kết quả độ chính xác thực nghiệm của mạng có 1 lớp ẩn là 78.9% trong khi mạng 2 tầng ẩn chỉ cho ra kết quả 77.4%). Chính vì vậy kiến trúc mạng ANN này được lựa chọn để thực hiện thực nghiệm. Với tầng ẩn, do tập dữ liệu đã được rời rạc hóa và đưa vào để huấn luyện mạng có 28 thuộc tính (đã trừ đi thuộc tính phụ thuộc) nên số nút của lớp đầu vào là 28 và kết quả đầu ra của lớp này chưa cần chuyển đổi thành dạng nhị phân nên tại lớp đầu vào sẽ sử dụng hàm chuyển relu. Tương tự với lớp đầu vào, tại lớp ẩn, sau khi thử với nhiều số nút trong tầng ẩn thì thấy được với 28 nút tại tầng ẩn sẽ cho ra kết quả có độ chính xác cao hơn. Vì thế tầng ẩn cũng được khởi tạo với 28 nút. Với lớp đầu ra, trong bài toán này chỉ cho ra kết quả là hoặc Không vì vậy với kết quả đầu ra là nhị phân trong khoảng [0;1] thì sử dụng hàm sigmoid làm hàm chuyển (hay còn gọi là hàm tính toán phi tuyến tính) là rất thích hợp.

Hình 26: Khởi tạo mạng neural network

- Bước 3: Đào tạo mạng neural network: Mục đích của bước này là đưa dữ liệu training vào để huấn luyện mạng. Qua quá trình huấn luyện, mạng sẽ ‘học’ được các quy tắc và rút ra được mối quan hệ giữa các thuộc tính. Ngoài việc lựa chọn số tầng ẩn và số nút của mỗi tầng thì việc lựa chọn trọng số cho mỗi nút, mỗi lớp cũng là điều rất quan trọng. Rất khó để có thể tự thực hiện thêm trọng số cho mỗi lớp sao cho tối ưu vì thuật toán neural network là thuật toán chạy ngầm. Chính vì vậy ta cần một toán giúp giải quyết vấn đề này, đó chính là thuật toán optimizer. Đây là một thuật toán tối ưu giúp mạng học được các feature (hay pattern) của dữ liệu đầu vào, từ đó có thể tìm ra trong số phù hợp với mô hình. Mạng neural network được nghiên cứu chính trong khóa luận thuộc thuật toán ‘Học có giám sát’. Vì vậy việc chỉ ra thuật toán có bị dự đoán sai hay không là một điều rất quan trọng. Việc đưa hàm loss vào thuật toán giúp đánh giá thuật toán dự đoán đã chính xác chưa và đưa ra phản hồi.

Nhờ sự phản hồi đó mà mô hình sẽ điều chỉnh các trọng số cho phù hợp. Quá trình này sẽ lặp đi lặp lại đến khi đạt được một độ chính xác nào đó. Trong các hàm loss, hàm Cross – entropy Loss là một trong các hàm tạo ra mô hình có độ chính xác cao.

Ngoài ra, mạng neural network hoạt động giống não bộ con người, vì thế nên nó cần một quá trình học đủ dài để có thể phát hiện được mối liên quan giữa các thuộc tính.

Qua nhiều lần thử nghiệp với batch_size và epochs khác nhau, thì batch_size = 32 và epochs = 200 thì mô hình cho ra kết quả tốt nhất. Mỗi lần epochs được tính là một lần training mạng. Ví dụ trong tập dữ hiện tại có 11162 bản ghi thì mỗi lần epochs là một lần đưa cả 11162 bản ghi này vào training. Tuy nhiên với điều kiện nghiên cứu khóa luận cá nhân thì việc đưa cả 11162 bản ghi vào training một lần duy nhất là bất khả thi vì cần một siêu máy tính có RAM và GPU RAM lớn để có thể lưu trữ được dữ liệu trên. Chính vì thế, dữ liệu cần được tách nhỏ trên cho các lần training. Mỗi lần training sẽ đưa 32 bản ghi ngẫu nhiên vào lan truyền mạng neural network, sau đó lại đưa tiếp 32 bản ghi vào mạng. Các bản ghi đưa vào huấn luyện sau không bị

trùng lặp với các bản ghi trước. Công việc này diễn ra cho đến khi hết các bản ghi, khi đó sẽ kết thúc một epochs.

Một phần của tài liệu Nghiên cứu mạng neural network và ứng dụng trong dự đoán khả năng gửi tiền tiết kiệm của khách hàng cá nhân qua telemarketing tại ngân hàng (Trang 58 - 63)

Tải bản đầy đủ (PDF)

(83 trang)