MỞ ĐẦU
Sự phát triển mạnh mẽ của Công nghệ nói chung và Công nghệ thông tin nói riêng
đã tạo nên nhiều hệ thống thông tin phục vụ việc tự động hoá mọi hoạt động kinh
doanh cũng như quản lý trong xã hội. Điều này đã tạo ra những dòng dữ liệu khổng
lồ trở thành hiện tượng “bùng nổ thông tin”. Nhiều hệ quản trị cơ sở dữ liệu mạnh
với các công cụ phong phú và thuận tiện đã giúp con người khai thác có hiệu quả
các nguồn tài nguyên dữ liệu lớn nói trên. Bên cạnh chức năng khai thác cơ sở dữ
liệu có tính tác nghiệp, sự thành công trong kinh doanh không chỉ thể hiện ở năng
suất của các hệ thống thông tin mà người ta còn mong muốn cơ sở dữ liệu đó đem
lại tri thức từ dữ liệu hơn là chính bản thân dữ liệu. Phát hiện tri thức trong cơ sở dữ
liệu (Knowledge Discovery in Databases - KDD) là một quá trình hợp nhất các dữ
liệu từ nhiều hệ thống dữ liệu khác nhau tạo thành các kho dữ liệu, phân tích thông
tin để có được nhiều tri thức tiềm ẩn có giá trị. Trong đó, khai phá dữ liệu (Data
Mining) là quá trình chính trong phát hiện tri thức. Sử dụng các kỹ thuật và các khái
niệm của các lĩnh vực đã được nghiên cứu từ trước như học máy, nhận dạng, thống
kê, hồi quy, xếp loại, phân nhóm, đồ thị, mạng nơron, mạng Bayes, . được sử dụng
để khai phá dữ liệu nhằm phát hiện ra các mẫu mới, tương quan mới, các xu hướng
có ý nghĩa.
Luận văn với đề tài “Học mạng nơron theo mô hình SOM và ứng dụng trong bài
toán quản lý khách hàng vay vốn Ngân hàng” khảo sát lĩnh vực khai phá dữ liệu
dùng mạng nơron. Luận văn tập trung vào phương pháp học mạng nơron có giám
sát và không có giám sát, dùng thuật toán SOM để giải quyết bài toán phân cụm
theo mô hình mạng nơron.
Phương pháp nghiên cứu chính của luận văn là tìm hiểu các bài báo khoa học được
xuất bản trong một vài năm gần đây về khai phá dữ liệu dùng mạng nơron và áp
dụng công cụ SOM ToolBox để giải quyết bài toán phân tích dữ liệu khách hàng
vay vốn trong Ngân hàng.
-3-
Nội dung của bản luận văn gồm có phần mở đầu, ba chương và phần kết luận.
Chương 1 giới thiệu về mạng nơron và các thành phần chính trong mạng nơron
(mục 1.1), dùng mạng nơron trong khai phá dữ liệu nói chung và dữ liệu tài chính
nói riêng (mục 1.2) và các phương pháp học sử dụng mạng nơron gồm học có giám
sát (mục 1.3.1) với thuật toán BBP (Boosting-Based Perceptron) và học không có
giám sát (mục 1.3.2).
Chương 2 trình bày chi tiết việc áp dụng mạng nơron trong khai phá dữ liệu mà đặc
biệt là phân cụm dữ liệu (mục 2.1 và 2.2), có liên quan đến hai thuật toán học không
có giám sát đó là thuật toán học ganh đua (mục 2.2.1) và thuật toán SOM (2.2.2).
Trên cơ sở đó luận văn giới thiệu một số ứng dụng điển hình của SOM trong lĩnh
vực tài chính (mục 2.3).
Chương 3, áp dụng SOM để giải quyết bài toán phân tích thông tin khách hàng vay
vốn Ngân hàng, gồm việc tìm hiểu quy trình lập hồ sơ khách hàng vay vốn (mục
3.1), tìm hiểu bộ công cụ SOM Toolbox (mục 3.2 và 3.3) để xây dựng chương trình
cho bài toán nói trên. Và cuối cùng là một số kết quả chạy chương trình và nhận xét.
Luận văn này được thực hiện dưới sự hướng dẫn khoa học của TS. Hà Quang Thụy.
Tôi xin chân thành cảm ơn sâu sắc tới Thầy đã chỉ dẫn tận tình giúp tôi có thể hoàn
thành bản luận văn này. Tôi xin chân thành cảm ơn các thầy giáo và các bạn trong
bộ môn Các Hệ thống Thông tin đã có những góp ý hữu ích trong quá trình thực
hiện bản luận văn. Tôi cũng vô cùng cảm ơn sự giúp đỡ và động viên khích lệ của
người thân trong gia đình tôi, bạn bè và các đồng nghiệp trong Ngân hàng VPBank
trong suốt quá trình thực hiện luận văn.
MỤC LỤC
MỞ ĐẦU 2
CHƯƠNG 1. MẠNG NƠRON VÀ ỨNG DỤNG TRONG HỌC MÁY . 4
1.1 Mạng nơron . 4
1.1.1 Đơn vị xử lý . 5
1.1.2 Hàm xử lý 7
1.1.3 Hình trạng mạng . 9
1.2 Mạng nơron trong khai phá dữ liệu 10
1.2.1 Khai phá dữ liệu . 10
1.2.2 Khai phá dữ liệu tài chính 13
1.3 Các phương pháp học sử dụng mạng nơron . 15
1.3.1 Học có giám sát 16
1.3.2 Học không giám sát 19
1.4 Kết luận chương 1 . 20
CHƯƠNG 2. THUẬT TOÁN SOM VỚI BÀI TOÁN PHÂN CỤM . 21
2.1 Các phương pháp phân cụm . 21
2.2 Dùng mạng nơron trong phân cụm . 22
2.2.1 Học ganh đua 22
2.2.2 Thuật toán SOM 24
2.2.3 Sử dụng SOM trong khai phá dữ liệu . 29
2.2.4 SOM với bài toán phân cụm . 31
2.2.5 Các phương pháp phân cụm khác 35
2.3 Một vài ứng dụng của SOM . 38
2.3.1 Lựa chọn quỹ đầu tư . 39
2.3.2 Đánh giá rủi ro tín dụng giữa các nước . 40
2.4 Kết luận chương 2 . 43
CHƯƠNG 3. ỨNG DỤNG MÔ HÌNH SOM TRONG BÀI TOÁN NGÂN HÀNG . 45
3.1 Phát biểu bài toán 45
3.2 Giới thiệu công cụ SOM Toolbox 46
3.3 Cấu trúc chương trình . 47
3.3.1 Xây dựng tập dữ liệu . 47
3.3.2 Xử lý dữ liệu trước huấn luyện . 52
3.3.3 Khởi tạo SOM và huấn luyện 52
3.3.4 Mô phỏng (trực quan hoá) 56
3.3.5 Phân tích kết quả 59
3.4 Một số nhận xét . 60
3.4.1 Độ phức tạp tính toán . 60
3.4.2 Kết quả chạy chương trình . 63
3.4.3 So sánh với các công cụ khác . 71
3.5 Kết luận chương 3 . 73
KẾT LUẬN . 74
TÀI LIỆU THAM KHẢO 75
76 trang |
Chia sẻ: maiphuongtl | Lượt xem: 1915 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Luận văn Học mạng nơron theo mô hình SOM và ứng dụng trong bài toán quản lý khách hàng vay vốn Ngân hàng, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
hau. Trực quan hoá khoảng cách lân cận
giữa các vectơ trọng số được đưa ra trong ma trận hợp nhất khoảng cách.Với mọi
vectơ trọng số wxy, với x và y là các chỉ số hình thái, khoảng cách Ơclit dx và dy
giữa hai lân cận và khoảng cách dxy tới lân cận tiếp theo được tính như sau:
yxyx wwyxdx ,1,),( +−=
1,,),( +−= yxyx wwyxdy
⎟⎟⎠
⎞
⎜⎜⎝
⎛ −+−= =+++
222
1),( ,11,1,1, yxyxyxyx
wwww
yxdxy
Hình 15. Vectơ chiến thắng liên tục đối với SOM có
30x40 nơron cho dữ liệu hỗn hợp Gauxơ
-35-
Khoảng cách du được tính bằng giá trị trung bình của tám khoảng cách biên xung
quanh. Với bốn khoảng cách cho mỗi nơron dx, dy, dxy và du, như vậy dễ dàng xác
định ma trận hợp nhất và ma trận này có kích thước là (2nx-1)(2ny-1).
Trong hình 17 các thành phần của U-matrix được mã hoá theo mức xám. Chỗ sáng
là các giá trị thấp và chỗ tối cho giá trị cao. Như vậy, các cụm trên ma trận là các
vùng có khoảng cách nhỏ giữa các trọng số và giữa các cụm với nhau lại có khoảng
cách lớn.
2.2.5 Các phương pháp phân cụm khác
a. Cây phân cấp [9]
Mục đích là kết nối liên tiếp các đối tượng với nhau vào trong các cụm lớn, dùng
một số độ đo như khoảng cách hay thuộc tính giống nhau. Xét một biểu đồ cây có
thứ tự và nằm ngang, bắt đầu từ đối tượng bên trái của biểu đồ, tưởng tượng rằng
Hình 16. Định nghĩa một U-Matrix
Hình 17. U-Matrix của SOM trong hình 15
-36-
trong mỗi bước chúng ta “nới lỏng” dần các tiêu chuẩn. Hay diễn đạt bằng cách
khác là giảm dần ngưỡng khi đưa ra quyết định có hai hay nhiều đối tượng là các
thành phần của cùng một nhóm.
Bằng cách này chúng ta có thể kết nối ngày càng nhiều các đối tượng lại với nhau
và một tập hợp ngày càng lớn các cụm khác nhau. Cuối cùng, tất cả các đối tượng
được nối lại với nhau. Trong các biểu đồ, trục hoành xác định khoảng cách liên kết.
Vì vậy mỗi nút trên đồ thị chúng có thể thể hiện khoảng cách tiêu chuẩn mà các
thành phần tương ứng được liên kết với nhau trong một cụm đơn. Khi cấu trúc dữ
liệu rỗng các thành phần của trong các cụm của đối tượng mà giống nhau thì cấu
trúc sẽ được thể hiện trong cây phân cấp như các nhánh riêng biệt
b. K thành phần chính (Hartigan, 1975) [9]
Đây là phương pháp phân cụm rất khó, giả sử rằng luôn có các giả thuyết liên quan
đến một số nhóm trong các ví dụ. Điều mong muốn là có thể sắp xếp một cách
chính xác các cụm rời rạc nhau. Các nghiên cứu cho thấy rằng chỉ có thể thực hiện
được bởi thuật toán K thành phần chính. Tóm lại phương pháp K thành phần chính
sẽ đưa ra chính xác k cụm tách biệt lớn nhất có thể.
Cho một cơ sở dữ liệu của n đối tượng và k là số các cụm cho trước, thuật toán tổ
chức phân chia các đối tượng vào k phần (k≤n). Các cụm được thiết lập theo một
tiêu chuẩn phân chia khách quan, thường được gọi là hàm tương đồng (similarity
function), dùng khoảng cách để xác định các đối tượng trong một cụm là “giống
nhau” và “khác nhau” về tính chất dữ liệu.
Thuật toán K thành phần chính được thực hiện theo bốn bước sau:
- Xác định thành phần các đối tượng vào trong k tập con khác rỗng.
- Tính các điểm nhân của cụm trong các thành phần hiện tại.
-37-
- Chia đối tượng vào cụm khi đối tượng đó có khoảng cách gần điểm nhân
nhất.
- Lặp lại bước 2, và dừng khi không còn sự phân chia mới.
Thuật toán:
Input: số các cụm k và một dữ liệu gồn n đối tượng.
Output: Một tập gồm k cụm và tối thiểu tiêu chuẩn bình phương lỗi.
Phương pháp:
(1) Chọn tuỳ ý k đối tượng và coi là các nhân cụm ban đầu;
(2) Lặp
(3) Xác định lại mỗi đối tượng vào cụm sao cho đối tượng đó là giống nhau
nhất, dựa vào giá trị trung bình của các đối tượng trong cụm;
(4) Cập nhập lại các nhân cụm, bằng cách tính giá trị trung bình của các đối
tượng cho mỗi cụm;
(5) Cho đến khi không còn thay đổi nào.
c. Cực đại kỳ vọng (Expectation Maximization)[9]
Đây là phương pháp gần giống như K thành phần chính, kỹ thuật này tìm cụm trong
số các đối tượng quan sát hoặc các biến thể và ấn định các đối tượng đó vào các
cụm. Một ví dụ ứng dụng nhiều nhất cho phân tích này là nghiên cứu thị trường để
biết thái độ của người tiêu dùng có liên quan đến đối tượng nghiên cứu. Mục đích
của nghiên cứu này là để tìm ra “các mảng thị trường”. Trong khi thuật toán K
thành phần chính đưa ra một số cố định k các cụm, thì cực đại kỳ vọng mở rộng
cách tiếp cận này để phân cụm bằng hai cách sau:
- Thay thế việc xác định các trường hợp hoặc các quan sát đến các cụm để
cực đại hoá sự khác nhau cho các biến thể tiếp theo, cực đại kỳ vọng tính
-38-
toán các khả năng của các thành phần trong cụm dựa trên phân bố xác suất.
Mục tiêu của thuật toán phân cụm sau này là cực đại toàn bộ xác suất hoặc
các khả năng có thể xảy ra của dữ liệu, cuối cùng mới đưa ra các cụm.
- Không giống như phân cụm K thành phần chính, thuật toán tính cực đại kỳ
vọng có thể được áp dụng cho cả các biến thay đổi liên tục và các biến cố
định (trong khi K thành phần chính có thể cũng được điều chỉnh để phù
hợp với các biến cố định).
2.3 Một vài ứng dụng của SOM
Thuật toán SOM đã được sử dụng trong nhiều lĩnh vực khác nhau với trên 5000
ứng dụng [13], SOM đã khẳng định được các ưu điểm sau:
- SOM rất có hiệu quả trong quá trình phân tích đòi hỏi trí thông minh để đưa
ra quyết định nhanh chóng trên thị trường. Nó giúp cho người phân tích hiểu
vấn đề hơn trên một tập dữ liệu tương đối lớn.
- Có khả năng biểu diễn dữ liệu đa chiều dùng trong trình bày và làm báo cáo.
Và đây cũng là một vấn đề chính đã được đề cập đến nhiều trong luận văn
này.
- Xác định các cụm dữ liệu (ví dụ các nhóm khách hàng) giúp cho việc tối ưu
phân bố nguồn lực (quảng cáo, tìm kiếm sản phẩm, ...).
- Có thể dùng để phát hiện sự gian lận trong thẻ tín dụng, và các lỗi dữ liệu.
Luận văn đề cập đến các vấn đề về tài chính và ngân hàng do đó chúng ta sẽ chưa
đề cập đến các ứng dụng của SOM trong các ngành khác.Trong phần này giới thiệu
hai ứng dụng của SOM trong lĩnh vực tài chính, đến chương sau sẽ trình bày các
cách thức xây dựng một ứng dụng cụ thể của SOM trong phân cụm với một bài toán
cụ thể trên dữ liệu của một Ngân hàng ở Việt Nam.
-39-
2.3.1 Lựa chọn quỹ đầu tư
Khi chọn lựa các quỹ cho mục đích đầu tư, nhà đầu tư thường phải xem xét đến
nhiều chỉ tiêu: kết quả báo cáo tài chính trong những năm gần đây; các rủi ro; năng
lực tài chính của quỹ; tỷ lệ doanh thu; chi phí; thời gian bổ nhiệm của người quản
lý. Phần lớn trong thực tế các chương trình đã có thường làm việc trên hai hoặc ba
chỉ tiêu; hay các chương trình có minh hoạ hình vẽ cũng bị giới hạn cách thể hiện
trong không gian.
Với SOM nó có thể kết hợp tốt với bất kỳ kích thước nào của tập dữ liệu và đưa ra
cách thể hiện thu gọn của dữ liệu trong ma trận hai chiều cùng với việc lấy ra các
tính chất tuỳ ý hoặc đánh trọng số cho các cột, xây dựng chỉ số hợp nhất hoặc cho
mục đích tổng thể.
Để minh hoạ cho vấn đề này, chúng ta sử dụng cơ sở dữ liệu của MorningstartTM
[7] tìm kiếm và phân tích thông tin trong một tập hợp các quỹ. Trong ví dụ này
chúng ta tập hợp các quỹ có đầu tư vào thị trường chứng khoán thế giới. Các tiêu
chuẩn dùng để lựa chọn là (1) nhiệm kỳ quản lý của nhà lãnh đạo là >= 3 năm;(2)
Số cổ đông >= B+ (B là một số >=3); (3) Tỷ lệ Morningstart >=4; (4) Tỷ lệ chi phí
>=1%. Dựa vào đây chúng ta đưa ra khoảng 50 quỹ có đầu tư chứng khoán. Căn cứ
vào cơ sở dữ liệu của các quỹ chọn ra các biến chính. Tập dữ liệu đầu vào được
chọn lọc sao cho giá trị của mỗi cột là bình đẳng.
Một ma trận gồm 50 quỹ được thể hiện trong hình vẽ. SOM thể hiện sự khác nhau
giữa các quỹ với tỷ lệ 4 hoặc 5. SOM thu được dựa vào sự mô tả dữ liệu cho biết sự
khác nhau giữa các quỹ được phân cụm theo cùng một tên loại. Thông tin tốt hơn,
trong sự khác biệt chính các quỹ với nhau đã giúp cho việc lựa chọn tốt thành phần
các danh mục vốn đầu tư có ảnh hưởng tốt hơn mong muốn của nhà đầu tư.
Tóm lại, từ 50 quỹ của thị trường chứng khoán thế giới, từ kết quả của SOM chúng
ta có 3 nhóm chính. Từ kết quả này sẽ hỗ trợ cho việc ra quyết định nên chọn nhà
quản lý nào
-40-
• Nhóm 1: là tập hợp các quỹ có người quản lý có ít hơn 3 năm nhiệm kỳ,
danh mục vốn đầu tư của họ có doanh thu cao hơn và tỷ lệ phí tổn cũng
cao.
• Nhóm 2: chiếm phần đông, gồm các quỹ có người quản lý có nhiều hơn số
năm nhiệm kỳ, doanh thu của vốn đầu tư ít hơn và tỷ lệ phí tổn thấp hơn.
Nhóm Số lg nhóm Nhà quản
lý
Giá trị tài
sản
Tỷ lệ D/Thu Front
Load
Defer
Load
Tỷ lệ phí tổn
1 5 2.8 658.2 80.8 0 4.6 2.3
2 36 3.3 272.4 70.7 2.2 0.1 1.7
3 6 7.2 6638.3 52.7 4.8 0 1
• Nhóm 3: là các nhóm có người quản lý có số năm nhiệm kỳ cao hơn (gấp 2
lần nhóm 1), doanh thu vốn đầu tư ít hơn nhóm 2 và tỷ lệ phí tổn cũng ít nhất
2.3.2 Đánh giá rủi ro tín dụng giữa các nước
Một ví dụ khác liên quan đến việc phân tích các cơ hội đầu tư cho thị trường mới
phát triển. Trong ví dụ này tập trung vào các rủi ro liên quan trong đầu tư vào trong
Hình 18. Mô phỏng SOM cho 50 quỹ có đầu tư chứng khoản
-41-
các thị trường chứng khoán. SOM được dùng để phân tích các rủi ro và nhóm các
nước có độ rủi ro gần giống nhau.
Việc phân tích dựa vào một bài báo của Greg Ip phát hành trong bài báo của Phố
Wall (WSJ) năm 1997 [7]. Trong bài “mục đích đầu tư: trò chơi rủi ro” Greg Ip đã
sắp xếp 52 quốc gia trên thế giới dựa vào hiệu quả kinh tế ; chính trị, kinh tế và rủi
ro của thị trường; khả năng thanh toán của các thị trường chứng khoán; sự điều
chỉnh và hiệu quả trên thị trường của các quốc gia. Các quốc gia được phân chia
thành năm nhóm: (1) các nước giống Mỹ nhất; (2) các nước phát triển khác; (3) các
thị trường mới và phát triển; (4) các thị trường mới hoàn toàn; (5) các thị trường
ranh giới.
Trong đó US được coi là một điểm chuẩn để phân lớp các quốc gia; các quốc gia
được chia thành năm nhóm; chỉ tiêu được dùng để phân chia không được cung cấp
rõ ràng; các quốc gia thuộc nhóm số năm có rất nhiều dữ liệu bị thiếu.
Cùng một dữ liệu và cùng một công việc phân tích trong một cách tương tác và cách
trực quan để tạo ra một SOM chúng ta nhận được kết quả hoàn toàn khác.
Trong hình 20 các cửa sổ thành phần của tỷ lệ giá hiện tại và tỷ lệ giá forward, lợi
tức, chiếm dụng vốn thị trường, số các công ty và tính chất không ổn định được thể
hiện. Đối với mỗi cửa sổ thành phần, màu ở mỗi nút thể hiện khoảng giá trị của mỗi
thành phần, giá trị thấp hơn được đánh màu xanh và giá trị cao được đánh màu đỏ;
các giá trị giữa màu xanh sáng đến màu xanh lá cây, đến màu vàng, màu cam. So
sánh các giá trị thành phần trong số các vùng có thể thể hiện được sự phụ thuộc
không tuyến tính và vì vậy nhận diện trực quan ý nghĩa của các cụm.
Một ma trận với các rằng buộc cho biết số lượng các cụm như sau US, Ấn độ và
Nhật ở các cụm khác nhau, US và Nhật có thị trường với ảnh hưởng lớn, Ấn độ có
số lượng lớn các công ty liệt kê trong thanh toán hối phiếu; Thổ Nhĩ Kỳ và Phần
Lan xác định một nhóm và các quốc gia còn lại chưa được phân hoá. Rõ ràng giả sử
-42-
giới hạn của SOM về năm cụm trong trường hợp này là không cung cấp được một
lượng lớn các thông tin mới.
Hình 19. Mô phỏng các quốc gia có rủi ro tín dụng theo dữ liệu của WSJ
Hình 20. Mô phỏng các quốc gia có rủi ro tín dụng theo dữ liệu của WSJ
-43-
Nếu các ràng buộc giả sử được thay đổi chúng ta thu được các nhóm quốc gia hoàn
toàn khác dựa trên các rủi ro của quốc gia:
Cụm1: Úc, New Zealand, Canada và phần lớn các nước Châu Âu.
Cụm2.: Phần lớn các nước Mỹ La tinh, và Đông Âu.
Cụm3: Mexico, Philippines, Bắc Phi và Cộng hoà Séc.
Cụm4: Nam Triều Tiên, Malaysia, Thái Lan và Indonesia.
Cụm5: Singapore và Hồng Kông.
Cụm6: Hungary và Venezuela.
Cụm7: Brazil.
Cụm8: Phần lan.
Cụm9: Ấn độ và Pakistan.
2.4 Kết luận chương 2
Phương pháp học mạng nơron không giám sát đặc trưng là thuật toán học ganh đua
là phương pháp thích hợp trong khai phá dữ liệu. Trong chương này tập trung chính
vào thuật toán SOM với bài toán phân cụm. SOM là một kỹ thuật mạng nơron
truyền thẳng sử dụng thuật toán học không giám sát (học ganh đua) và qua một quá
trình “tự tổ chức”, sắp xếp đầu ra cho trong thể hiện hình học của dữ liệu đầu vào.
Sử dụng SOM trong khai phá dữ liệu như một bước trung gian để giải quyết bài
toán phân cụm dữ liệu. Mà trước tiên là dùng SOM để phân cụm tập dữ liệu đầu
vào, sau đó SOM thu được lại được phân cụm bằng phương pháp phân cụm theo
phân cấp hoặc phân cụm bộ phận.
So sánh SOM với một số phương pháp phân cụm đã được dùng như phân cụm theo
cây phân cấp, K thành phần chính, cực đại kỳ vọng, ... thấy rằng phương pháp SOM
có nhiều ưu điểm như:
- Dữ liệu đầu vào có thế lớn, không hạn chế kích thước của dữ liệu.
-44-
- Mô phỏng trực quan dữ liệu chính xác từ đó hiểu được cấu trúc của dữ
liệu.
- Tiết kiệm được thời gian vì khi làm việc trên các mẫu thì nhanh hơn so
với dữ liệu trực tiếp.
Trong chương này cũng đã đề cập đến hai ứng dụng điển hình của SOM trong khai
phá dữ liệu tài chính là bài toán lựa chọn quỹ cho đầu tư tài chính và đánh giá rủi ro
tín dụng của các quốc gia trên thị trường chứng khoán thế giới.
-45-
CHƯƠNG 3. ỨNG DỤNG MÔ HÌNH SOM TRONG BÀI TOÁN
NGÂN HÀNG
3.1 Phát biểu bài toán
Có rất nhiều phương pháp cho việc khám phá tri thức và khai phá dữ liệu trong tài
chính và kinh tế có sử dụng mạng nơron không giám sát. Đặc biệt, phương pháp sử
dụng SOM có thể trực quan hoá tốt hơn đối với dữ liệu có kích thước lớn; tạo ra
biểu diễn các mối quan hệ phức tạp; cải thiện cụm và rút gọn dữ liệu; tạo điều kiện
thuận lợi cho việc khám phá tri thức qua việc xác định các cấu trúc và mẫu mới
trong dữ liệu. Nhiều ứng dụng của SOM đã được sử dụng làm công nghệ và các
lĩnh vực khoa học khác. Các ứng dụng của SOM trong tài chính, kinh tế và thị
trường hầu hết còn mới lạ. Trong phần ứng dụng của SOM ở trên đã nêu ra hai ví
dụ điển hình trong tài chính đã được áp dụng để phân lựa chọn các quỹ đầu tư cho
các dự án và đánh giá rủi ro tín dụng của các nước trong lĩnh vực chứng khoán.
Căn cứ vào quy trình thực tế của phòng tín dụng tại các Ngân hàng, tôi muốn đề
xuất áp dụng SOM trong việc đánh giá khách hàng là các doanh nghiệp có nhu cầu
vay vốn. Bằng các thể hiện trực quan của SOM điều này có thể giúp cho cán bộ tín
dụng cũng như ban lãnh đạo có những quyết định khi duyệt đơn vay của khách
hàng.
Quy trình cho vay tín dụng tại Ngân hàng được thực hiện theo các bước sau:
- Khách hàng đến vay vốn tại ngân hàng phải cung cấp đầy đủ thông tin gồm:
chỉ tiêu thanh khoản (khả năng thanh toán), chỉ tiêu hoạt động (vòng quay
hàng tồn kho, kỳ thu tiền bình quân, doanh thu trên tổng tài sản), chỉ tiêu cân
đòn nợ (nợ phải trả), chỉ tiêu thu nhập, kinh nghiệm trong ngành của ban
giám đốc,...Ngoài ra, khách hàng sẽ phải trình bày phương án kinh doanh (sử
dụng tiền vay) và trên cơ sở đó cán bộ tín dụng dự kiến tỷ lệ khả thi của
phương án.
-46-
- Cán bộ tín dụng nhập dữ liệu vào chương trình quản lý khách hàng của ngân
hàng và thực hiện phân loại khách hàng.
- Nhân viên tín dụng thay mặt khách hàng bảo vệ kế hoạch vay vốn của khách
hàng trước hội đồng tín dụng.
- Các thành viên hội đồng tín dụng có/không chấp thuận cho khách hàng vay
vốn căn cứ vào hồ sơ của khách hàng đã được nhập vào chương trình quản lý
khách hàng.
Áp dụng SOM trong việc phân tích thông tin khách hàng vay vốn trên một khối
lượng lớn các dữ liệu về khách hàng có nhu cầu (có thể chưa phải là khách hàng
chính thức hoặc cũng có thể là khách hàng đã từng vay vốn) vừa có ích cho nhận
định của nhân viên tín dụng làm cơ sở để bảo vệ khách hàng trước hội đồng tín
dụng. Ngoài ra, nó còn trợ giúp cho các thành viên trong hội đồng đưa ra quyết định
đồng ý hay không đồng ý cho khách hàng vay vốn.
Sử dụng công cụ SOM ToolBox để thể hiện trực quan các thông tin khách hàng. Dữ
liệu được lấy từ chương trình quản lý chung của Ngân hàng.
3.2 Giới thiệu công cụ SOM Toolbox
Công cụ SOM Toolbox, một sản phẩm của nhóm SOM Toolbox thuộc trường Đại
học Kỹ thuật Helsinki, là một thư viện gồm các hàm viết bằng Matlab. Đây là một
bộ công cụ dễ sử dụng để xây dựng SOM cho các mục đích nghiên cứu. Đặc biệt,
trong lĩnh vực khai phá dữ liệu, các nhà nghiên cứu đã coi đây là một công cụ có
đặc thù riêng, và chính vì vậy SOM Toolbox định huớng trực tiếp đến các hàm trực
quan.
Công cụ có thể được dùng để xử lý dữ liệu, khởi tạo và huấn luyện SOM trên một
loạt các loại trạng thái hình học, SOM thể hiện trực quan bằng nhiều cách khác
nhau, và phân tích các thuộc tính của SOM và dữ liệu ban đầu, ví dụ như là đặc tính
của SOM, các cụm trên ma trận và sự liên quan giữa các thuộc tính. Trong khai phá
-47-
dữ liệu, công cụ Toolbox và SOM nói chung là một cặp phù hợp nhất cho việc hiểu
dữ liệu một cách tổng quát, mặc dù nó cũng có thể được dùng cho xây dựng hình
mẫu.
3.3 Cấu trúc chương trình
Công cụ SOM Toolbox gồm các hàm được viết bằng Matlab. Sử dụng công cụ này
đề xây dựng hệ thống phân tích thông tin khách hàng, theo các bước sau:
- Đọc dữ liệu;
- Xây dựng cấu trúc dữ liệu;
- Xử lý dữ liệu trước khi đưa vào huấn luyện;
- Khởi tạo mẫu và huấn luyện theo thuật toán SOM;
- Mô phỏng kết quả;
- Phân tích kết quả.
3.3.1 Xây dựng tập dữ liệu
Đầu tiên, dữ liệu phải được đưa vào trong Matlab. Dữ liệu được lấy từ chương trình
quản lý của Ngân hàng lưu trong hệ quản trị cơ sở dữ liệu SQL. Dữ liệu chính là
một bảng thông tin khách hàng đã được lọc, chỉ lấy các thuộc tính được xét như sau:
Bảng 1: Thông tin khách hàng ( dữ liệu của 30 khách hàng)
Khả
năng
thanh
toán
Vòng
quay
hàng
tồn kho
Kỳ thu
tiền
bình
quân
Doanh
thu trên
tổng tài
sản
Nợ phải
trả/tổng
tài sản
Thu nhập
trước
thuế/doanh
thu
Kinh
nghiệm
của ban
GĐ
Tỷ lệ
khả thi
của PA
kinh
doanh
4.86 10 40 0.46 19.3 21.3 2.2 0.56
2.9 7 32 4 25 8 10.5 0.85
2.3 6.5 37 3.5 35 7.5 5.8 0.78
1.7 6 43 3 45 7 2.7 0.35
-48-
1.4 5.5 50 2.5 55 6.5 1.8 0.33
1.3 5.2 60 1.5 61 4.8 0.9 0.60
1.17 7 30.7 4.03 85.3 2.3 5 0.75
1.14 4.21 28.9 2.1 61 2.8 11 0.81
4.7 18 11 4 19 8.3 12 0.55
1.25 1.83 43 0.76 72 0.03 6 0.44
1.7 6 43 3 45 7 2.8 0.38
2.3 6.5 37 3.5 35 7.5 6 0.45
2.9 7 32 4 25 8 13 0.97
1.4 5.5 50 2.5 55 6.5 1 0.23
1 4 60 2 65 5 1 0.13
0 2.3 58 1.02 0 15 2.6 0.8
6.4 0 102 0.75 15 22 2.5 0.72
0.85 3 60 1.2 75 3.5 0.5 0.25
2.5 4.3 30 4.2 40 6.5 11 0.98
1 3.4 55 1.5 55 4 0.9 0.36
1.8 4 40 3.5 45 6 8 0.57
1.3 3.7 50 2.5 50 5 4.5 0.64
1 2 55 3.5 55 8 3.6 0.46
1.2 3 50 4.2 50 9 7.5 0.67
2.3 3.5 40 5 45 10 10.2 0.69
0.9 1 60 2.5 60 7 1 0.31
0.75 0.8 71 2.3 66 6.8 0.9 0.3
1.4 14.2 8 1.8 28 0.7 12 0.8
2.5 4.2 10 1.5 40 1.1 10.5 0.74
7.6 1.3 61 0.2 7 17 1.5 0.65
Mỗi dòng dữ liệu là một ví dụ hay một vectơ, các giá trị trong dòng đó là các thành
phần của vectơ hay các biến thể của tập dữ liệu. Các biến thể có thể là các thuộc
-49-
tính của dữ liệu hoặc là một tập hợp các giá trị tại cùng một thời điểm phân tích.
Một vài giá trị có thể bị thiếu.
Công cụ SOM Toolbox gồm các cấu trúc dữ liệu sau:
- Data struct: gồm tất cả các thông tin liên quan đến tập dữ liệu.
Tên trường Kiểu Kích thước Ý nghĩa
.type string Định danh kiểu cấu trúc (som_data)
.name string Định danh tập dữ liệu
.data matrix [m x n] Bảng dữ liệu ban đầu
.lables matrix [m x k] (k<n) Các lable
.comp_name matrix [n x 1] Tên thuộc tính/thành phần
.comp_norm matrix [n x1] Cấu trúc chuẩn hoá cho mỗi thuộc
tính
.lable_name matrix [k x 1] (k<n) Tên các lable
- Map struct: gồm các thông tin đầy đủ về SOM.
Tên trường Kiểu Kích thước Ý nghĩa
.type string Định danh kiểu cấu trúc (som_map)
.name string Định danh của ma trận
.codebook matrix [munits x n] Ma trận tín hiệu. Mỗi dòng tương
ứng với vectơ trọng số của một map.
.topol topology
struct
Cấu trúc hình học của map: kích
thước, kiểu lưới và hình dạng.
.lables matrix [munits x *] Các nhãn trên ma trận
.neigh string Tên hàm lân cận (gaussian,
cutgaussian, bubble, ep)
.mask vector [n x 1] Mặt nạ tìm kiếm BMU
.trainhist struct [* x 1] Cấu trúc mảng của các cấu trúc huấn
-50-
luyện
.comp_name matrix [n x 1] Tên thuộc tính/thành phần
.comp_norm matrix [n x 1] Cấu trúc chuẩn hoá cho mỗi thuộc
tính
- Topology struct: gồm các thông tin về cấu trúc hình học của ma trận.
Tên trường Kiểu Kích thước Ý nghĩa
.type string Định danh kiểu cấu trúc
(som_topol)
.msize vector [* x 1] (*>2) Kích thước của ma trận
.lattice string Kiểu lưới, mặc định là lục giác
.shape string Hình dạng tổng quát của ma trận
- Normalization struct: thông tin chuẩn hoá.
Tên trường Kiểu Kích thước Ý nghĩa
.type string Định danh kiểu cấu trúc
(som_norm)
.method string Phương pháp chuẩn hoá (var, range,
log, logistic, histD, histC)
.params varies Tuỳ theo phương pháp khác nhau
có tham số khác nhau
.status string Trạng thái chuẩn hoá
- Traing struct: gồm các thông tin khi khởi tạo và huấn luyện.
Tên trường Kiểu Kích thước Ý nghĩa
.type string Định danh kiểu cấu trúc
(som_train)
.algorithm string Thuật toán huấn luyện/khởi tạo
-51-
.data_name string Tên dữ liệu huấn luyện
.mask vector [n x 1] Mặt nạ tìm kiếm BMU
.neigh string Tên hàm lân cận (gaussian,
cutgaussian, bubble, ep)
.radius_ini scalar Bán kính lân cận ban đầu
.radius_fin scalar Bán kính lân cận cuối cùng
.alpha_ini scalar Tỷ lệ học ban đầu tại thời điểm bắt
đầu huấn luyện
.alpha_type string Kiểu hàm xác định tỷ lệ học
.trainlen scalar Độ dài huấn luyện
.time string Ngày và giờ thực hiện huấn luyện
- Grid struct: gồm các thông tin để trực quan hoá SOM.
Tên trường Kiểu Kích thước Ý nghĩa
.type string Định danh kiểu cấu trúc (som_grid)
.lattice string Kiểu lưới
.shape string Hình dạng tổng quát của ma trận
.msize vector [1 x 2] Kích thước của ma trận
.coord matrix [munits x 2]
hoặc
[munits x 3]
Toạ độ các đơn vị trong ma trận.
Có kích thước là 2 hoặc 3
.line string Kiểu đường thẳng dùng cho các
đường liên kết
.linecolor string Màu đường thẳng
.linewidth scalar Độ nét của đường thẳng
.marker string Kiểu dấu cho các đơn vị trong ma
trận
.markersize scalar Kích thước kiểu dẫu
.markercolor string Màu kiểu dấu
-52-
.surf empty
vector
RGB
Mặc định là rỗng. Nếu có giá trị thì
là nét vẽ thêm vào, nếu là RGB thì
nó là chỉ số mầu để trang trí
.label string Nhãn cho mỗi ô
.labelcolor string Màu cho nhãn
.labelsize scalar Kích thước chữ trên nhãn
3.3.2 Xử lý dữ liệu trước huấn luyện
Một cách tổng quát khi tiền xử lý dữ liệu có thể chỉ là sự chuyển đổi đơn giản hoặc
thực hiện chuẩn hoá trên số liệu, sàng lọc để loại bỏ các giá trị vô lý, tính toán các
giá trị mới thay thế chúng. Cân bằng các giá trị trong bộ công cụ này là đặc biệt
quan trọng, vì thuật toán SOM dùng độ đo Ơclit để tính toán khoảng cách giữa các
vectơ. Nếu chỉ có một giá trị nằm trong khoảng [0,...,1000] và các giá trị khác nằm
trong khoảng [0,...,1] thì sẽ ảnh hưởng đến tổ chức của ma trận vì tác động của nó
đến độ đo khoảng cách. Nói chung, chuẩn hoá dữ liệu mục đích là làm cho các giá
trị là ngang bằng nhau. Cách thức mặc định để thực hiện vấn đề này đó là cân bằng
tuyến tính tất cả các giá trị sao cho mỗi độ chênh lệch khác biệt bằng một. Điều này
có thể thực hiện đơn giản bằng hàm sD = som_normalize(sD,’var’) hoặc D =
som_normalize(D,’var’).
Một điều thuận lợi cho việc dùng các cấu trúc dữ liệu để thay thế cho các ma trận
dữ liệu đó là cấu trúc dữ liệu thể hiện được thông tin chuẩn hoá trong trường
.com_norm. Dùng hàm som_denormalize(sD) có thể khôi phục lại giá trị ban đầu.
3.3.3 Khởi tạo SOM và huấn luyện
Có hai cách để khởi tạo SOM đó là khởi tạo một cách ngẫu nhiên và khởi tạo tuyến
tính, sử dụng hai thuật toán huấn luyện là thuật toán huấn luyện tuần tự và huấn
luyện theo khối.
-53-
a. Thuật toán huấn luyện tuần tự
SOM được huấn luyện lặp đi lặp lại. Trong mỗi bước huấn luyện, chọn ngẫu nhiên
một vector ví dụ x lấy từ tập dữ liệu đầu vào và tính khoảng cách giữa x với tất cả
các vectơ trọng số của SOM theo một vài độ đo. Nơron có vector trọng số gần với
vector đầu vào x nhất được gọi là BMU, xác định bởi c:
||.|| là độ đo khoảng cách Ơclit. Ở đây việc tính toán khoảng cách là đơn giản hơn là
vì
- Các giá trị thiếu: các giá trị này được thay thế bằng giá trị NaN trong vectơ
hoặc ma trận dữ liệu. Các thành phần thiếu được xử lý một cách đơn giản
bằng cách loại trừ (ví dụ, giả sử rằng khoảng cách ||x-mi|| là bằng 0). Vì các
giá trị giống nhau bị bỏ qua trong mỗi lần tính khoảng cách, điều này hoàn
toàn là hợp lý.
- Mặt nạ (mask): Mỗi biến có một phần kết hợp phụ, được định nghiã trong
trường .mask của ma trận và cấu trúc huấn luyện. Trường này được dùng
chủ yếu trong mẫu nhị phân để loại trừ các giá trị nào đó từ tiến trình tìm
BMU (1 giữ lại, 0 loại bỏ). Tuy nhiên, mặt nạ có thể lấy bất kỳ giá trị nào,
nên nó có thể được dùng cho các giá trị đi kèm theo mức độ quan trọng của
chúng.
Với mỗi lần thay đổi, độ đo khoảng cách là:
∑
∈
−=−
Kk
kkk mxwmx
22 )(
Với k là tập các giá trị (không có giá trị thiếu) của vector ví dụ x, xk và mk là các
thành phần thứ k của ví dụ và vectơ trọng số và wk là giá trị mặt nạ thứ k.
{ }iic mxmx −=− min
-54-
Sau khi tìm BMU, các vectơ trọng số của SOM được cập nhập sao cho BMU được
di chuyển gần đến vector đầu vào hơn trong không gian đầu vào. Các lân cận của
BMU được xem là như nhau. Sự mô phỏng này thể hiện độ loang của BMU và hình
thái các lân cận của chúng về phía vectơ ví dụ. SOM cập nhập quy tắc cho vectơ
trọng số của đơn vị i là:
t: thời điểm,
x(t): một vectơ đầu vào lấy ngẫu nhiên từ tập dữ liệu đầu vào tại thời điểm t,
hci(t): lân cận kernel quanh đơn vị chiến thắng c,
α(t): tỷ lệ học tại thời điểm t.
Lân cận Kernel là một hàm không tăng của thời gian và khoảng cách của đơn vị i từ
đơn vị chiến thắng c. Nó xác định vùng ảnh hưởng của ví dụ đầu vào có trong
SOM.
Việc huấn luyện thường diễn ra hai giai đoạn. Giai đoạn đầu, có liên quan đến tỷ lệ
học ban đầu α0 và bán kính ban đầu σ0. Giai đoạn sau, giảm tỷ lệ học và bán kính
vừa đủ nhỏ so với ban đầu. Đây là thủ tục phù hợp để điều chỉnh xấp xỉ SOM tới
không gian tương đồng với dữ liệu đầu vào và sau đó điều chỉnh ma trận cho đúng.
b. Thuật toán huấn luyện khối
Thuật toán huấn luyện khối cũng là thuật toán lặp, nhưng thay vì chỉ dùng một
vectơ tại một thời điểm, mà toàn bộ tập dữ liệu được thể hiện trên ma trận trước khi
có bất kỳ điều chỉnh nào. Trong mỗi bước huấn luyện, tập dữ liệu được phân chia
theo vùng Voronoi của các vectơ trọng số. Sau đó, các vectơ trọng số được tính toán
như sau:
[ ])()()()()()1( tmtxthttmtm iciii −+=+ α
-55-
∑
∑
=
==+ n
j
ic
n
j
jic
i
th
xth
tm
1
1
)(
)(
)1(
với c = argmink{||xj-mk||} là chỉ số BMU của dữ liệu ví dụ xj. Vectơ trọng số là một
giá trị trọng số trung bình của các ví dụ, với trọng số của mỗi ví dụ là giá trị hàm
lân cận hic(t) tại BMU của nó. Giống như thuật toán huấn luyện tuần tự, các giá trị
thiếu được bỏ qua trong khi tính toán giá trị trọng số trung bình.
Chú ý rằng trong thuật toán xử lý khối của K thành phần chính, các vectơ trọng số
đơn giản chỉ là giá trị trung bình của tập dữ liệu Voronoi.
Có khả năng, có thể tính toán trước tổng các vectơ trọng số trong mỗi Voronoi:
∑
=
= i
nv
j
ji xts
1
)(
với nvi là số các ví dụ trong tập Voronoi của đơn vị i. Sau đó, các giá trị mới của
vectơ trọng số có thể được tính toán như sau:
∑
∑
=
==+ m
j
ijj
m
j
jij
i
thnv
tsth
tm
1
1
)(
)()(
)1(
với m là số các đơn vị trong ma trận.
Hàm som_make lựa chọn kích thước ma trận và các tham số tự động, mặc dù nó có
một số các tham biến. Nếu muốn giám sát chặt chẽ bằng các tham số huấn luyện, thì
có thể sử dụng sự khởi tạo phù hợp và các hàm huấn luyện trực tiếp dùng các hàm
som_lininit, som_randinint, som_seqtrain và som_batchtrain. Ngoài ra, các hàm
-56-
som_topol_struct, som_train_struct có hể được dùng để lấy các giá trị mặc định cho
hình dạng ma trận, và các tham số huấn luyện tương ứng.
3.3.4 Mô phỏng (trực quan hoá)
SOM có thể được dùng như một nền tảng thích hợp cho việc thể hiện các đặc điểm
khác nhau của SOM (hay của dữ liệu). Trong công cụ SOM Toolbox, có một số
hàm mô phỏng SOM, được chia làm 3 loại theo trực quan ban đầu:
a. Mô phỏng ô (cell) dựa vào cách trình bầy ma trận lưới trong không gian
đầu ra.
Mô phỏng ô thể hiện SOM trong không gian đầu ra: một lưới hình chữ nhật của các
ô thuộc tính thể hiện các giá trị liên quan. Chú ý rằng, mô phỏng chỉ làm việc với
các ma trận 1-2 chiều và các hình ‘cell’ và ‘toroid’ và mặc định là ‘sheet’.
Công cụ cơ bản là hàm som_show: som_show(sM); mặc định thể hiện ban đầu là
ma trận hợp nhất khoảng cách được tính toán dựa trên tất cả các giá trị và sau đó thể
hiện các mặt phẳng thành phần
- Ma trận hợp nhất khoảng cách mô phỏng khoảng cách giữa các đơn vị
trong ma trận lân cận và hỗ trợ thể hiện cấu trúc cụm của ma trận: các giá
trị lớn của ma trận hợp nhất khoảng cách cho biết ranh giới các cụm, các
vùng giống nhau có giá trị thấp xác định cụm.
- Mỗi mặt phẳng thành phần thể hiện các giá trị của mỗi đơn vị trong ma
trận.
Các giá trị thể hiện dùng chỉ số bảng màu. Với các màu khác nhau, SOM Toolbox
sử dụng câu lệnh colormap, jet, hot, gray. Ngoài ra, các kiểu khác của mặt phẳng có
thể là:
-57-
- Một lưới rỗng chỉ thể hiện một phần (edges) của các đơn vị. Điều này có
thể được dùng như một cơ sở cho việc gắn nhãn hoặc các mô phỏng khác
với màu nền có thể làm nhạt hơn.
- Trong plane màu của mỗi đơn vị đều là cố định màu. Điều này có thể
được dùng để thể hiện cho ví dụ phân cụm hoặc thông tin nhận dạng khác
cho việc liên kết các trực quan khác nhau. Có các công cụ đặc biệt như
som_colorcode và som_clustercolor là các công cụ về màu sắc.
Trong hàm som_show có nhiều tham biến đầu vào mà có thể được dùng để điều
khiển các loại plane để thể hiện và sắp xếp chúng. Các giá trị cân bằng có thể được
chuẩn hoá lại thành dữ liệu ban đầu (nếu có thể) và có nhiều tham số thay đổi cách
nhìn của sự mô phỏng nói chung, giống như sự định hướng của bảng màu.
Một hàm liên quan trong som_show_add thiết lập các thông tin thêm vào một con
số được tạo ra bởi som_show như là: nhãn, biểu đồ (hit histogram), quỹ đạo
(trajeactories).
- Gắn nhãn, được thực hiện bởi hàm som_autolabel, được dùng cho các loại
đơn vị (hoặc một vài đơn vị), bằng cách ghi tên của chúng.
- Biểu đồ được đánh dấu thể hiện phân bố của các đơn vị phù hợp nhất cho
một tập dữ liệu đưa ra. Nhiều biểu đồ có thể được vẽ và chúng được nhận
dạng bởi các màu khác nhau và/hoặc các dấu khác nhau. Như vậy có thể so
sánh các tập dữ liệu bằng phân bố ‘hits’ của chúng trên một ma trận. Các
biểu đồ có thể được tính toán dùng hàm som_hits.
- Quỹ đạo thể hiện các đơn vị phù hợp nhất đối với một tập dữ liệu thể hiện
là chuỗi thời gian (time series) (hoặc bất kỳ chuỗi được sắp). Nó có thể là
một đường kết nối liên tục các đơn vị phù hợp nhất hoặc một “vệt” quỹ đạo
giữa đơn vị phù hợp nhất hiện tại (dữ liệu ví dụ đầu tiên) có dấu lớn nhất và
đơn vị phù hợp nhất cuối cùng (dữ liệu ví dụ cuối cùng) có dấu nhỏ nhất.
Hàm som_trajectory được dùng để tác động quỹ đạo để phân tích và thậm
-58-
trí cho phần điều khiển ma trận và chuỗi thời gian trong suốt quá trình
nghiên cứu quỹ đạo.
Som-show dùng thủ tục som_cplane làm cơ sở. Thủ tục này có thể được dùng để
xây dựng tuỳ biến các kiểu mô phỏng ô. Các tham số tuỳ chọn gồm:
- Màu của các đơn vị,
- Kích thước cân bằng các đơn vị,
- Vị trí các đơn vị,
- Hình mẫu của đơn vị (đa giác tuỳ ý),
- Mẫu của các đơn vị (bằng cách cân bằng vị trí của các đỉnh).
b. Mô phỏng hình ảnh thể hiện một hình ảnh đơn giản trong mỗi đơn vị của
ma trận.
Mô phỏng hình ảnh phần lớn là vẽ codebook của SOM, là một tập các hình ảnh
thông thường. Ý tưởng là mỗi đơn vị của codebook được thể hiện bằng biểu đồ hình
tròn, và các biểu đồ được bố trí cùng một cách như là các đơn vị trong các mô
phỏng ô.
- Biểu đồ hình tròn (som_pieplane) là ý tưởng thể hiện các giá trị tỷ lệ.
Màu sắc và kích thước các phần chia có thể được thay đổi bằng cách
dùng các tham số khác nhau.
- Biểu đồ khối (som_barplane) phù hợp với việc thể hiện các giá trị các
loại khác nhau. Màu sắc của mỗi khối và khoảng trống có thể được xác
định trước.
- Hình dấu (som_plotplane) thể hiện các vectơ codebook như các hình học
đơn giản. Màu sắc của nét vẽ có thể được xác định đối với mỗi đường
riêng biệt.
-59-
c. Mô phỏng lưới thể hiện ma trận như một lưới hay đồ thị phân tán (scatter
plot)
Hàm som_grid có thể được dùng để vẽ lại kiểu lưới. Hàm này xuất phát từ ý tưởng
mô phỏng lại tập dữ liệu chỉ đơn giản gồm một tập các đối tượng, với mỗi một ví
trí, màu sắc và hình ảnh. Hơn nữa, các liên kết giữa các đối tượng, ví dụ quan hệ lân
cận, có thể được thể hiện dùng các đường thẳng. Với som_grid người sử dụng có
thể ấn định tuỳ ý các giá trị cho mỗi thuộc tính của chúng. Ví dụ các toạ độ x, y, z,
kích thước đối tượng và màu sắc có thể mỗi trạng thái cho một biến, vì thế có thể
mô phỏng đồng thời năm biến. Các lựa chọn khác nhau là:
- Vị trí của đối tượng có thể có kích thước là 2-3.
- Màu sắc của các đối tượng có thể lựa chọn tuỳ ý từ vectơ RGB, sử dụng
chỉ số màu đặc thù.
- Hình ảnh của đối tượng có thể là bất kỳ dấu của matlab (‘.’,’+’).
- Hơn nữa để các đối tượng kết hợp với các nhãn là có thể được thể hiện.
- Bề mặt giữa các đơn vị trong ma trận có thể được vẽ thêm vào lưới.
3.3.5 Phân tích kết quả
Để phân tích định lượng của SOM thì chỉ có ở một vài công cụ. Tuy nhiên, dùng
các hàm như som_neighborhood, som_bmus, và som_unit_dists, thì cũng dễ dàng
thực hiện một số phân tích. Nhiều nghiên cứu đang được thực hiện trong lĩnh vực
này, và nhiều hàm mới cho việc phân tích sẽ được đưa thêm vào công cụ SOM
Toolbox trong tương lai, ví dụ các công cụ phân cụm và phân tích các thuộc tính
của cụm. Ngoài ra, sử dụng hàm som_quality(sMap,D) để xác định độ đo chất
lượng của ma trận SOM trong dữ liệu ban đầu. Hàm trả về hai kết quả, một là
khoảng cách trung bình của mỗi vectơ dữ liệu với BMU của chúng (lỗi lượng tử
hoá), và hai là tỷ lệ của tất cả các vectơ dữ liệu đối với BMU thứ nhất và thứ hai
không liền kề (lỗi hình thái).
-60-
3.4 Một số nhận xét
3.4.1 Độ phức tạp tính toán
Mỗi một giai đoạn của thuật toán huấn luyện tuần tự có thể được thực thi như sau:
for (j=0; j<n; i++) {
bmu=-1; min=1000000;
for (i=0; i<m; i++){
dist=0;
for (k=0; k<d; k++) { diff=X[j][k] –M[i][k]; dist+=diff*diff;}
if (dist<min) {min=dist; bmu=i;}
}
for (i=0;i<m; i++) {
h = alpha*exp(U(bmu,i)/r);
for (k=0; k<d; k++) M[i][k]-=h*(M[i][k] – X[j][k]);
}
}
Với X[j][k] là thành phần thứ k của ví dụ thứ j, M[i][k] là thành phần thứ k của đơn
vị thứ i và U là một bảng khoảng cách ma trận lưới bình phương giữa các đơn vị
trong ma trận được tính toán trước. Giả sử dùng hàm lân cận Gauxơ và bán kính r
tương đương với –2r(t)2. Do đó, mỗi giai đoạn cho thuật toán huấn luyện theo khối
sẽ là:
for (i=0; i<m; i++){ vn[i] = 0; for (k=0; k<d; k++) S[i][k] = 0;} /* khởi tạo */
for (j=0; j<n; i++) {
bmu=-1; min=1000000;
for (i=0; i<m; i++){
dist=0;
for (k=0; k<d; k++) { diff=X[j][k] –M[i][k]; dist+=diff*diff;}
if (dist<min) {min=dist; bmu=i; vn[bmu]++;}
-61-
}
for (k=0; k<d; k++) S[bmu][k] += X[j][k];
}
for (i=0; i<m; i++) for (k=0; k<d; k++) M[i][k] = 0;
for (i1=0; i1<m; i1++) {
htot = 0;
for (i2=0; i2<m; i2++) {
h = exp(U[i1][i2]/r);
for (k=0; k<d; k++) m[I1][K] += H*S[i2][k];
htot += h*vn[i2];
}
for (k=0; k<d; k++) M[i1][k] /=htot;
}
Có 6nmd + 2nm các toán tử (cộng, trừ, nhân, chia hoặc luỹ thừa) trong thuật toán
huấn luyện tuần tự và 3nm + (2d +5)m2 + (n+m)d các toán tử trong thuật toán huấn
luyện khối. Vì vậy, độ phức tạp tính toán cho mỗi lần huấn luyện của thuật toán
tuần tự là O(nmd) và nếu n>=m,độ phức tạp tính toán cho huấn luyện khối chỉ bằng
một nửa của thuật toán tuần tự.
Nếu sử dụng các tham số mặc định đối với các hàm trong ToolBox thì cũng có thể
tính toán được độ phức tạp trong toàn bộ quá trình huấn luyện. Số các đơn vị của m
ma trận là tỷ lệ với căn bậc hai của n và số lượng các lần huấn luyện tỷ lệ với m/n.
Vậy độ phức tạp tính toán cho toàn bộ quá trình tạo SOM là O(nd) nên có thể áp
dụng cho các tập dữ liệu lớn, mặc dù kích thước các ma trận lớn đòi hỏi tốn nhiều
thời gian hơn. Tất nhiên, trong một vài trường hợp số lượng các đơn vị trong ma
trận cần được lựa chọn là khác nhau, ví dụ m=0.1n thì trong một vài trường hợp độ
phức tạp lại là O(n2d).
Tuy nhiên, trên thực tế cũng có một vài sự khác biệt đáng kể của SOM. Về cơ bản
có những nghiên cứu chỉ trong một số lượng nhỏ các đơn vị trong ma trận làm tăng
tốc độ tìm kiếm phần tử chiến thắng nên độ phức tạp chỉ là O(md) đến O(log(m)d).
-62-
Sau đây là một số kết quả so sánh giữa thuật toán huấn luyện tuần tự và thuật toán
huấn luyện theo khối. Bảng 2 thể hiện các chỉ số ban đầu
Tham số Giá trị
Kích thước dữ liệu 10,30,50,100
Độ dài dữ liệu 300,1000,3000,10000,300
00
Số các đơn vị trong ma trận 30,100,300,1000
Hàm huấn luyện som_batchtrain
som_seqtrain
Hàm lân cận ‘gaussian'
Kỳ huấn luyện 10 kỳ
Bảng 3: Kết quả thời gian tính toán (10 kỳ huấn luyện)
Dữ liệu Số đơn vị
trong ma trận
Thuật toán
som_batchtrain
Thuật toán
som_seqtrain
[300 x 30] 100 0.4 s 4 s
[1000 x 30] 100 1.0 s 13 s
[3000 x 30] 100 2.6 s 40 s
[10000 x 30] 100 8.6 s 2.3 min
[3000 x 10] 300 5.4 s 43 s
[3000 x 30] 300 7.7 s 1.3 min
[3000 x 50] 300 9.8 s 1.8 min
[3000 x 100] 300 16 s 3.8 min
[3000 x 30] 30 14 s 4.4 min
[3000 x 30] 100 26 s 6.7 min
[3000 x 30] 300 1.1 min 13 min
[3000 x 30] 1000 4.5 min 34 min
-63-
3.4.2 Kết quả chạy chương trình
Một số kết quả chạy chương trình trên số liệu có cấu trúc như bảng 1. Bộ dữ liệu
được lấy ngẫu nhiên từ chương trình quản lý thông tin khách hàng (gồm 150 khách
hàng).
% BUOC 1: DOC DU LIEU TU FILE
% ======================
try,
sD = som_read_data('custbank4.data');
data read ok
end
pause % An phim bat ky de tiep tuc...
-64-
% BUOC 2: XU LY DU LIEU
% ==========================
sD = som_normalize(sD,'var');
x = sD.data(1,:)
x =
0.7042 -0.1638 -0.9779 0.8998 -0.3327 -0.0307 2.6831
1.6677
orig_x = som_denormalize(x,sD)
orig_x =
2.5000 4.3000 30.0000 4.2000 40.0000 6.5000 15.0000
1.0000
pause % An phim bat ky de huan luyen...
-65-
% BUOC 3: HUAN LUYEN DU LIEU
% ====================
sM = som_make(sD);
Determining map size...
kich thuoc cua dlen: 150
kich thuoc cua munits: 62
kich thuoc cua munits: 62
kich thuoc cua sTopol.msize: 8
kich thuoc cua sTopol.msize: 8
map size [11, 6]
Initialization...
kich thuoc cua munits: 100
kich thuoc cua sTopol.msize: 10
kich thuoc cua sTopol.msize: 10
Training using batch algorithm...
Rough training phase...
kich thuoc cua munits: 66
kich thuoc cua dlen: 150
kich thuoc cua mpd: 4.400000e-001
kich thuoc cua traninlen: 5
Training: 0/ 0 s
Training: 0/ 0 s
Training: 0/ 0 s
Training: 0/ 0 s
Training: 0/ 0 s
Finetuning phase...
kich thuoc cua munits: 66
kich thuoc cua dlen: 150
kich thuoc cua mpd: 4.400000e-001
kich thuoc cua traninlen: 18
Training: 0/ 0 s
Training: 0/ 0 s
Training: 0/ 0 s
Training: 0/ 0 s
Training: 0/ 0 s
Training: 0/ 0 s
Training: 0/ 0 s
Training: 0/ 0 s
Training: 0/ 0 s
Training: 0/ 0 s
Training: 0/ 0 s
Training: 0/ 0 s
Training: 0/ 0 s
Training: 0/ 0 s
Training: 0/ 0 s
Training: 0/ 0 s
Training: 0/ 0 s
Training: 0/ 0 s
Final quantization error: 1.071
Final topographic error: 0.033
pause % An phim bat ky de tiep tuc...
-66-
% BUOC 4: TRUC QUAN HOA SELF-ORGANIZING MAP: SOM_SHOW
% =====================================================
colormap(1-gray)
som_show(sMap,'norm','d')
pause % An phim bat ky de tiep tuc...
-67-
% BUOC 4: TRUC QUAN HOA SELF-ORGANIZING MAP: SOM_SHOW
% =====================================================
h=zeros(sMap.topol.msize); h(1,2) = 1;
som_show_add('hit',h(:),'markercolor','r','markersize',0.5,'subplot','all')
pause % An phim bat ky de tiep tuc...
-68-
% BUOC 4: TRUC QUAN HOA SELF-ORGANIZING MAP: SOM_SHOW
% =====================================================
som_show(sMap,'umat','all','empty','Labels')
pause % An phim bat ky de tiep tuc...
-69-
Kết quả trên cho thấy thông tin khách hàng sử dụng công cụ SOM ToolBox có 03
cụm:
Cụm 1: có khách hàng BR
Cụm 2: gồm các khách hàng A, D, FA, CE, B, CA, BD, CH, BA, CD, BN, BC, CK,
CS, BJ.
Cụm 3: gồm các khách hàng AL, AW, AX, CB, AP, AV, DO, AQ, CZ, CP, BF,
BY, T, AJ, EQ, X, AH, CM, BE, H, P, CN, CL, BQ, J, S, BW, BM, CX, CU.
% BUOC 4: TRUC QUAN HOA SELF-ORGANIZING MAP: SOM_SHOW
% =====================================================
som_show_add('label',sMap,'Textsize',8,'TextColor','r','Subplot',2)
pause % An phim bat ky de tiep tuc...
-70-
% STEP5: CLUSTERING OF THE MAP
% =====================
sM = som_autolabel(sM,sD,'vote');
kich thuoc cua bmu: 150
kich thuoc cua Labels: 66
subplot(1,3,1)
[c,p,err,ind] = kmeans_clusters(sM, 7); %Chia SOM thành 07 cum
n_max: 7
c_max: 5
plot(1:length(ind),ind,'x-')
[dummy,i] = min(ind)
dummy = 0.7652
i = 5 %So cum co duoc tu thuat toán
subplot(1,3,2)
[Pd,V,me,l] = pcaproj(sD,2); Pm = pcaproj(sM,V,me);
Code = som_colorcode(Pm);
hits = som_hits(sM,sD);
U = som_umat(sM);
Dm = U(1:2:size(U,1),1:2:size(U,2));
Dm = 1-Dm(:)/max(Dm(:)); Dm(find(hits==0)) = 0;
som_cplane(sM,Code,Dm);
subplot(1,3,3)
som_cplane(sM,cl)
pause % Strike any key to continue...
-71-
3.4.3 So sánh với các công cụ khác
Cho đến nay phần lớn các ứng dụng của SOM được xây dựng bằng các phần mềm
bởi các nhà nghiên cứu. Công cụ SOM ToolBox và SOM_PAK là các công cụ có
sẵn và không cần bản quyền. Trong phạm vi của luận văn đã sử dụng công cụ SOM
ToolBox để áp dụng cho bài toán phân loại khách hàng tín dụng của Ngân hàng.
Công cụ SOM_PAK, một công cụ của có giá trị của trường Đại học Kỹ thuật
Helsinki. SOM_PAK đặc biệt phù hợp với các nghiên cứu khoa học chạy trên máy
UNIX, không dùng cho các hệ điều hành của Microsoft (MS DOS, WINDOWS).
Ngoài ra, còn có các công cụ phần mềm thương mại cho SOM có trên thị trường
[8]. Về cơ bản các phần mềm này cũng được xây dựng là như nhau. Tuy nhiên các
phần mềm thương mại được thiết kê phù hợp với các hệ điều hành chuẩn và có
thêm bước xử lý trước và xử lý sau dữ liệu. Sau đây là một danh sách các phần
mềm thương mại hiện có:
1. SAS Neural Network Application
2. Professional II+ from NeuralWorks
3. MATLAB Neural Network Toolbox
4. NeuroShell2/NeuroWindows
5. NeuroSolutions v3.0
6. NeuroLab, A Neural Network Library
7. havFmNet++
8. Neural Connection
9. Trajan 2.1 Neural Network Simulator
10. Viscovery®
Một công cụ mới nhất hiện nay là Viscovery®, một sản phẩm của Eudaptics
Software GmbH, là công cụ có giao diện thân thiện, linh hoạt và là công cụ mạnh
cho việc tạo SOM. Viscovery® cung cấp một số đặc điểm quan trọng cần thiết
-72-
trong các ứng dụng tài chính, kinh tế và marketing mà ở các công cụ không có bản
quyền không có được.
Dưới đây là một số so sánh giữa các công cụ SOM với nhau [8]
Các chỉ tiêu Viscovery® SOM_PAK SOM Toolbox NeNet
Hệ điều hành Windows 95
Windows NT
4.0
UNIX
Ms DOS
MatLab
Version 5.0 trở
lên
Windows
Tiền xử lý Có 4 chọn lựa không có Có Có
Đặc điểm SOM
• Thuật toán Thuật toán
chuẩn
Thuật toán
chuẩn
Thuật toán chuẩn Thuật toán
chuẩn
• Kích thước ma
trận
Không giới
hạn.
Không giới
hạn.
Không giới hạn.
Không giới
hạn.
• Khởi tạo ma
trận
Lục giác.
Chữ nhật, lục
giác.
Chữ nhật, lục
giác.
Chữ nhật, lục
giác.
• Huấn luyện Mặt phẳng
chính
Tuyến tính,
ngẫu nhiên
Tuyến tính, ngẫu
nhiên
Tuyến tính,
ngẫu nhiên
• Gán nhãn Định nghĩa
trước
Bất kỳ giai
đoạn nào
Bất kỳ giai đoạn
nào
Bất kỳ giai
đoạn nào
• Xử lý thành
phần thiếu
Tự động,
bằng tay, kéo
thả
Tự động, bằng
tay
Tự động, bằng
tay
Tự động, bằng
tay
• Tốc độ Có thể xử lý,
Nhanh
Có thể xử lý,
Nhanh
Có thể xử lý,
Vừa phải
Có thể xử lý,
Nhanh
• Giới hạn đầu Không Không Không Tối đa
[100x100]
-73-
vào
• Trực quan hoá
U-matrix,
component
planes,
trajectories,
Iso-contours
U-matrix,
component
planes,
trajectories
U-matrix,
component
planes,
trajectories,
hit historgrams
U-matrix,
component
planes,
trajectories,
hit
historgrams
Xử lý sau Có Có Không Không
Giao diện Thân thiện.
Giao diện
OLE: MS
Excel, Text
file,
SQL & DB2
Câu lệnh C.
Giao diện OLE:
Text file
GUI (Matlab)
Giao diện OLE:
Text file
GUI
(Windows 95)
Giao diện
OLE: Text
file
3.5 Kết luận chương 3
Áp dụng phương pháp SOM vào bài toán cụ thể trong Ngân hàng, bài toán phân
tích thông tin khách hàng là các Doanh nghiệp có nhu cầu vay vốn. Nội dung chính
trong chương này là:
- Tìm hiểu về quy trình tác nghiệp tại phòng Tín dụng của Ngân hàng đã
giải quyết bài toán.
- Tìm hiểu bộ công cụ SOM ToolBox, từ đó xây dựng chương trình giải
quyết bài toán.
- Một số kết quả thu được khi chạy chương trình.
- Đánh giá, so sánh bộ công cụ SOM Toolbox với các công cụ khác trên thị
trường.
-74-
KẾT LUẬN
Mạng nơron là một phương pháp rất thích hợp trong khai phá dữ liệu với mô hình
học máy, đặc biệt là học không giám sát. Với trên 5000 ứng dụng trên nhiều lĩnh
vực, thuật toán học mạng nơron theo SOM rất hữu dụng trong các bài toán tài chính
kinh tế. Nhiều công trình nghiên cứu đã khẳng định thuật toán SOM là phù hợp với
các ứng dụng có khối lượng dữ liệu lớn như dữ liệu trong Ngân hàng.
1. Luận văn đã thực hiện được kết quả sau:
- Trình bày một cách tổng quát về mô hình mạng nơron và ứng dụng mạng
nơron trong khai phá dữ liệu. Trình bày một cách hệ thống các giải pháp học
mạng nơron không giám sát và có giám sát.
- Nghiên cứu, phân tích việc sử dụng thuật toán SOM giải quyết bài toán phân
cụm theo mô hình mạng nơron.
- Nghiên cứu cấu trúc hoạt động của bộ công cụ SOM Toolbox và phương
pháp sử dụng công cụ để giải quyết bài toán phân cụm dữ liệu.
- Xây dựng bài toán phân tích thông tin khách hàng tại Ngân hàng và sử dụng
công cụ SOM Toolbox để giải quyết bài toán được đề xuất. Các kết quả thử
nghiệm là phù hợp với các phân tích của các nhà chuyên môn trong lĩnh vực
Ngân hàng.
2. Trong quá trình nghiên cứu để hoàn thành luận văn, thông qua việc tổng hợp và
phân tích một hoạt động cốt yếu của Ngân hàng là phân tích thông tin khách hàng
vay vốn, tôi nhận thấy việc phát triển nội dung luận văn là rất cần thiết để sử dụng
mạng nơron trong khai phá dữ liệu Ngân hàng. Để mở rộng kết quả nội dung của
luận văn này, hướng nghiên cứu và phát triển tiếp theo là tìm hiểu các phương pháp
sinh luật từ mạng nơron (phần này đã được đề cập trong chương 1) và ứng dụng hỗ
trợ quyết định trong đầu tư tài chính.
-75-
TÀI LIỆU THAM KHẢO
TÀI LIỆU TIẾNG VIỆT
[1]. Nguyễn Đình Thúc (2000), Trí tuệ nhân tạo Mạng nơron phương pháp & ứng
dụng, Nhà xuất bản Giáo Dục.
[2]. Trần Đức Minh (2002), Mạng nơron truyền thẳng và thuật toán lan truyền
ngược, Luận văn Thạc sĩ cao học, Khoa Công nghệ, Trường Đại học Quốc gia
Hà Nội.
TÀI LIỆU TIẾNG ANH
[3]. Bart De Ketelaere, Demitrios Moshou, Peter Coucke, Josse De Baerdemaeker
(1997), A herachical Self-Organizing Map for classification problems.
[4]. Boris Kovalerchuk & Evgenii Vityaev (2001), Data mining in finance advances
in Relational and Hybrid Methods, Kluwer Academic Publishers.
[5] David Sommer & Martin Golz (2001), Clustering of EEG-Segments Using
Heirarchical Agglomerative Methods and Self-Organizing Maps, University of
Applied Sciences Germany, Department of Computer Science.
[6].Ed Guido Deboeck & Teuvo Khohonen (1998), Visual Intelligence in Finance
using Self-organizing Maps, Chapter 7: Self-organizing Maps for Initial Data
Analysis: let Financial Data Speak for Themselves, Speinger Verlag.
[7]. Guido Deboeck, Ph.D (1999), Self-Organizing Maps facilitate knowleadge
discovery in finance.
[8]. Guido Deboeck, Ph.D (2000), Public domain versus commercial tools for
creating Self-Organizing Maps.
[9]. J. Han and M. Kamber (2001), Data Mining - Concepts and Techniques,
Chapter 8: Cluster Analysis. Morgan Kaufmann.
[10]. Juha Vesanto (1997), Data Mining techniques based on the Self-Organizing
Map, Thesis for the degree of Master in Engineering, Helsinki University of
Technology.
-76-
[11]. Juha Vesanto (2000), Using SOM in Data Mining, Licentiate’s thesis, Helsinki
University of Technology.
[12]. Mark W.Craven & Jude W.Shavlik (2000), Using Neural Networks for Data
Mining, Submitted to the Future Generation Computer Systems specical issues
on Data Mining.
[13] Merja Oja, Samuel Kaski, and Teuvo Kohonen (2003), Bibliography of Self-
Organizing Map (SOM) Papers: 1998-2001 Addendum, Neural Computing
Surveys, 3: 1-156.
[14]. Mark W.Craven (1996), Extracting comprehensible models from trained
neural networks, Chapter 7: The Boosting – Based Perceptron learning
algorithm, Doctor of philosophy (Computer Sciences).
[15].Tom Gemano (1999), Self Organizing Maps.
[16]. Usama M.Fayyad, Gregory Piatetsky-Shapiro, Padhraic Smyth & Ramasamy
Uthrusamy (1996), Advanes in Knowledge Discovery and Data mining,AAAI
Press/The MIT Press.
Các file đính kèm theo tài liệu này:
- MSc04_Do_Cam_Van_Thesis.pdf