1.4.4.1. Sinh luật mờ dựa trên dữ liệu cho bài toán hồi quy
Để tránh phải đối mặt với sự bùng nổ theo cấp số nhân của không gian luật phải xem xét như phương pháp sinh luật bằng tổ hợp. Nguyễn Cát Hồ và cộng sự đã phát triển thuật toán sinh luật từ mẫu dữ liệu và hệ khoảng tương tự được xây dựng bằng ĐSGT [59]. Ý tưởng của phương pháp này được mô tả khái quát như sau:
Xét một mẫu dữ liệu dp = (ap,1, ap,2, …,ap,n, ap,n+1) của tập dữ liệu D, với mỗi biến
thành một phân hoạch, ở đây tồn tại duy nhất từ xj,i S(kj) để apj ℭ( , ), với j = 1, n + 1. Khi đó luật ngôn ngữ được sinh ra tương ứng với mẫu dữ liệu dp có dạng sau:
rp: IfA1 is xp,1 Từ các luật dạng (1.24) tối ưu.
& … &An is xp,n
ta sinh ra các luật ThenAn + 1 is xp,n + 1 (1.24)
có độ dài nhỏ hơn n để xây dựng cơ sở luật
: IfA1 is xq,1 & … &An is xq,n ThenAn + 1 is xq,n + 1 (1.25) trong đó xq,j {Don’tcare}, j = 1,..,n
( )
Như vậy với một mẫu dữ liệu dp, một bộ tham số tính mờ của các đại số gia tử của các biến đầu
vào kí hiệu là = (1,…, n+1),j ={ Lj, −} với ĐSGT tuyến tính chỉ có 2 gia tử, j = 1,..,n+1, bộ tham số giới hạn độ dài tối đa của các từ sử dụng cho mỗi biến k = (k1, …, kn+1) và giới hạn độ dài tối đa của luậtmax
ta có thể xây dựng một hàm để sinh ra một luật ngôn ngữ dạng (1.25) cho bài toán hồi quy như sau:
Procedure PrGenRule(dp, { ( ), ( ( )): j ≤ n + 1}, max)
Input:
− Một mẫu dữ liệu dp = (ap,1, ap,2, …, ap,n, ap,(n+1)); − Tập chỉ số của các từ của biến: ( ( )), j = 1, …, n+1;
− Các tập khoảng tương tự { ( ): j ≤ n + 1} = { ( )( ): x ∈ ( )};
− Số nguyên xác định độ dài lớn nhất cùa luật ngôn ngữ:max;
Output: Một luật ngôn ngữ có độ dài không vượt quá max.
Begin
1. Đối với mẫu dữ liệu đầu vào dp = (ap,1, ap,2, …, ap,n, ap,(n+1)) D, đặt r(dp) là luật có dạng (1.24) và được mã hóa bằng một véc-tơ số nguyên (c1, c2, …, cn, cn+1); 2. Sinh ngẫu nhiên một số nguyên t, 0 < t ≤ max. Sau đó, sinh ngẫu nhiên t số
nguyên j1, …, jt với ràng buộc 0 < j1 < … < jt ≤ n;
/* chỉ các thành phần , của dd, l = 1, …, t được sử dụng để sinh các tiền đề của rq(dp) có dạng (1.24), trong đó xq,j = “don’t care” với mọi j { j1, …, jt } */
3. Với l = 1, …, t, nếu điều kiện đối với một số , ∈ ( ), , ( , ) ( )= {( )( ): x
của r(dp) là 0 (chỉ số của từ “don’t care”). Luật thu được có độ dài t có dạng (1.25) được ký hiệu là1… : đặt của r(dp) là chỉ số của từ , ∈ ( ), 1… = 1is ex( , 1) and . . . and is ex( , ) n+1 is ex( ,( +1)) 4. return 1… . End.
Thủ tục PrGenRule(dp, {( ), (( )): j ≤ n + 1},max) sẽ được dùng để sinh các luật ngôn ngữ trong quá trình xây dựng hệ luật giải bài toán hồi quy của các thuật toán trong Mục 2.1.2 và Chương 3.
1.4.4.2. Sinh luật mờ dựa trên dữ liệu cho bài toán phân lớp
Mỗi ĐSGTAj
được liên kết với một thuộc tính thứ j của tập dữ liệu cảm sinh các từ ngôn ngữ có độ dài lớn nhất kj theo thứ tự ngữ nghĩa của chúng. Vì ngữ nghĩa định lượng khoảng f(xj,i) = (h0xj,i) (xj,i) biểu thị lõi ngữ nghĩa của từ ngôn ngữ xj,i nên được dùng để biểu diễn đỉnh của tập mờ dạng hình thang hoặc hàm S ứng với từ xj,i. Các giá trị trong khoảng đỉnh của tập mờ phù hợp với ngữ nghĩa định tính của từ nhất nên có giá trị là 1.
Với giá trị cụ thể của các tham số ngữ nghĩa bao gồm fm( c−j ), fm(Wj), fm(0j),
fm(1j), (hj,i), (hj,0) là độ đo tính mờ tương ứng của c−j , Wj, 0j, 1j, hj,i, hj,0 và với giá trị cụ thể của kj, các khoảng tính mờk(xj,i), xj,i Xj,k, k ≤ kj và các ngữ nghĩa định lượng khoảng f(xj,i) được tính toán. Các khoảng tính mờkj(xj,i) tạo thành phân hoạch mức kj
trên miền giá trị của thuộc tính j. Có duy nhất một khoảng tính mờ trong số các khoảng tính mờkj(xj,i) chứa điểm dữ liệu dp,j của mẫu dữ liệu dp. Tất cả các khoảng tính mờ mức kj chứa dp,j (0 ≤ j ≤ n) tạo thành một siêu hộpH p và chỉ sinh các luật mờ từ các siêu hộp loại này. Luật mờ cơ sở có độ dài n được sinh từ H p với nhãn lớp Cp của mẫu dữ liệu dp có dạng sau:
If A1 is xp,1 & … & An is xp,n ThenCp (Rb)
Các luật mờ thứ cấp có độ dài L ≤ n thu được bằng cách bỏ bớt n - L thuộc tính
có dạng sau:
ifA j1 is xp,j1 & … &A jt is xp,jtThenCq (Rsnd) trong đó 1 ≤ j1 ≤ … ≤ jt ≤ n. Nhãn lớp Cq của luật Rq được xác định bởi độ tin cậy c (
Cq =argmax{c (AqCh )| h = 1, , M } Độ tin cậy của luật mờ được tính như sau:
m
c (Aq Ch ) = Aq (dp )/ Aq (dp )
p=1
(1.26)
(1.27)
trong đóAq (dp ) là độ đốt cháy của mẫu dữ liệu dp đối với tiền đề luật của Rq và thường được tính bằng biểu thức toán tử nhân theo công thức sau:
n
Aq (dp ) =q , j(d p,j ). (1.28)
j =1
với q , j( dp ,j ) là độ thuộc của điểm dữ liệu dp,j vào tập mờ Aq,j.
Tập luật ứng viên thu được sau khi sàng lọc các luật không nhất quán bằng độ hỗ trợ. Tiếp theo, một tiêu chuẩn sàng được sử dụng để chọn ra tập luật khởi đầu S0
gồm NR0 = NB0 × M luật với M là số nhãn lớp và NB0 là số luật dành cho mỗi lớp. Tiêu chuẩn sàng được chọn có thể là độ tin cậy c (công thức (1.27)), độ hỗ trợ s
(công thức (1.23)) hoặc tích c × s. Độ hỗ trợ được tính theo công thức sau [42]:
s (AqCh ) =Aq (dp )/ m . (1.29)
dp Ch
Mỗi luật được gán một trọng số để nâng cao độ chính xác phân lớp. Trong bài luận án này, trọng số luật được tính theo công thức [40]:
CFq =c (Aq Cq )−cq,2nd , (1.30) trong đó cq,2nd là độ tin cậy lớn nhất của các luật có cùng tiền đề Aq nhưng khác kết luận Cq:
cq,2nd = max c (Aq Class h ) | h = 1,.., M ; h Cq (1.31)
Quá trình sinh luật trên là thủ tục sinh tập luật khởi đầu IFRG(Л, P, NR0, L) [59] và được trình bày dưới dạng mã giả như bên dưới, trong đó Л là tập giá trị của các tham số ngữ nghĩa và L là số tiền đề tối đa của mỗi luật. Độ phức tạp của thủ tục sinh tập luật khởi đầu IFRG là đa thức đối với số mẫu và số thuộc tính của tập dữ liệu P và đã được chứng minh trong [59].
Procedure IFRG (Л, P, NR0, L) //Thuật toán sinh tập luật khởi đầu.
Input: -Tập mẫu dữ liệu P = {(dl, Cl) | l = 1, …, mt}, M lớp kết luận, n thuộc tính
- Các tham số ngữ nghĩa Л, NR0 số luật khởi đầu, L độ dài tối đa của luật.
Output: Tập luật khởi đầu S0 = {R1, …, RNR0}
Begin
//Bước 1: Xây dựng cấu trúc đa thể hình thang của ( )
1. Với mỗi thuộc tính AjP, j = 1, …, n, sinh tập từ được khai báo( ) với mức đặc tả tối đa kj. Với mỗi xj,i( +1), xây dựng khoảng tính mờ
j(xj,i),
tính ánh xạ định lượng khoảng fen(xj,i). Với mỗi xj,i( ), xây dựng tập mờ hình thang cho xj,i. //Bước 2: Xây dựng tập luật cơ sở từ P
2. Đặt mỗi luật cơ sở r(pl) độ dài n có dạng (Rb) và được mã hóa bằng một véc- tơ số nguyên (c0, c1, c2, …, cn, cn) với c0 là chỉ số của từ “Don’t care”. Với mỗi mẫu dữ liệu pl = (dl, Cl) P, sinh một luật r(pl), trong đó tiền đề luật aj,i = “Aj is xj,i” được mã hóa bởi cj được xây dựng bằng cách tìm từ ngôn ngữ
, ∈ ( ) mà , ∈ ℑ , ( , ), khi đó, đặt cj là chỉ số ex(xj,i).
//Bước 3: Xây dựng các luật có độ dài ngắn hơn n từ các luật cơ sở
3. Xây dựng các luật có độ dài L ≤ n bằng cách, sinh tất cả k-tổ hợp của n phần tử T. Với t T, sinh một luật một thứ cấp r( ) độ dài t có dạng (Rsnd), và
tính độ tin cậy, độ hỗ trợ, xác định lại nhãn lớp, tính trọng số của
r( ). //Bước 4: Sàng luật theo tiêu chuẩn sàng 4. Đặt S0 = Ø; //Khởi tạo tập luật khởi tạo là rỗng
Sắp xếp các luật r( ) giảm dần theo tiêu chuẩn sàng. Thêm NR0/M luật đầu tiên trong tập r( ) vào S0.
5. Return S0;
End.
Thủ tục IFRG (Л, P, NR0, L) sẽ được dùng để sinh các luật ngôn ngữ trong quá trình xây dựng hệ luật của các thuật toán giải bài toán phân lớp trong chương 2.