Thuật toán khai phá luật kết hợp mờ
1. BEGIN 2. (DF, IF, TF) = FuzzyMaterialization(D, I, T); 3. F1 = Counting(DF, IF, TF, fminsupp); 4. k=2; 5. while (Fk-1 # Ø) { 6. Ck = Join(Fk-1); 7. Ck = Prune(Ck); 8. Fk = Checking(Ck, Df, fminsupp); 9. F = FFk; 10. k = k + 1; 11. } 12. GenerateRules(F, fminconf); END
Thuật toán khai phá luật kết hợp mờ ở khung trên sử dụng một số chương trình con sau đây:
Chương trình con (DF, IF, TF) = FuzzyMaterialization(D, I, T): hàm này thực hiện nhiệm vụ chuyển đổi từ CSDL D ban đầu sang CSDL DF với các thuộc tính được gắn thêm các tập mờ và giá trị các thuộc tính ở các bản ghi trong T được ánh xạ thành một giá trị thuộc khoảng [0,1] thông qua hàm thuộc của các tập mờ tương ứng với các thuộc tính.
Ví dụ: với CSDL trong bảng 4, sau khi thực hiện hàm này, chúng ta sẽ có: IF = {[Tuổi, Tuổi_trẻ] (1), [Tuổi, Tuổi_trung_niên] (2), [Tuổi, Tuổi_già] (3), [Cholesterol, Cholesterol_thấp] (4), [Cholesterol, Cholesterol_cao] (5), [Đường_trong_máu, Đường_trong_máu_0] (6), [Đường_trong_máu, Đường_trong_máu_1] (7), [Bệnh_tim, Bệnh_tim_không] (8), [Bệnh_tim, Bệnh_tim_có] (9)}
Như vậy IF bao gồm 9 thuộc tính đã được mờ hoá so với 4 thuộc tính ban đầu trong CSDL D. Mỗi thuộc tính mới là một cặp nằm trong ngoặc vuông bao gồm tên thuộc tính ban đầu và tên của tập mờ gắn với thuộc tính ấy. Ví dụ, thuộc tính Tuổi
ban đầu sau khi mờ hoá ta sẽ được ba thuộc tính mớ là [Tuổi, Tuổi_trẻ] (1), [Tuổi, Tuổi_trung_niêm] (2), [Tuổi, Tuổi_già] (3). Ngoài ra chương trình con FuzzyMaterialization sẽ ánh xạ giá trị các thuộc tính ban đầu sang các giá trị thuộc khoảng [0, 1] nhờ hàm thuộc của các tập mờ. Ví dụ, bảng sau đây được tính toán dựa trên CSDL D ở bảng 4: T 1 2 3 C 4 5 D 6 7 B 8 9 60 0.00 0.41 0.92 206 0.60 0.40 0 1 0 2 0 1 54 0.20 0.75 0.83 239 0.56 0.44 0 1 0 2 0 1 54 0.20 0.75 0.83 286 0.52 0.48 0 1 0 2 0 1 52 0.29 0.82 0.78 255 0.54 0.46 0 1 0 2 0 1 68 0.00 0.32 1.00 274 0.53 0.47 1 0 1 2 0 1 54 0.20 0.75 0.83 288 0.51 0.49 1 0 1 1 1 0 46 0.44 0.97 0.67 204 0.62 0.38 0 1 0 1 1 0 37 0.59 0.93 0.31 250 0.54 0.46 0 1 0 1 1 0 71 0.00 0.28 1.00 32 0.43 0.57 0 1 0 1 1 0 74 0.00 0.25 1.00 269 0.53 0.47 0 1 0 1 1 0
70 0.00 0.28 1.00 322 0.43 0.57 0 1 0 2 0 1 67 0.00 0.32 100 544 0.00 1.00 0 1 0 1 1 0
Bảng 6: TF -giá trị các thuộc tính tại các bản ghi đã đƣợc mờ hoá
Các chữ cái trong dòng đầu tiên của bảng trên có nghĩa như sau: T (tuổi), C (Cholesterol), Đ (Đường trong máu), B (Bệnh tim).
Do hàm thuộc của mỗi tập mờ f có một ngưỡng wf nên chỉ chỉ những giá trị nào vượt ngưỡng wf mới được tính đến, ngược lại những giá trị không vượt ngưỡng được xem bằng 0 (theo công thức 3.4). Ngưỡng wf phụ thuộc vào mỗi hàm thuộc và từng thuộc tính. Những ô được tô màu trong bảng 6 cho biết giá trị của những ô đó vượt ngưỡng (các thuộc tính trong bảng 6 đều lấy wf bằng 0.5). Những ô không được tô màu được xem có giá trị bằng 0.
Chương trình con F1 = Counting(DF, IF, TF, fminsupp): hàm này sinh ra F1 là tập tất cả các tập phổ biến có lực lượng bằng 1. Các tập thuộc tính phổ biến này có độ hỗ trợ lớn hơn hoặc bằng fminsupp.
Ví dụ, áp dụng công thức (3.4) với toán tử T-norm () là tích đại số và fminsupp bằng 46% ta được bảng sau:
Tập thuộc tính Độ hỗ trợ Là tập phổ biến? fminsupp = 46%
{[Tuổi, Tuổi_trẻ]} (1) 10% Không
{[Tuổi, Tuổi_trung_niên]} (2) 45% Không
{[Tuổi, Tuổi_già]} (3) 76% Có
{[Cholesterol, Cholesterol_thấp]} (4) 43% Không {[ Cholesterol, Cholesterol_cao]} (5) 16% Không {[Đường_trong_máu, Đường_trong_máu_0]} (6) 85% Có {[ Đường_trong_máu, Đường_trong_máu_1]} (7) 15% Không
1. Procedure Counting(DF, IF, fminsupp, wf)
2. F1 = Ø;
3. For each iIF;
4. If (fs({i}, wf ≥ fminsupp) then
5. F1 = F1 {i}
6. Endif;
7. Endfor;
{[Bệnh_tim, Bệnh_tim_không]} (8) 54% Có
{[ Bệnh_tim, Bệnh_tim_có]} (9) 46% Có
Bảng 7: C1 - tập tất cả các tập thuộc tính có lực lƣợng bằng 1
Như vậy F1 = {{3}, {6}, {8}, {9}}
Chương trình con Ck = Join(Fk-1): hàm này thực hiện kết nối các cặp thuộc tính mờ từ các thuộc tính mờ phổ biến Fk-1 có k-1 phần tử (lực lượng k-1) để sinh ra các tập thuộc tính mờ ứng cử viên Ck có k phần tử (lực lượng k). Cách kết nối sử dụng trong hàm Join được thể hiện thông qua ngôn ngữ SQL như sau:
Trong đó, p.ij và q.ij là số hiệu của thuộc tính mờ thứ j trong p và q, còn p.ij.o và q.ij.o là số hiệu thuộc tính gốc của thuộc tính mờ thứ j trong p và q và q.p.ik-1 < q.ik-1 là điều kiện nhằm không phát sinh các bộ trùng nhau, p.ik-1.o # q.ik-1.o là điều kiện sẽ bảo đảm không phát sinh các bộ thuộc tính mờ có cùng thuộc tính gốc. Ví dụ, C2 = {{3, 6,}, {3, 8}, {3, 9}, {6, 8}, {6, 9}}. Tập thuộc tính {8, 9} là không hợp lệ vì cả (8) và (9) có cùng một thuộc tính gốc ban đầu là Bệnh_tim.
Chương trình con Ck = Prune (Ck): chương trình con này sử dụng tính chất “mọi tập con khác rỗng của tập phổ biến cũng là tập phổ biến và mọi tập chứa tập không phổ biến đều là tập không phổ biến” để cắt tỉa những tập thuộc tính nào trong Ck có tập con lực lượng k-1 không thuộc tập các tập thuộc tính phổ biến Fk-1. Sau khi cắt tỉa, C2 = {{3, 6,}, {3, 8}, {3, 9}, {6, 8}, {6, 9}}.
Chương trình con Fk = Checking(Ck, DF, fminsupp, wf): chương trình con này duyệt qua CSDL DF, chọn ngưỡng wf và toán tử T-norm để cập nhật độ hỗ trợ cho các tập thuộc tính trong Ck. Sau khi quyết xong, Checking sẽ chỉ chọn những tập phổ biến (có độ hỗ trợ lớn hơn hoặc bằng fminsupp) để đưa vào trong Fk. Ví dụ, với C2 ở trên, sau khi thực hiện Checking, ta được F2 = {{3, 6,}, {6, 8}}.
INSERT INTO Ck
SELECT p.i1, p.i2,..., p.ik
FROM Lk-1 p, Lk-1 q
Tập thuộc tính Độ hỗ trợ Là tập phổ biến? {3, 6} 62% Có {3, 8} 35% Không {3, 9} 41% Không {6, 8} 46% Có {6, 9} 38% Không Bảng 8: F2 - tập thuộc tính phổ biến có lực lƣợng bằng 2
Chương trình con GenerateRules(F, fminconf): sinh luật kết hợp mờ tin cậy từ các tập phổ biến F. Với ví dụ trên, sau pha thứ nhất, thu được tập các tập phổ biến F= F1F2 = {{3}, {6}, {8}, {9}, {3, 6}{3, 8}} (F3 không có vì C3 bằng tập rỗng).
Procedure GenerateRules(F, fminconf) // chương trình con này sinh luật kết hợp mờ tin cậy từ các tập phổ biến Fk.
1. CFk = Ø; 2. for all XFk do
3. for all YX and X # Y and Y # Ø) do
4. r = X \ Y Y 5. if (CF(r) ≥ fminconf) then 6. CKk = Fk {r} 7. end if 8. end for 9. end For 1. Fk = Ø; 2. For (each XFk-1) do
3. For (each YFk-1 and X # Y) do
4. Begin
5. S = XY
6. If ( S == k and fs ({S}) ≥ fminsupp) then
7. Fk = Fk{S}
8. End If
9. End
10. End for
Bảng dưới đây liệt kê các luật mờ được sinh ra từ F, với độ tin cậy cực tiểu là 70% luật thứ 7 ở bảng trên bị loại:
STT Luật Độ hỗ trợ Độ tin cậy
1 Người già 76%
2 Đường trong máu 120 mg/ml 85% 3 Không bị bệnh tim 54% 4 Bị bệnh tim 46%
5 Người già => Đường trong máu 120 mg/ml 62% 82% 6 Đường trong máu 120 mg/ml => người già 62% 73% 7 Đường trong máu 120 mg/ml => Không bị bệnh tim 46% 54% 8 Không bị bệnh tim => Đường trong máu 120 mg/ml 46% 85%
Bảng 9: Các luật mờ đƣợc sinh ra từ CSDL trong bảng 4
3.5.1 Luật kết hợp mờ với thuộc tính số được đánh trọng số
Mục đích của khai phá luật kết hợp mờ với thuộc tính được đánh trọng số là tìm cách gắn trọng số cho các thuộc tính để biểu thị mức độ quan trọng của chúng đối với luật. Ví dụ khi khai phá luật kết hợp mờ liên quan đến cuộc gọi và phát triển doanh thu thì những thông tin về thời gian đàm thoại, dịch vụ sử dụng, giá cước quan trọng hơn là thông tin về đơn vị quản lý và giờ bắt đầu gọi. Hoặc muốn tìm hiểu các cuộc gọi bất bình thường thì thuộc tính thời gian đàm thoại kéo dài hoặc thời gian đàm thoại quá ngắn là quan trọng nhất. Chúng ta không thể phân tích một cách trực quan luật nào là thật sự có ích hoặc giữ nguyên số luật để tránh mất thông tin nhưng phải sắp xếp lại các luật theo thứ tự giảm dần của độ quan trọng (mức độ quan tâm) của luật dựa trên trọng số của các thuộc tính của các luật là rất cần thiết. + Độ quan trọng của luật
Độ quan trọng của luật A => B được định nghĩa là: Batrr Attr ai i len A len B a I B A IMP( ) ( )/( ( ) ( ))
Trong đó, len(A), len(B) là số thuộc tính trong tập thuộc tính A và B. I(ai) là độ quan trọng hay trọng số của thuộc tính ai do người dùng quyết định. Giá trị của I(ai) càng lớn thì thuộc tính càng đóng vai trò quan trọng trong hệ thống thông tin. Độ đo này cũng thể hiện tri thức về mối quan hệ giữa các thuộc tính trong CSDL. IMP(A => B) được dùng như là độ quan trọng của các thuộc tính trong A và trong
chứa ít thuộc tính có độ quan trọng thấp thì ta coi như luật đó là luật quan trọng và đáng được quan tâm đến.
3.5.2 Chuyển luật kết hợp mờ về luật kết hợp với thuộc tính số
Khử mờ: Gọi x‟ là giá trị của x sau khi khử mờ, một số phương pháp khử mờ như:
Nguyên lý thành viên lớn nhất: m(x‟) ≥ m(x), với mọi x X Phương pháp trung bình trọng số × x‟= ) ( ' ) ' ( x m x x m
, trong đó x‟ là giá trị x trung bình của tập mờ
Theo công thức (3.5), mỗi hàm thuộc của một tập mờ f đều có một ngưỡng wf. Những giá trị nào bé hơn ngưỡng wf thì xem như bằng 0. Nhờ ngưỡng wf có thể khử mờ để đưa luật kết hợp mờ về dạng gần giống với luật kết hợp với thuộc tính số.
Ví dụ, với luật “Người già=>Đường trong máu ≤ 120 mg/ml, độ hỗ trợ 62%, độ tin cậy 82%” trong bảng 9, chúng ta có thể đưa về dạng sau “Tuổi≥46=>Đường trong máu≤120 mg/ml, độ hỗ trợ 62%, độ tin cậy 82%”. Giá trị nhỏ nhất còn vượt quá ngưỡng wTuổi_già(= 0.5) trong thuộc tính [Tuổi, Tuổi_già] là 0.67. Tuổi tương ứng với giá trị mờ bằng 0.67 chính là 46. Trong thuộc tính này, bất cứ người nào có tuổi lớn hơn hoặc bằng 46 thì đều có giá trị hàm mờ lớn hơn hoặc bằng 0.67. “Tuổi ≥46=>Đường trong máu≤120 mg/ml, độ hỗ trợ 62%, độ tin cậy 82%” hoàn toàn là một luật kết hợp với thuộc tính số.
CHƢƠNG 4 ỨNG DỤNG THỬ NGHIỆM
4.1 Đặt vấn đề
Nhằm phát huy vai trò chủ lực của một Ngân hàng Thương mại Nhà nước trước ngưỡng cửa hội nhập, Ngân hàng Đầu tư và Phát triển Việt Nam (BIDV) đã không ngừng đổi mới công nghệ, nâng cao chất lượng, phát triển các sản phẩm dịch vụ ngân hàng theo các tiêu chuẩn tiên tiến, phù hợp với các thông lệ quốc tế và từng bước hội nhập với các Ngân hàng trong khu vực và trên thế giới. Hiện nay BIDV đã triển khai thành công Dự án Hiện đại hoá Ngân hàng. Đây là một tiểu dự án thuộc dự án Hiện đại hoá Ngân hàng và Hệ thống thanh với cơ sở dữ liệu tập trung thay cho các cơ sở dữ liệu phân tán trước đây. Tất cả dữ liệu được tập trung tại Hội sở chính, cùng với thời gian dòng dữ liệu này tăng lên không ngừng vì đối với một ngân hàng lớn như BIDV lượng giao dịch một ngày nên tới hàng trăm nghìn đòi hỏi cần phải lưu trữ và tìm kiếm một cách dễ dàng. Vì vậy việc xây dựng một kho dữ liệu đễ hỗ trợ cho việc ra quyết định cho các nhà quản lý đóng một vai trò hết sức quan trọng, nó sẽ là nơi lưu trữ các thông tin cần thiết nhằm cung cấp cho các nhà quản lý các thông tin về khách hàng, thị trường, nhà cung cấp, sản phẩm và các kết quả tài chính từ các nguồn dữ liệu đa dạng.
Kho dữ liệu ở đây không chỉ là chiếc máy để lưu giữ dữ liệu mà nó là một hệ thống của các hệ thống có thể truy cập nhanh các ứng dụng xử lý giao dịch và sau đó trích, biến đổi và chuyển dữ liệu từ những ứng dụng này đến nơi mà các nhà phân tích của hệ thống, các nhà quản lý cao cấp có thể truy cập được.
Kho dữ liệu có chức năng cung cấp thông tin thuận lợi cho doanh nghiệp. Nó cho phép nhà quản lý sử dụng bài học quá khứ, phân tích và ứng dụng vào các hoạt động hiện tại nhằm lợi dụng được các cơ hội mới. Kho dữ liệu là một hệ thống an toàn bảo vệ các tài sản thông tin của doanh nghiệp, đảm bảo tính nhất quán của thông tin đồng thời tạo khả năng tiếp nhận thông tin mới mà không cần phải thay đổi dữ liệu hay công nghệ hiện tại.
Tuy nhiên một khó khăn ở đây là việc cung cấp các thông tin cần thiết chỉ là các báo cáo ở dạng tĩnh đã được thiết kế sẵn theo định dạng, chưa hề có một công cụ nào hỗ trợ cho việc tìm ra những thông tin tiềm ẩn có giá trị, những xu hướng phát triển và những yếu tố tác động lên chúng. Trong khuôn khổ nghiên cứu của
luận văn tốt nghiệp, với việc áp dụng những kiến thức trong quá trình học tập vào hoạt động thực tiễn tại đơn vị công tác, tôi xin đề xuất phương pháp khai phá dữ liệu bằng luật kết hợp với cở sở dữ liệu là cơ sở dữ liệu tác nghiệp của BIDV. Do đặc thù của hệ thống dữ liệu tập trung của BIDV gồm rất nhiều phân hệ khác nhau, mỗi phân hệ lại có những bảng dữ liệu liên quan tương ứng, không làm mất tính tổng quát của vấn đề, việc thử nghiệm sẽ được thực hiện trên phân hệ tiền gửi. Việc khai phá dữ liệu trên phân hệ này nhằm phát hiện ra các tri thức mà cụ thể là các luật nhằm trợ giúp việc đề ra những chiến lược huy động vốn hiệu quả, nâng cao hiệu quả trong hoạt động kinh doanh. Sau đây xin giới thiệu tổng quan về phân hệ tiền gửi trên hệ thống dữ liệu tập trung của BIDV:
+ Phân hệ tiền gửi là một trong những phân hệ nghiệp vụ ngân hàng cốt lõi. Phân hệ này có liên quan chặt chẽ đến hoạt động của các phân hệ khác như: phân hệ tiền vay, tài trợ thương mại, thanh toán, nghiệp vụ thẻ, sổ cái và các giao diện khác.
Các sản phẩm tiền gửi gồm có tiền gửi không kỳ hạn ( tài khoản thanh toán – Current Account (CA), tài khoản tiết kiệm – Saving Account (SA)) và tiền gửi có kỳ hạn (FD/CD). Khách hàng gửi tiền vào thì bắt buộc phải mở tài khoản. Khách hàng có thể mở các tài khoản tiền gửi không kỳ hạn (CA, SA), hoặc có kỳ hạn (FD). Mỗi khách hàng được thiết lập một tài khoản gốc với một hoặc nhiều tài khoản thứ cấp. Không còn hình thức tài khoản chung cho các khách hàng gửi tiết kiệm, kỳ phiếu. Hệ thống mới cho phép khách hàng có thể gửi tiền vào hoặc rút tiền ra trên một tài khoản tại nhiều nơi và thực hiện giao dịch chỉ ở một cửa.
Cũng như các phân hệ khác trong hệ thống mới, dữ liệu của phân hệ tiền gửi cũng được lưu trữ tập trung tại Hội sở chính. Trong phân hệ này, số dư tài khoản được phân ra thành 3 loại rõ ràng: số dư sổ cái, số dư khả dụng và số dư đã thu hồi. Phân hệ có khả năng thực hiện chuyển tiền tự động theo lịch đều đặn từ tài khoản CA sang tài khoản CA, SA khác, tài khoản tiền vay, hoặc tài khoản GL. Phân hệ còn có thể thực hiện việc điều chuyển tiền tự động giữa tài khoản gốc và tài khoản thứ cấp. Các chức năng phong tỏa, ngừng thanh toán được thực hiện trên từng tài khoản. Chức năng phong toả được dùng khi một phần nhất định của số dư bị phong toả, số dư không bị phong toả vẫn sử dụng được bình thường.
Dưới đây là sơ đồ luồng dữ liệu các file trong tiền gửi của hệ thống CoreBanking
của BIDV:
.
Hình 4.1 Danh sách các file dữ liệu của phân hệ tiền gửi
a.Các file chính
- DDMAST – File thông tin chính
- DDTNEW – File thông tin các tài khoản mở mới trong ngày