cách tiếp cận của ĐSGT
Giải thuật di truyền ở đây nhằm xây dựng cho mỗi thuộc tính của CSDL đầu vào một tập các MF nhằm phân chia tối ƣu miền xác định thuộc tính, tức là xây dựng một CSDL mờ tối ƣu từ CSDL số ban đầu. Trƣớc hết, với mỗi thuộc tính định tính của CSDL đầu vào, xác định một ĐSGT (bằng cách xác định các tham số cần có của ĐSGT). Với các tham số ĐSGT có đƣợc, tính các giá trị ĐLNN của các hạng từ của ĐSGT có độ dài không lớn hơn 3 (là độ dài thông thƣờng ta sử dụng) và từ đó xây dựng các MF theo cách đã mô tả ở mục trên. Tiếp theo, kiểm tra tính tối ƣu của hệ các tập MF đƣợc xây dựng thông qua hàm tƣơng thích (Fitness Functions), cụ thể ở đây là kiểm tra tổng độ hỗ trợ của các tập phổ biến 1 phần tử (1-item frequency sets), nếu tốt thì giữ lại quần thể. Tạo quần thể mới bằng các phép toán di truyền: lai ghép và đột biến. Lặp lại thuật toán cho đến khi các điều kiện dừng thỏa mãn.
Bài toán phân chia miền xác định thuộc tính với các mẫu dữ liệu đƣợc thu thập bao gồm các bản ghi và thuộc tính là những cơ sở dữ liệu số nhƣ sau:
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/
Bài toán đƣợc chạy thử nghiệm trên tập CSDL gồm sáu mƣơi năm nghìn bản ghi. Dƣới đây trình bày 10 bản ghi đầu tiên trong tập CSDL. Bao gồm các thuộc tính: Tuổi, Số giờ làm việc trong tuần. Mức thu nhập của gia đình, mức thu nhập cá nhân và mức thuế.
Bảng 3.1. Cơ sở dữ liệu
AGE HOURE INCFAM INCHED MARCHWGP
40 40 41344 49158 58387 35 0 31700 36960 58387 62 0 27648 27648 53353 59 40 24691 24691 51338 56 40 31025 50050 55785 71 0 7549 14869 54960 40 46 14052 38044 110540 69 0 15874 15874 102395 34 48 27507 27507 117408 38 40 23025 36410 112468
Trong bài toán thực nghiệm này, từ cơ sở dữ liệu số tiến hành phân chia trên năm thuộc tính (phân chia miền xác định của các thuộc tính thành các miền mờ) mục đích đƣa ra hàm thuộc tối ƣu. Xây dựng đƣợc hàm thuộc tối ƣu. Mỗi thuộc tính sẽ tìm ra đƣợc những cá thể có độ thuộc tối ƣu. Sử dụng phƣơng pháp ĐSGT xây dựng các hàm thuộc một cách tối ƣu nhƣ sau:
1. Mỗi thuộc tính xác định một ĐSGT
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/
3.Xây dựng các tam giác là các MF dựa trên các giá trị ĐLNN nhƣ sau: đỉnh các tam giác có giá trị 1 ở trục tung và chân đƣờng cao hạ từ đỉnh là một giá trị ĐLNN, các chân tam giác là các giá trị ĐLNN ở hai phía liền kề.
Bài toán đƣợc đƣợc áp dụng bởi thuật giải khai phá gen mờ đa mục tiêu. Thực hiện công việc lựa chọn cá thể, chọn lọc giá trị thích nghi, lai tạo và đột biến. Cụ thể đƣợc thể hiện qua các bƣớc của thuật toán
Bƣớc 1: Cá thể P thì đƣợc tạo ra ngẫu nhiên từ tổng thể ban đầu. Tập hợp không thống trị NDS thì đƣợc thiết lập ban đầu là rỗng. Trong bài toán này, P đƣợc thiết lập đến 10. Mỗi cá thể là một hàm liên thuộc cho các phần tử. Bƣớc 2: Các giá trị phù hơp và tổng số lƣợng của 1 tập hợp phần tử trong tập hợp đã xác định của giá trị hỗ trợ tối thiểu của mỗi NST đƣợc tính
Bƣớc 3: Các bƣớc xếp hạng đƣợc thực thi để xếp hạng 10 NST dựa trên 2 tiêu chí, suitability(Cq) and totalNumL1, nhƣ sau:
Bƣớc 4: Các giá trị tƣơng ứng của mỗi NST đƣợc tính dựa trên giá trị thứ hạng
Bƣớc 5: giá trị tƣơng ứng trung bình của NST với thứ hạng tƣơng đƣơng đƣợc tính toán.
Bƣớc 6: Các NST với giá trị thứ hạng bằng 1 thì đƣợc sao chép vào các tập hợp không thống trị NDS. Đó là, NDS = {C2, C3, C5, C7, C10 }.
Bƣớc 7 đến 10: Các hoạt động xuyên chéo và đột biến đƣợc thực thi trong tổng thể. ở đây hoạt động xuyên chéo MMa và hoạt động đột biến one- point đƣợc sử dụng để tạo ra thế hệ mới. Giá trị tƣơng ứng của NST mới đƣợc tính bằng bƣớc 3 đến 7. Các hoạt động đƣợc chọn thì dùng trong tập hợp không thống trị NDS để chọn ra các cá thể thích hợp cho thế hệ tiếp theo.
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/
Bƣớc 10 đến 14: Nếu các tiêu chí chấm dứt không phù hợp, trở về bƣớc 6, còn ngƣợc lại, NST trong tập hợp không thống trị là output nhƣ là tập hợp các hàm liên thuộc cho việc suy ra các luật liên kết mờ cho mỗi tập hợp hàm liên thuộc.
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/
Hình 3.2. Tập hàm thuộc cho thuốc tính Hours
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/
Hình 3.4. Tập hàm thuộc cho thuốc tính IncHead
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/
KẾT LUẬN
Luận văn đạt đƣợc một số kết quả chính nhƣ sau:
1) Giải quyết bài toán phân chia miền xác định thuộc tính theo cách tiếp cận ĐSGT. Chia miền xác định thuộc tính thành các miền mờ có nhiều ƣu điểm hơn nhƣ tính đơn giản, gắn chặt ngữ nghĩa so với cách tiếp cận theo lý thuyết tập mờ cổ điển của L.Zadeh.
2) Tối ƣu hàm thuộc dựa trên phƣơng pháp phân chia hàm thuộc có dạng thống nhất và phƣơng pháp phân chia ràng buộc động từ tập cơ sở dữ liệu số chuẩn. Hệ tối ƣu đa mục tiêu
3) Xây dựng CSDL mờ theo chu trình lặp để có hệ luật mờ tối ƣu. Từ CSDL số, xây dựng CSDL mờ, Xây dựng hệ luật mờ rồi lại quay lại bƣớc xây dựng CSDL mới, xây dựng luật mờ tối ƣu. Quá trình đƣợc lặp đi lặp lại dựa trên thuật toán di truyền
4) Cài đặt chƣơng trình trên CSDL số mẫu đƣa ra đƣợc tập hàm thuộc cho các thuộc tính tối ƣu tham số mờ.
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/
TÀI LIỆU THAM KHẢO Tiếng Việt
[1]. Nguyễn Cát Hồ, Nguyễn Văn Long, "Đại số gia tử tuyến tính", Tạp chí
Tin học và Điều khiển học, T.19(3)(2003), 274-280.
[2]. Nguyễn Cát Hồ, Trần Thái Sơn, Dƣơng Thăng Long, “Tiếp cận đại số gia tử cho phân lớp mờ”, Tạp chí Tin học và Điều khiển học, Tập 25(1), 2009, 53-68
[3]. Nguyễn Cát Hồ, Trần Thái Sơn, Dƣơng Thăng Long, Trần Duy Hùng, “Phƣơng pháp tối ƣu Pareto hệ luật mờ dựa trên đại số gia tử sử dụng giải thuật di truyền và ứng dụng vào bài toán phân lớp”, Tạp chí Tin học và Điều khiển học, Tập 26(2), (2010), 103-117.
[4]. Dƣơng Thăng Long (2010), Phương pháp xây dựng hệ mờ dạng luật với ngữ nghĩa dựa trên đại số gia tử và ứng dụng trong bài toán phân lớp, Luận án Tiến sĩ Toán học, Viện công nghệ thông tin.
[5]. Trần Thái Sơn, Đỗ Nam Tiến, Phạm Đình Phong, “Luật kết hợp theo cách tiếp cận Đại số gia tử”, Tạp chí Tin học và Điều khiển học, 27(4), 2011. [6]. Trần Thái Sơn, “Lập luận xấp xỉ với giá trị biến ngôn ngữ”, Tạp chí Tin
học Điều và điều khiển, 15(2). 1999-6-10
Tiếng Anh
[7]. C. Chen, T. Hong, Vincent S. T. and L. Chen, Multi-objective genetic- fuzzy data mining. International Journal of Innovative Computing, Information and Control. Volume 8, Number 10(A), October 2012 [8]. Nguyen Cat Ho, Tran Thai Son, Tran Dinh Khang, Le Xuan Viet,
Fuzziness Measure, Quantified Semantic Mapping And Interpolative Method of Approximate Reasoning in Medical Expert Systems, J.of Computer Science and Cybernetic, T.18(3)(2002), 237-252.
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/
[9]. L.A.Zadeh, The concept of linguistic variable and its application to approximate reasoning. Inform. Sci. (I) 8 (1975) 199-249; (II) 8 (1975)
310 -357; (III) 9 (1975) 43-80
[10]. Kevin L. and Olivier S. (2006), “Fuzzy Histograms and Density Estimation” advances in Soft Computing, Springer Berlin, ISSN 1615- 3871, pp.45-52.
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/
PHỤ LỤC: CHƢƠNG TRÌNH TỐI ƢU HÓA THAM SỐ TẬP MỜ clear all global alpha_Array global w_Array global minsupp minsupp=0.2; start_time = cputime; loop_time = start_time; generation=200; popsize=100; nst=10;
bit=10; % kich thuoc cua mot nhiem sac the
vlb=0.2; % GTNN cua nst vub=1-vlb; % GTLN cua nst
Pc=0.8; % xac suat lai
Pm=0.002; % xac suat dot bien
% Read data from file
dataBase = dlmread('data\data_Full.txt',',');
min = [0,0,-20000,-40000,0];
max = [100,100,350000,1300000,1300000];
dataBase = ConvertTo01(dataBase, min, max);
%--- % Tinh xem chay dc bao nhieu vong lap
repeat_num = 0; % Tong so vong lap
repeat_num_sum = generation*popsize+popsize;
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/
%% Khoi tao quan the for i=1:popsize for j=1:nst
CaThe(i).gen(j).gen=round(rand(1,bit)); end
end
%% Giai thuat di truyen for i=1:generation %% Chon loc
% Gia tri thich nghi (dtn) for j=1:popsize
loop_time = cputime;
repeat_num = repeat_num+1;
fprintf(' So lan lap = %d \n', repeat_num); fprintf(' Tien trinh = %f %% \n',
(repeat_num/repeat_num_sum)*100); %--- for k=1:nst if(k<=nst/2) alpha_Array(k)=decode(CaThe(j).gen(k).gen,vlb,vub,bit); else w_Array(k-nst/2)=decode(CaThe(j).gen(k).gen,vlb,vub,bit); end end CaThe(j).dtn=func_fitness(alpha_Array, w_Array, dataBase,minsupp); %--- elapsed_time = (cputime-loop_time)/60;
fprintf('Thoi gian da qua = %.2f Minutes (%.2f Hours)\n', elapsed_time*repeat_num, elapsed_time*repeat_num/60);
fprintf('Thoi gian con lai = %.2f Minutes (%.2f Hours)\n', elapsed_time*(repeat_num_sum-repeat_num),elapsed_time*(repeat_num_sum- repeat_num)/60);
fprintf('\n'); end
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/
% Thuc hien chon loc for j=1:popsize for k=j+1:popsize if CaThe(j).dtn<CaThe(k).dtn max=CaThe(k); CaThe(k)=CaThe(j); CaThe(j)=max; end end end
% Lai tao va dot bien gen % Lai tao cac ca the moi
for j=round(popsize/3):popsize
% Chon ngau nhien 2 ca the trong mot nua so ca the % co tinh trang tot de lai tao
bo=round(rand*round(popsize/3)); if bo==0 bo=1; end me=round(rand*round(popsize/3)); if me==0 me=1; end for k=1:nst if rand<=Pc genbo=CaThe(bo).gen(k).gen; genme=CaThe(me).gen(k).gen; lai=round(rand*bit); gencon=[genbo(1:lai) genme(lai+1:end)]; CaThe(j).gen(k).gen=gencon; else CaThe(j).gen(k).gen=zeros(1,bit); end end end
% Dot bien gen
for j=round(popsize/2):popsize for k=1:nst
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/ gen=CaThe(j).gen(k).gen; for l=1:bit if rand<=Pm if gen(l)==1 gen(l)=0; else gen(l)=1; end end end CaThe(j).gen(k).gen=gen; end end end for k=1:nst if(k<=nst/2)
alpha_Array(k) = decode(CaThe(1).gen(k).gen, vlb, vub, bit); else
w_Array(k-nst/2)= decode(CaThe(1).gen(k).gen, vlb, vub, bit); end end disp('---'); fprintf('\nAlpha:'); alpha_Array fprintf('\nW:'); w_Array
fprintf('Max of function y = %d\n', CaThe(1).dtn);
fprintf('%Total runtime = %f Minutes\n', (cputime-start_time)/60);
dlmwrite('w.txt', w_Array,';');
dlmwrite('alpha.txt', alpha_Array,';');
w = dlmread('w.txt',';')
alpha = dlmread('alpha.txt',';') %---
fuzzyDataBase = CreatefuzzyDB(alpha, w, dataBase) %---
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/
for k=1:5
mf(:,:,k) = membershipFunction(alpha(k),w(k)); end
% Ve do thi 1
vedothi(mf(:,:,1),'Membership Function AGE','MF1','images\MF AGE.png'); vedothi(mf(:,:,2),'Membership Function HOURS','MF2','images\MF
HOURS.png');
vedothi(mf(:,:,3),'Membership Function INCHEAD','MF3','images\MF INCHEAD.png');
vedothi(mf(:,:,4),'Membership Function INCFAM','MF4','images\MF INCFAM.png');
vedothi(mf(:,:,5),'Membership Function MARCHWGT','MF5','images\MF MARCHWGT.png');