CHƢƠNG 2 THUẬT TOÁN SOM VỚI BÀI TOÁN PHÂN CỤM
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]++;}
}
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ốị 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).
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ốị 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
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_datắcustbank4.datỏ); data read ok
end
% BUOC 2: XU LY DU LIEU % ========================== sD = som_normalize(sD,'var'); x = sD.dată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
% BUOC 3: HUAN LUYEN DU LIEU % ====================
sM = som_make(sD); Determining map sizẹ.. 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 phasẹ..
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 phasẹ..
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...
% ===================================================== colormap(1-gray)
som_show(sMap,'norm','d')
% BUOC 4: TRUC QUAN HOA SELF-ORGANIZING MAP: SOM_SHOW % ===================================================== h=zeros(sMap.topol.msize); h(1,2) = 1;
som_show_ađ('hit',h(:),'markercolor','r','markersizộ,0.5,'subplot','all') pause % An phim bat ky de tiep tuc...
% BUOC 4: TRUC QUAN HOA SELF-ORGANIZING MAP: SOM_SHOW % ===================================================== som_show(sMap,'umat','all','emptý,'Labels')
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, CỤ
% BUOC 4: TRUC QUAN HOA SELF-ORGANIZING MAP: SOM_SHOW % =====================================================
som_show_ađ('label',sMap,'Textsizộ,8,'TextColor','r','Subplot',2) pause % An phim bat ky de tiep tuc...
Cụm 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 1 0.64 0.01 102 0.75 15 22 2.5 0.72 2 0.57 7.91 28 4.03 30.09 8.37 8.53 0.80 3 1.26 3.1 55.38 2.58 46.54 8 3.78 0.51
Cụm 1: Khỏch hàng thuộc cụm này cú rủi ro thu hồi tƣơng đối caọ Do khả năng thanh toỏn thấp hơn quy định, hàng tồn kho hầu nhƣ khụng quay vũng đƣợc, kỳ thu tiền bỡnh quõn lớn. Mặc dự theo đỏnh giỏ mức độ khả thi của dự ỏn vay vốn là khỏ caọ
Cụm 2: Nhúm khỏch hàng thuộc cụm này là tƣơng đối tốt, rủi ro thu hồi thấp. Khả năng thanh toỏn đảm bảo, vũng quay hàng tồn kho nhiều lần nờn kỳ thu tiền bỡnh quõn ngắn, thu nhập ổn định, tài sản nợ trờn tổng tài sản là chấp nhận đƣợc, ban giỏm đốc cú kinh nghiệm qua nhiều năm, tỷ lệ khả thi của dự ỏn caọ
% STEP5: CLUSTERING OF THE MAP % =====================
sM = som_autolabel(sM,sD,'votộ); 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)
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ứụ 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 Helsinkị 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ƣ nhaụ 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ệụ 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
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
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.
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ệụ 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ệụ
- 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.
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ộị
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 Sciencẹ
[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 financẹ
[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 Technologỵ
[11]. Juha Vesanto (2000), Using SOM in Data Mining, Licentiate‟s thesis, Helsinki University of Technologỵ
[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 Ađendum, 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.