Tải bản đầy đủ (.pdf) (60 trang)

Khai phá dữ liệu phát hiện luật kết hợp và ứng dụng đối với kho dữ liệu của ngân hàng

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.9 MB, 60 trang )



Khai phá dữ liệu phát hiện luật kết hợp và Ứng dụng đối với kho dữ liệu của ngân hàng
1

ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ




NGUYỄN THỊ THU TRANG






KHAI PHÁ DỮ LIỆU PHÁT HIỆN LUẬT KẾT HỢP
VÀ ỨNG DỤNG ĐỐI VỚI KHO DỮ LIỆU CỦA NGÂN HÀNG






LUẬN VĂN THẠC SĨ










Hà Nội - 2008


Khai phá dữ liệu phát hiện luật kết hợp và Ứng dụng đối với kho dữ liệu của ngân hàng
2

ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ




NGUYỄN THỊ THU TRANG




KHAI PHÁ DỮ LIỆU PHÁT HIỆN LUẬT KẾT HỢP
VÀ ỨNG DỤNG ĐỐI VỚI KHO DỮ LIỆU CỦA NGÂN HÀNG




Ngành: Công nghệ thông tin
Chuyên ngành: Công nghệ phần mềm

Mã số: 60 48 10



LUẬN VĂN THẠC SĨ


NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS. TS. VŨ ĐỨC THI





Hà Nội - 2008


Khai phá dữ liệu phát hiện luật kết hợp và Ứng dụng đối với kho dữ liệu của ngân hàng
1
MỤC LỤC
MỞ ĐẦU 7
Chương 1: KHO DỮ LIỆU VÀ PHÂN TÍCH DỮ LIỆU TRỰC TUYẾN 8
1.1. Hệ thống xử lý giao dịch trực tuyến (OLTP) 8
1.2. Kho dữ liệu (Data warehouse) 8
1.3. Hệ thống phân tích dữ liệu trực tuyến (OLAP) 10
1.3.1. Giới thiệu 10
1.3.2. Mô hình tổ chức dữ liệu (Data model) 13
1.3.2.1. Lược đồ hình sao (Star schema) 14
1.3.2.2. Lược đồ bông tuyết (Snowflake schema) 15
Chương 2: KHAI PHÁ DỮ LIỆU PHÁT HIỆN LUẬT KẾT HỢP 17
2.1. Giới thiệu 17

2.1.1. Định nghĩa luật kết hợp 17
2.1.1.1. Ví dụ về luật kết hợp 17
2.1.1.2. Các định nghĩa cơ bản 18
2.1.2. Luật kết hợp nhị phân 21
2.1.3. Luật kết hợp định lượng 22
2.1.4. Luật kết hợp đơn chiều 22
2.1.5. Luật kết hợp đa chiều 22
2.1.6. Luật kết hợp đa mức 23
2.1.6.1. Giới thiệu 23
2.1.6.2. Khai phá luật kết hợp đa mức 24
2.2. Thuật toán Apriori 27
2.3. Đánh giá 32
2.4. Khai phá luật kết hợp với OLAP 33
2.4.1. Xây dựng Data-cube 33
2.4.2. Khai phá các tập mục phổ biến dựa trên Data-cube 36
2.4.3. Đánh giá 39
2.5. Sinh luật kết hợp từ tập mục phổ biến 39
2.5.1. Thuật toán đơn giản sinh luật kết hợp từ tập mục phổ biến 39
2.5.2. Khai phá luật kết hợp dựa trên Data-cube 41
2.5.3. Đánh giá 41
Chương 3: XÂY DỰNG ỨNG DỤNG MINH HOẠ 43
3.1. Giới thiệu 43
3.2. Xây dựng khung ứng dụng (Framework) 44
3.2.1. Tập hợp, làm sạch và chuẩn hoá dữ liệu 44


Khai phá dữ liệu phát hiện luật kết hợp và Ứng dụng đối với kho dữ liệu của ngân hàng
2
3.2.2. Xây dựng Data-cube 48
3.2.3. Khai phá luật kết hợp từ Data-cube 51

3.3. Đánh giá 53
KẾT LUẬN 55
TÀI LIỆU THAM KHẢO 57
Danh sách tài liệu tham khảo tiếng Việt 57
Danh sách tài liệu tham khảo tiếng Anh 57
Danh sách Websites tham khảo 58




Khai phá dữ liệu phát hiện luật kết hợp và Ứng dụng đối với kho dữ liệu của ngân hàng
3
DANH SÁCH CÁC BẢNG TRONG LUẬN VĂN

Bảng 2.1: Ví dụ một CSDL giao dịch. 18
Bảng 2.2: Ví dụ về các tập mục phổ biến. 19
Bảng 2.3: Các luật kết hợp được sinh từ tập mục phổ biến ACW 20
Bảng 2.4: Ví dụ CSDL giao dịch bán hàng. 23
Bảng 2.5: Thuật toán Apriori. 29
Bảng 2.6: Cơ sở dữ liệu minh hoạ thuật toán Apriori. 30
Bảng 2.7: Minh hoạ CSDL thống kê tài khoản giao dịch. 33
Bảng 2.8: Tiêu chí rời rạc hoá CSDL thống kê TKGD 34
Bảng 2.9: CSDL thống kê TKGD sau khi rời rạc hoá. 34
Bảng 2.10: Pivot-table ứng với CSDL thống kê TKGD. 35
Bảng 2.11: Thuật toán tìm tập mục phổ biến từ Data-cube của Hua Zhu 36
Bảng 2.12: Thuật toán DataCubeSimpleGenFrequentItemsets. 38
Bảng 2.13: Thuật toán sinh luật kết hợp từ tập mục phổ biến. 40
Bảng 2.14: Thủ tục GenRules. 40
Bảng 2.15: Thuật toán DataCubeSimpleMining 41
Bảng 3.1: Đoạn mã thực hiện chuẩn hoá dữ liệu. 46

Bảng 3.2: Đoạn mã thực hiện xây dựng Data-cube. 48
Bảng 3.3: Đoạn mã thực hiện khai phá luật kết hợp từ Data-cube. 51




Khai phá dữ liệu phát hiện luật kết hợp và Ứng dụng đối với kho dữ liệu của ngân hàng
4
DANH SÁCH CÁC HÌNH TRONG LUẬN VĂN

Hình 1.1: Kiến trúc tiêu biểu của Data warehouse. 9
Hình 1.2: Minh hoạ Data-cube 11
Hình 1.3: Minh hoạ dữ liệu được tính toán và lưu trữ bởi OLAP-engine. 12
Hình 1.4: Các thao tác cơ bản trong OLAP. 13
Hình 1.5: Lược đồ hình sao (Star schema). 14
Hình 1.6: Minh hoạ phân cấp thuộc tính trong lược đồ hình sao. 15
Hình 1.7: Lược đồ bông tuyết (Snowflake schema). 16
Hình 2.1: Sự phân cấp mức độ trừu tượng của dữ liệu. 24
Hình 2.2: Khai phá luật kết hợp đa mức với minsup giống nhau tại các mức. 25
Hình 2.3: Khai phá luật kết hợp đa mức với minsup giảm dần. 25
Hình 2.4: Khai phá luật kết hợp đa mức với minsup giảm dần kết hợp lọc. 26
Hình 2.5: Khai phá luật kết hợp đa mức với minsup giảm dần kết hợp lọc k-mục. 27
Hình 2.6: Minh hoạ thuật toán Apriori. 31
Hình 3.1: Minh hoạ dữ liệu thô. 45
Hình 3.2: Minh hoạ các tiêu chí lọc và rời rạc hoá dữ liệu. 46
Hình 3.3: Dữ liệu sau khi chuẩn hoá (Xem dạng Grid). 48
Hình 3.4: Dữ liệu Data-cube (Dạng Grid và Pivot). 50
Hình 3.5: Luật kết hợp khai phá từ Data-cube. 53






Khai phá dữ liệu phát hiện luật kết hợp và Ứng dụng đối với kho dữ liệu của ngân hàng
5
KÝ HIỆU VÀ TỪ VIẾT TẮT

Stt
Ký hiệu viết tắt
Nghĩa tiếng Việt
Nghĩa tiếng Anh
1
CSDL
Cơ sở dữ liệu
Database
2
HQTCSDL
Hệ quản trị cơ sở dữ liệu
Database Management System
3
KPDL
Khai phá dữ liệu
Data Mining
4
KDD
Khai phá tri thức
Knowledge Discovery in Database








Khai phá dữ liệu phát hiện luật kết hợp và Ứng dụng đối với kho dữ liệu của ngân hàng
6
THUẬT NGỮ

Stt
Thuật ngữ
Diễn giải
1
Database
Cơ sở dữ liệu
2
Database Management System
Hệ quản trị cơ sở dữ liệu
3
Data cube
Khối dữ liệu đa chiều
4
Data mart
CSDL chuyên đề hoặc Kho dữ liệu chuyên đề
5
Data Mining
Khai phá dữ liệu
6
Data warehouse
Kho dữ liệu
7

Decision-making support
system
Hệ hỗ trợ quyết định
8
Dimension table
Bảng chiều dữ liệu
9
Fact table
Bảng giá trị chi tiết
10
Frequent items set
Tập mục phổ biến
11
KDD
Knowledge Discovery in Database
Khai phá tri thức
12
OLAP
On-Line Analytical Processing
Hệ thống Phân tích dữ liệu trực tuyến
13
OLTP
On-Line Transaction Processing
Hệ thống xử lý giao dịch trực tuyến
14
Star schema
Lược đồ hình sao
15
Snowflake schema
Lược đồ bông tuyết

16
SQL
Structured Query Language
Ngôn ngữ truy vấn có cấu trúc







Khai phá dữ liệu phát hiện luật kết hợp và Ứng dụng đối với kho dữ liệu của ngân hàng
7
MỞ ĐẦU
Khai phá dữ liệu trong những năm gần đây đã và đang được ứng dụng rộng rãi trong
nhiều lĩnh vực như: Ngân hàng, Tài chính và thị trường chứng khoán, Thương mại, Giáo
dục, Y tế, Sinh học, Bưu chính viễn thông, … với nhiều hướng tiếp cận khác nhau như:
Phân lớp/Dự đoán, Phân cụm, Luật kết hợp, … Các kỹ thuật chính được áp dụng trong
khai phá dữ liệu phần lớn được thừa kế từ lĩnh vực: Cơ sở dữ liệu, Máy tự học (Machine
learning), Trí tuệ nhân tạo, Lý thuyết thông tin, Xác suất thống kê, … và nổi trội trong đó
là phương pháp Khai phá dữ liệu phát hiện luật kết hợp với cơ sở lý thuyết vững chãi và
đầy tính ứng dụng thực tiễn.
Mặc dù trên thế giới, Khai phá dữ liệu bằng luật kết hợp đã và đang là một trong
những phương pháp phô
̉
du
̣
ng va
̀
hi ệu quả, được nhiều nhà khoa học va

̀
ca
́
c tô
̉
chư
́
c ,
doanh nghiê
̣
p tìm hi ểu, nghiên cứu, thử nghiệm, phát triển và kết quả đã thu đư ợc những
thành công lớn đặc biệt trong lĩnh vực Ngân hàng và Tài chính trên những Kho dữ liệu
khổng lồ. Tuy nhiên ở nước ta, các nhà quản trị thậm chí còn chưa biết làm sao tổ chức dữ
liệu của mình thành một Kho dữ liệu, họ mới chỉ dừng lại ở việc trích rút được những báo
cáo đơn giản đáp ứng các nghiệp vụ hàng ngày, chưa có khái niệm về Kho dữ liệu, về
phân tích OLAP, chứ chưa nói đến là Khai phá dữ liệu từ Kho dữ liệu đó. Chính vì vậy đề
tài tập trung vào vấn đề rất thực tiễn này: Khai phá dữ liệu phát hiện luật kết hợp và
Ứng dụng đối với Kho dữ liệu của ngân hàng.

Luận văn được tổ chức thành 3 chương:
Chương 1: Kho dữ liệu và Phân tích dữ liệu trực tuyến
Trình bày những nét khái quát nhất về Kho dữ liệu (Data warehouse) và Phân tích
dữ liệu trực tuyến (OLAP).
Chương 2: Khai phá dữ liệu phát hiện luật kết hợp
Trình bày các vấn đề chung, cơ bản nhất về Luật kết hợp, giải thuật kinh điển
Apriori và Khai phá luật kết hợp dựa trên OLAP.
Chương 3: Xây dựng ứng dụng minh hoạ
Triển khai ứng dụng minh hoạ đối với Kho dữ liệu Ngân hàng.






Khai phá dữ liệu phát hiện luật kết hợp và Ứng dụng đối với kho dữ liệu của ngân hàng
8
Chương 1: KHO DỮ LIỆU VÀ PHÂN TÍCH DỮ LIỆU TRỰC TUYẾN
1.1. Hệ thống xử lý giao dịch trực tuyến (OLTP)
Hầu hết các doanh nghiệp trên thế giới đã và đang áp dụng công nghệ thông tin trong
việc lưu trữ và quản lý dữ liệu. Hệ thống OLTP (On-Line Transaction Processing: Hệ
thống xử lý giao dịch trực tuyến) ra đời với khả năng lưu trữ dữ liệu lâu dài, hướng giao
dịch (Transaction-oriented) nên được áp dụng rất phổ biến vì dữ liệu mà các doanh nghiệp
thực hiện tác nghiệp chủ yếu đều dưới dạng các giao dịch. Cũng vì vậy mà hầu hết các hệ
quản trị CSDL phổ biến hiện nay như: Oracle, SQL Server, DB2, MySQL, đều hỗ trợ
OLTP. CSDL trong các hệ OLTP thường được thiết kế thoả mãn 3NF hoặc cao hơn. Đặc
điểm của hệ thống OLTP là lưu toàn bộ các dữ liệu giao dịch chi tiết hàng ngày, điều đó
cũng có nghĩa là mức độ tổng quát, trừu tượng của dữ liệu này rất thấp. Với công cụ SQL,
OLTP có thể nhanh chóng trả lời được những câu hỏi dạng: Tổng doanh thu từ mặt hàng
A trong 6 tháng đầu năm là bao nhiêu, hay Mặt hàng nào bán chạy nhất trong 6 tháng đầu
năm,
Tuy nhiên đứng trên góc độ của nhà quản lý họ cần hệ thống trả lời những câu hỏi
dạng: Đưa ra danh sách 10 mặt hàng có doanh thu tốt nhất của từng quý từ trước cho tới
nay, với mỗi mặt hàng, chỉ ra tháng nào trong quý mặt hàng đó có doanh thu lớn nhất (1).
Hay nếu doanh thu của mặt hàng A tăng thì có thể dự đoán doanh thu của mặt hàng B tăng
hay giảm với xác suất là bao nhiêu (2). Với câu hỏi dạng (1) hệ thống OLTP gặp rất nhiều
khó khăn khi trả lời, để trả lời chúng một cách nhanh chóng chúng ta cần phải sử dụng
những công cụ chuyên dụng và cao cấp hơn như OLAP (xem 1.3). Còn với những câu hỏi
dạng (2) thì việc hệ thống OLTP trả lời là một điều viễn tưởng, muốn trả lời câu hỏi dạng
này chúng ta cần phải sử dụng công cụ đặc biệt là Data mining (xem Chương 2).

1.2. Kho dữ liệu (Data warehouse)

Data warehouse (Kho dữ liệu) được đề xuất bởi W.H.Inmon vào đầu những năm 1990,
là nơi lưu trữ thông tin tích hợp từ nhiều nguồn (Multi-sources), hướng chủ đề (Subject-
oriented), mang tính lịch sử (Time-variant), ổn định (Nonvolatile), hỗ trợ truy vấn
(Query), phân tích (Analyse) thông tin và trợ giúp ra quyết định (Decision-making
support) [105].
Qua khái niệm trên ta thấy dữ liệu và thông tin sẽ được trích rút từ nhiều nguồn khác
nhau với các định dạng khác nhau. Nếu người sử dụng muốn thực hiện các truy vấn, hệ
thống sẽ chỉ thực hiện tìm kiếm dữ liệu tại Data warehouse một cách thống nhất thay vì


Khai phá dữ liệu phát hiện luật kết hợp và Ứng dụng đối với kho dữ liệu của ngân hàng
9
tìm kiếm trên các CSDL (Cơ sở dữ liệu) nguồn bằng các công cụ chuyên biệt tương ứng,
từ đó tiết kiệm nhiều thời gian xử lý của người sử dụng.



Hình 1.1: Kiến trúc tiêu biểu của Data warehouse.

Hệ thống Data warehouse gồm có 3 thành phần chính sau:
1. Các CSDL nguồn: Dữ liệu thô sẽ được tập hợp từ nhiều nơi: bên trong, bên ngoài, tự
có, đi mua, dữ liệu di sản lịch sử hay dữ liệu hoạt động hiện tại (Operational
database), các dữ liệu này và mọi sự thay đổi của chúng sẽ được quản lý bởi một
phân hệ giám sát đặc biệt (Monitor / Wrapper modules).
Ở đây, dữ liệu được tập hợp từ rất nhiều nguồn: bản thân doanh nghiệp, bên ngoài doanh
nghiệp, thậm chí là đi mua, được lưu trữ trên rất nhiều loại khuôn dạng: Oracle, DB2,
SQL Server, Microsoft Access, , thậm chí là Microsoft Excel file hay Text file. Tất cả
dữ liệu này và mọi sự thay đổi của chúng sẽ được quản lý bởi phân hệ Monitor / Wrapper.

2. Lõi của Data warehouse: Tại đây, dữ liệu sẽ được tổng hợp từ các nguồn dữ liệu trên,

thông thường từ các khuôn dạng khác nhau thành một dạng thống nhất và trở thành
trung tâm lưu trữ của toàn bộ hệ thống.


Khai phá dữ liệu phát hiện luật kết hợp và Ứng dụng đối với kho dữ liệu của ngân hàng
10
Ở đây, dữ liệu thô được Trích chọn (Extract), Làm sạch (Clean), Chuyển đổi (Transform)
trước khi được Tải (Load) vào Data warehouse. Phân hệ Monitor / Wrapper sẽ thực hiện
định kỳ cập nhật những thay đổi (Refresh) sao cho đảm bảo sự nhất quán dữ liệu.
Các Data mart (CSDL chuyên đề) cũng được hình thành tại đây, xuất phát từ nhu cầu cụ
thể tập trung phân tích một lĩnh vực chuyên biệt mà người sử dụng quan tâm. Dữ liệu sẽ
được trích rút từ Data warehouse hình thành nên các Data mart giúp việc truy vấn và phân
tích được nhanh chóng, tập trung và tối ưu hơn.

3. Các công cụ phân tích: Các công cụ này hỗ trợ các truy vấn, tạo báo cáo, OLAP, thậm
chí là hỗ trợ khai phá dữ liệu (phân tích xu hướng, dự đoán, đưa ra các luật ).
- Các công cụ này cho phép người sử dụng dễ dàng, chủ động khai thác và tạo các
câu truy vấn (query), tạo lập báo cáo, tạo lập các bản phân tích một cách nhanh
chóng với độ chính xác cao mà không cần yêu cầu kiến thức về CSDL.
- Cho phép xoay chiều và tạo các báo cáo theo nhiều dạng khác nhau như dạng bảng
ngang (Horizontal), bảng dọc (Vertical), bảng chéo (Cross), cũng như các dạng đồ
thị khác nhau.
- Cung cấp các công cụ thao tác với dữ liệu như Drill (phân tích dữ liệu theo chiều
sâu), Roll up (tổng hợp), Slice (cắt lát dữ liệu), Dice (cắt khối dữ liệu) hay Pivot
(xoay dữ liệu).
- Các công cụ đặc biệt giúp phân tích xu hướng, dự đoán, đưa ra các luật, tri thức.

1.3. Hệ thống phân tích dữ liệu trực tuyến (OLAP)
1.3.1. Giới thiệu
Mặc dù dữ liệu được lưu trữ trong Data warehouse đã được trích chọn, làm sạch và

chuyển đổi về khuôn dạng chuẩn, xong việc truy vấn và đặc biệt là việc phân tích thông
tin trên một khối lượng dữ liệu khổng lồ đòi hỏi phải có những công cụ đặc biệt.
Kỹ thuật OLAP (OnLine Analytical Processing: Xử lý phân tích dữ liệu trực tuyến)
được hiểu là một tập hợp những những kỹ thuật được phát triển để phân tích dữ liệu trong
Data warehouse [102] đáp ứng được các tiêu chí: Trực tuyến (Online), nhanh chóng, trực
quan và hiệu quả đối với phân tích dữ liệu đa chiều. OLAP thực hiện một quá trình tạo ra
và quản lý dữ liệu đa chiều phục vụ cho phân tích một cách trực quan, nó cho phép truy
vấn trên một CSDL khổng lồ một cách nhanh chóng và hiệu quả đáng kể so với kỹ thuật
truy vấn kinh điển bằng SQL trên CSDL quan hệ. Để thực hiện được điều đó, OLAP-
engine (cơ chế OLAP) phải thực hiện tính toán trước các toán tử nhóm (Aggregation
operator) đồng thời tổ chức lại dữ liệu và kết quả tính toán dưới dạng các Khối dữ liệu đa
chiều (Data-cube).


Khai phá dữ liệu phát hiện luật kết hợp và Ứng dụng đối với kho dữ liệu của ngân hàng
11
Việc thực hiện OLAP bao gồm 3 giai đoạn:
- Truy vấn dữ liệu từ Data warehouse.
- Xây dựng Data-cube.
- Phân tích trực tuyến dựa trên Data-cube.

Khái niệm Data-cube (Khối dữ liệu đa chiều) lần đầu tiên được đề xuất bởi J. Gray và các
cộng sự [101], nó bao gồm các chiều dữ liệu và các thước đo, cho phép người sử dụng
nhìn vào dữ liệu được lưu trữ trong Data warehouse qua nhiều góc độ và nhiều chiều dữ
liệu. Ví dụ, chúng ta cùng xem xét một Data-cube có 3 chiều dữ liệu Product, Supplier,
Customer và 1 thước đo là SalesTotal qua hình sau:


Hình 1.2: Minh hoạ Data-cube.


Data-cube ở trên có thể được thể hiện qua biểu thức SQL sau:
select Product, Supplier, Customer, Sum(SalesNumber) as SaleTotal
from Sales
group by Product, Supplier, Customer
with cube
;

OLAP-engine sẽ thực hiện tính toán trước các toán tử nhóm và lưu trữ dữ liệu tính toán
này vào các trường bổ sung, ký hiệu là “Any” hoặc “*” như minh hoạ sau:


Khai phá dữ liệu phát hiện luật kết hợp và Ứng dụng đối với kho dữ liệu của ngân hàng
12


Hình 1.3: Minh hoạ dữ liệu được tính toán và lưu trữ bởi OLAP-engine.

Sau khi xây dựng xong Data-cube, OLAP cung cấp một số thao tác giúp người sử dụng
phân tích dữ liệu gồm:
- Roll-up (Cuộn) thực hiện tính toán gộp theo một hoặc nhiều chiều dữ liệu.
- Drill-down (Đào sâu) thao tác này ngược lại với Roll-up, nó cung cấp các dữ liệu ở
mức chi tiết theo các chiều dữ liệu.
- Slice (Cắt lát) thực hiện “cắt” lấy một “lát” dữ liệu theo 1 chiều nào đó của Data-
cube.
- Dice (Cắt khối) thực hiện “cắt” lấy một “khối con” dữ liệu của Data-cube.
- Pivot (Xoay) cho phép xoay Data-cube theo các chiều dữ liệu, từ đó cung cấp cho
người sử dụng nhiều góc nhìn vào dữ liệu.
Các thao tác trên Data-cube được minh hoạ qua hình sau:



c1
c2
c3
*
p1
56
4
50
110
p2
11
8
1
20
*
67
12
51
130


c1
c2
c3
*
p1
44
4

48

p2


1
1
*
44
4
1
49


c1
c2
c3
*
p1
12

50
62
p2
11
8

19
*
23
8
50

81

s1
s2
*
Sales(*,*,*)
Sales(p1,*,s2)


Khai phá dữ liệu phát hiện luật kết hợp và Ứng dụng đối với kho dữ liệu của ngân hàng
13


Hình 1.4: Các thao tác cơ bản trong OLAP.

1.3.2. Mô hình tổ chức dữ liệu (Data model)
Hầu hết các hệ quản trị CSDL hiện nay là CSDL quan hệ và ở các dạng chuẩn hoá
nhất định (3NF hoặc cao hơn), tuy nhiên nếu sử dụng trực tiếp CSDL quan hệ để phân
tích trực tuyến sẽ gặp rất nhiều khó khăn, đặc biệt là về tốc độ. Để có thể phân tích trực
tuyến, dữ liệu cần thiết phải được tính toán trước (chấp nhận dư thừa) và tổ chức lại dưới
dạng đặc biệt. Hầu hết Data warehouse hiện nay đều lưu trữ dữ liệu theo mô hình dữ liệu
đa chiều (Multidimensional data model) dạng lược đồ hình sao (Star schema) hoặc dạng
lược đồ bông tuyết (Snowflake schema).



Khai phá dữ liệu phát hiện luật kết hợp và Ứng dụng đối với kho dữ liệu của ngân hàng
14
1.3.2.1. Lược đồ hình sao (Star schema)
Mô hình Star schema (Lược đồ hình sao) được đề xuất bởi R. Kimball [108], là mô

hình phổ biến nhất hiện nay. Mỗi Star schema chứa 1 bảng dữ liệu chi tiết (Fact table) và
một vài bảng chiều dữ liệu (Dimension table). Cụ thể:
- Fact table lưu trữ toàn bộ dữ liệu chi tiết và một danh sách các khoá ngoại (Forein
key) tương ứng với các Dimension table.
- Dimension table chỉ chứa các thuộc tính (Attribute), các thuộc tính này thường ở
dạng đã duỗi phẳng phân cấp (Flatten).
Lược đồ hình sao được minh hoạ qua các hình sau:



Hình 1.5: Lược đồ hình sao (Star schema).



Khai phá dữ liệu phát hiện luật kết hợp và Ứng dụng đối với kho dữ liệu của ngân hàng
15


Hình 1.6: Minh hoạ phân cấp thuộc tính trong lược đồ hình sao.

1.3.2.2. Lược đồ bông tuyết (Snowflake schema)
Mô hình Snowflake schema là sự mở rộng của mô hình Star schema [109] trong đó ta
thực hiện chuẩn hoá một số Dimension table. Tức là từ Dimension table ban đầu ta thực
hiện chuẩn hoá thành nhiều Dimension table có quan hệ phân cấp.
Lược đồ bông tuyết có dạng như sau:



Khai phá dữ liệu phát hiện luật kết hợp và Ứng dụng đối với kho dữ liệu của ngân hàng
16



Hình 1.7: Lược đồ bông tuyết (Snowflake schema).

Điểm khác nhau giúp phân biệt Snowflake schema và Star schema đó là: tại mô hình Star
schema mọi Dimension table đều ở dạng trực tiếp quan hệ với Fact table, còn trong mô
hình Snowflake schema sẽ tồn tại một số Dimension table không quan hệ trực tiếp với
Fact table mà quan hệ với nhau ở dạng chuẩn hoá (Normalized form) nhằm giảm dư thừa
dữ liệu. Ưu điểm của mô hình Snowflake schema là dữ liệu tại các Dimension table chuẩn
hoá không bị dư thừa do đó việc duy trì (maintain) và lưu trữ dữ liệu dễ dàng hơn. Tuy
nhiên mô hình Star schema chấp nhận phi chuẩn, chấp nhận dư thừa, thực hiện tích hợp
luôn quan hệ phân cấp chỉ trong 1 bảng nên sẽ không phải thực hiện các toán tử Join trong
SQL để kết hợp các bảng liên quan khi duyệt chiều dữ liệu tương ứng, vì vậy trong thực tế
mô hình Star schema được sử dụng phổ biến hơn so với mô hình Snowflake schema.





Khai phá dữ liệu phát hiện luật kết hợp và Ứng dụng đối với kho dữ liệu của ngân hàng
17
Chương 2: KHAI PHÁ DỮ LIỆU PHÁT HIỆN LUẬT KẾT HỢP
2.1. Giới thiệu
KPDL (Data Mining) là quá trình tìm kiếm, phát hiện các tri thức tiềm ẩn và hữu dụng
trong CDSL nhất định. Trong đó tri thức được ngầm hiểu là các thông tin mang tính chất
quy luật và hữu ích đối với người sử dụng. Các hướng tiếp cận trong KPDL có thể được
phân chia theo chức năng hay lớp các bài toán khác nhau, dưới đây là một số hướng tiếp
cận chính:
+ Phân lớp và Dự đoán (Classification and Prediction): xếp một đối tượng vào một
trong những lớp đã biết trước. Ví dụ: phân lớp các bệnh nhân theo dữ liệu trong hồ sơ

bệnh án. Hướng tiếp cận này thường sử dụng một số kỹ thuật của học máy như cây quyết
định (Decision tree), mạng nơron nhân tạo (Neural network), …. Phân lớp và dự đoán còn
được gọi là học có giám sát (Supervised learning).
+ Khai phá luật kết hợp (Association rules mining): khai phá các tri thức dạng luật kết
hợp. Ví dụ: “60% nam giới vào siêu thị nếu mua bia thì có tới 80% trong số họ sẽ mua
thêm đậu phộng”. Luật kết hợp được ứng dụng nhiều trong lĩnh vực kinh doanh, y học,
tin-sinh, tài chính và thị trường chứng khoán, …
+ Phân tích chuỗi theo thời gian (Sequential/Temporal patterns): tương tự như khai
phá luật kết hợp nhưng có thêm tính thứ tự và tính thời gian. Phương pháp này được ứng
dụng nhiều trong lĩnh vực tài chính và thị trường chứng khoán vì nó có tính dự báo cao.
+ Phân cụm (Clustering/Segmentation): xếp các đối tượng theo từng cụm dữ liệu tự
nhiên. Phân cụm còn được gọi là học không giám sát (Unsupervised learning).
+ Mô tả khái niệm (Concept description and summarization): thiên về mô tả, tổng hợp
và tóm tắt khái niệm. Ví dụ: tóm tắt văn bản.
Trong các hướng tiếp cận trên thì Khai phá dữ liệu phát hiện luật kết hợp là một hướng
tiếp cận quan trọng trong KPDL nói chung (thậm chí có những chuyên gia đánh giá là
hướng tiếp cận quan trọng nhất), nó được ra đời và phát triển mạnh mẽ trong những năm
gần đây. Lần đầu tiên nó được các tác giả R. Agrawal, T. Imielinski và A. Swami đề xuất
năm 1993, sau đó ngày càng được nhóm tác giả và các nhà khoa học khác nghiên cứu phát
triển và hoàn thiện.

2.1.1. Định nghĩa luật kết hợp
2.1.1.1. Ví dụ về luật kết hợp
Ví dụ 1: “Tại siêu thị 10% giao dịch là khách hàng mua bia và lạc. Cũng để ý thấy
nếu một người mua bia thì chắc đến 70% rằng người đó sẽ mua thêm lạc.”


Khai phá dữ liệu phát hiện luật kết hợp và Ứng dụng đối với kho dữ liệu của ngân hàng
18
Ví dụ 2: “Tại quầy lưu niệm 12% giao dịch là khách hàng nam giới mua quà lưu niệm

và hoa để tặng bạn gái anh ta. Người bán hàng chắc đến 90% rằng nếu khách hàng là
nam giới mua quà lưu niệm mua cả hoa thì người được tặng là bạn gái anh ta.”
Ở đây vế trái (tiền đề - antecedent) của luật là “mua bia”, “nam giới, mua quà lưu
niệm và hoa”, còn “mua lạc” và “tặng bạn gái” là vế phải (mệnh đề kết luận -
consequent) của luật.
Các số 10%, 12% được gọi là độ hỗ trợ của luật (Support – số phần trăm các giao dịch
chứa cả về phải và vế trái của luật).
Các số 70%, 90% được gọi là độ tin cậy của luật (Confidence – số phần trăm giao dịch
thoả mãn vế trái thì cũng thoả mãn vế phải).
Chúng ta thấy rằng tri thức đem lại bởi những luật kết hợp ở dạng trên có sự khác biệt cơ
bản so với thông tin thu được từ các câu lệnh truy vấn dữ liệu thông thường. Đó thường là
những tri thức, những mối liên hệ chưa được biết trước và mang tính dự báo đang tiềm ẩn
trong dữ liệu. Những tri thức này không chỉ đơn giản là kết quả của các phép nhóm, tính
tổng hay sắp xếp mà là kết quả của quá trình tính toán phức tạp và tốn nhiều thời gian.

2.1.1.2. Các định nghĩa cơ bản
Cho tập các mục I = {i
1
, i
2
, …, i
n
} và tập các giao dịch T = {t
1
, t
2
, …, t
m
}. Trong đó
+ i

j
(j = 1 n) là một mục (item) hay một thuộc tính (property).
+ t
k
(k = 1 m) là một giao dịch (transaction) hay một bản ghi (record) được định danh
bởi TID (Transaction Identifier).
Cho δ là một quan hệ nhị phân trên I và T (δ: IxT => {0, 1}) sao cho nếu mục i xuất
hiện trong giao dịch t thì ta viết δ(i, t). Về ý nghĩa, một CSDL là một tập các giao dịch,
mỗi giao dịch t là một tập mục: t

2
I
(với 2
I
là tập các tập con của I).
Ví dụ: CSDL (dạng giao dịch) I = {A, B, C, D, T, W}, T = {1, 2, 3, 4, 5, 6} với thông
tin về giao dịch cho ở bảng sau:

Bảng 2.1: Ví dụ một CSDL giao dịch.

TID
Danh sách các mục
1
A
C

T
W
2


C
D

W
3
A
C

T
W
4
A
C
D

W
5
A
C
D
T
W
6

C
D
T




Khai phá dữ liệu phát hiện luật kết hợp và Ứng dụng đối với kho dữ liệu của ngân hàng
19


+ Độ hỗ trợ (Support): Cho tập mục (Itemset) X: X

I. Ta định nghĩa Độ hỗ trợ của
tập mục X trong CSDL D như sau:
%100*
||
|}:{|
)sup(
D
tXDt
X



Tuy nhiên khi xét trên 1 CSDL D cụ thể ta có thể bỏ qua |D| vì nó cố định và lúc này
có thể coi sup(X) = |{t

D: X

t}|.
+ Tập mục phổ biến (Frequent ItemSet): Tập mục X được gọi là tập mục phổ biến với
độ hỗ trợ minsup (minsup là giá trị cho trước được xác định bởi người sử dụng) nếu độ hỗ
trợ của nó lớn hơn hoặc bằng minsup: s(X)

minsup.
Bảng sau đây liệt kê các Tập mục phổ biến trong CSDL cho ở trên với minsup = 50%


Bảng 2.2: Ví dụ về các tập mục phổ biến.

Các tập mục phổ biến
Tần suất
Độ hỗ trợ
C
6
100%
W, CW
5
83%
A, D, T, AC, AW, CD, CT, ACW
4
67%
AT, DW, TW, ACT, ATW, CDW, CTW, ACTW
3
50%

+ Luật kết hợp (Association Rule): Luật kết hợp có dạng: r: X => Y (s, c), với X, Y là
các tập mục thoả mãn điều kiện X

Y = Ø, X là tiền đề, Y là kết quả của luật, s là độ hỗ trợ
(Support), c là độ tin cậy (Confidence) của luật trong đó:
+ s(r) = s(X => Y) = s(X

Y).
+ c(r) = c(X => Y) = s(X

Y) / s(X).


+ Luật kết hợp mạnh (Strong association rule): Luật kết hợp r được gọi là luật kết hợp
mạnh khi và chỉ khi nó thoả cả 2 điều kiện (minsup và minconf được cho trước):
+ s(r) = s(X

Y)

minsup.
+ c(r) = s(X

Y) / s(X)

minconf.

+ Bài toán khai phá luật kết hợp (ở dạng đơn giải nhất): Cho một CSDL D, độ hỗ trợ
tối thiểu minsup, độ tin cậy tối thiểu minconf. Hãy tìm kiếm tất cả các luật kết hợp r dạng
X => Y (s, c) thoả mãn cả 2 điều kiện:
+ s(r) = s(X

Y)

minsup.


Khai phá dữ liệu phát hiện luật kết hợp và Ứng dụng đối với kho dữ liệu của ngân hàng
20
+ c(r) = s(X

Y) / s(X)


minconf.

Hầu hết các thuật toán được đề xuất để khai phá luật kết hợp thường chia bài toán
thành 2 pha:
+ Pha 1: Tìm tất cả các tập mục phổ biến từ CSDL tức là tìm tất cả các tập mục X thoả
mãn s(X)

minsup. Đây là pha tốn khá nhiều thời gian của CPU và thời gian vào ra ổ đĩa.
+ Pha 2: Sinh các luật tin cậy từ các tập phổ biến đã tìm thấy ở pha 1. Pha này tương
đối đơn giản và tốn ít thời gian hơn so với pha trên. Nếu X là một tập mục phổ biến thì
luật kết hợp được sinh từ X có dạng r: X\Y => Y, với Y

X, Y

Ø và c(r)

minconf.
Ví dụ: Xét tập mục ACW trong Error! Reference source not found. có độ hỗ trợ s =
67% và với minconf = 70% thì ta có thể sinh các luật kết hợp sau đây:

Bảng 2.3: Các luật kết hợp được sinh từ tập mục phổ biến ACW.

Luật kết hợp
Thoả mãn minconf

70%
A
 
%100
CW


C

%67
AW
Không
W

%80
AC

AC
 
%100
W

AW
 
%100
C


1. Một số tính chất của tập mục phổ biến
+ Tính chất 1: Độ hỗ trợ của tập con.
Cho X, Y là các tập mục và X

Y thì sup(X)

sup(Y).
+ Tính chất 2: Một tập chứa tập không phổ biến thì nó cũng không phổ biến.

Cụ thể: Nếu X

Y và sup(X) < minsup thì sup(Y) < minsup.
+ Tính chất 3: Mọi tập con của một tập phổ biến cũng là tập phổ biến.
Cụ thể: Nếu X

Y và sup(Y) > minsup thì sup(X) > minsup.

2. Một số tính chất của luật kết hợp
+ Tính chất 1: Không hợp các luật kết hợp.
Giả sử có hai luật kết hợp mạnh X => Z và Y => Z thì X

Y => Z chưa chắc đã là
luật kết hợp mạnh. Tương tự nếu có X => Y và X => Z thì X => Y

Z chưa chắc mạnh.
Thật vậy xét: I = {x, y, z}, T = {xz, yz, xy, xyz}, minsup = 50%, minconf = 60%.
Dễ thấy x => z (50%, 67%), y => z (50%, 67%), x => y (50%, 67%) là mạnh.
Còn xy => z (25%, 50%) và x => yz (25%, 33%) không mạnh.


Khai phá dữ liệu phát hiện luật kết hợp và Ứng dụng đối với kho dữ liệu của ngân hàng
21

+ Tính chất 2: Không tách luật kết hợp.
Giả sử có luật kết hợp mạnh X

Y => Z thì X => Z và Y => Z chưa chắc đã là luật
kết hợp mạnh.
Thật vậy xét: I = {x, y, z, t}, T = {xt, yt, xyz}, minsup = 30%, minconf = 60%.

Dễ thấy xy => z (33%, 100%) là mạnh.
Còn x => z (33%, 50%) và y => z (33%, 50%) không mạnh.
Tuy nhiên nếu có luật kết hợp mạnh X => Y

Z thì X => Y và X => Z chắc chắn là
luật kết hợp mạnh.
Thật vậy ta chỉ cần chứng minh X => Y là luật kết hợp mạnh
<=> sup(X

Y)

minsup và sup(X

Y) / sup(X)

minconf. (*)
Xuất phát từ giả thiết: X => Y

Z là luật kết hợp mạnh nên
sup(X

Y

Z)

minsup và sup(X

Y

Z) / sup(X)


minconf
mà hiển nhiên sup(X

Y)

sup(X

Y

Z) nên (*) đã được chứng minh.
Tương tự X => Z cũng là luật kết hợp mạnh.

+ Tính chất 3: Các luật kết hợp không có tính chất bắc cầu.
Giả sử có các luật kết hợp mạnh X => Y và Y => Z thì X => Z chưa chắc đã là luật kết
hợp mạnh.
Thật vậy xét: I = {x, y, z}, T = {xy, yz}, minsup = 30%, minconf = 60%.
Dễ thấy x => y (50%, 100%) và y => z (50%, 100%) đều mạnh.
Còn x => z (0%, 0%) không mạnh.

+ Tính chất 4: Nếu luật A => (L \ A) không thoả mãn độ tin cậy cực tiểu (minconf) thì
luật B => (L \ B) cũng không thoả mãn, trong đó B

A

L, B

Ø.
Thật vậy conf(B => (L \ B)) = sup(L) / sup(B)


sup(L) / sup(A) < minconf.
Tương tự: Nếu luật (L \ C) => C là luật kết hợp mạnh thì luật (L \ D) => D cũng
mạnh, trong đó D

C

L, D

Ø.
Thật vậy conf((L \ D) => D) = sup(L) / sup(L \ D)

sup(L) / sup(L \ C)

minconf.
Và hiển nhiên theo giả thiết sup(L)

minsup nên (L \ D) => D là mạnh.

2.1.2. Luật kết hợp nhị phân
// Binary association rule or Boolean association rule.
Đối với các luật kết hợp này, các mục chỉ được quan tâm là có xuất hiện hay không
xuất hiện trong giao dịch chứ không quan tâm đến mức độ xuất hiện.
Ví dụ: “Mua bia => Mua lạc”, “Mua quà, Mua hoa => Tặng bạn gái”,


Khai phá dữ liệu phát hiện luật kết hợp và Ứng dụng đối với kho dữ liệu của ngân hàng
22
Đây là dạng luật kết hợp đơn giản nhất và điều đặc biệt là chúng ta có thể chuyển các
dạng luật khác về dạng luật này nhờ phương pháp rời rạc hoá.


2.1.3. Luật kết hợp định lượng
// Quantitative assosiation rule.
Đối với loại này, ta không chỉ quan tâm tới sự có mặt hay không của các mục trong
giao dịch mà còn quan tâm tới định lượng của từng mục trong luật.
Ví dụ: “Mua bia 2-5 chai => Mua lạc 5-10 gói”,
“Tuổi 20-30, Mua quà $5-$10, Mua hoa $3-$8 => Tặng bạn gái thân”,
Để phát hiện ra luật kết hợp định lượng ta phải thực hiện các bước sau:
+ Tiền xử lý: Thực hiện rời rạc hoá chuyển đổi các thuộc tính số và thuộc tính phân
loại thành các thuộc tính nhị phân để có thể sử dụng được các thuật toán khai phá luật kết
hợp nhị phân. Điểm quan trọng của bước này là phải xác định các khoảng thuộc tính số
sao cho phù hợp, bởi việc làm này ảnh hưởng tới quá trình khai phá dữ liệu. Có nhiều
công trình nghiên cứu và nhiều thuật toán để chia khoảng các thuộc tính số sao cho phù
hợp [004].
+ Khai phá: Thực hiện khai phá trên CSDL nhị phân.
+ Hậu xử lý: Chuyển các luật nhị phân sang các luật định lượng tương ứng với các
khoảng rời rạc hoá.

2.1.4. Luật kết hợp đơn chiều
// Single-dimension assiociation rule.
Đối với loại này, các luật chỉ tham chiếu đến 1 chiều hay 1 thuộc tính của dữ liệu.
Vì vậy nó còn có một tên khác là Intra-dimension association rule.
Ví dụ: “Mua bia => Mua lạc”, “Mua quà, Mua hoa => Mua thiếp”,
Ở đây chỉ đề cập tới 1 chiều đó là Mua và ta có thể viết lại luật dưới dạng sau:
Mua(X, “bia”) => Mua(X, “lạc”),
Mua(X, “quà”) ^ Mua(X, “hoa”) => Mua(X, “thiếp”),
Trong đó X là biến biểu diễn khách hàng.

2.1.5. Luật kết hợp đa chiều
// Multi-dimension assiociation rule.
Đối với loại này, các luật có thể tham chiếu đến nhiều hơn 1 chiều của dữ liệu.

Nó phản ánh mối quan hệ giữa nhiều chiều hay nhiều thuộc tính của dữ liệu.
Vì vậy nó còn có tên khác là Inter-dimension association rule.
Ví dụ: “Tuổi trung niên, Mua quà, Mua hoa => Tặng vợ”,


Khai phá dữ liệu phát hiện luật kết hợp và Ứng dụng đối với kho dữ liệu của ngân hàng
23
Ở đây ta đã đề cập tới Tuổi, Mua, và Tặng, ta có thể viết lại luật dưới dạng sau:
Tuổi(X, “trung niên”) ^ Mua(X, “quà”) ^ Mua(X, “hoa”) => Tặng(X, “vợ”),
Trong đó X là biến biểu diễn khách hàng.

2.1.6. Luật kết hợp đa mức
// Multi-level assiociation rule.
2.1.6.1. Giới thiệu
Đối với loại này, các luật dựa trên mức độ trừu tượng chứa trong luật.
Ví dụ: “Mua bia => Mua lạc” (R1),“Mua bia => Mua lạc rang” (R2),
Ở đây ta thấy “lạc rang” là một trường hợp cụ thể của “lạc” hay nói ngược lại “lạc” có
mức trừu tượng cao hơn “lạc rang”, do đó (R1) có mức độ trừu tượng cao hơn (R2).
Trong thực tế khó có thể tìm được luật kết hợp mạnh trong các mục dữ liệu ở mức trừu
tượng gốc, bởi tính thưa thớt của dữ liệu trong không gian đa chiều. Khai phá các luật kết
hợp mạnh ở mức khái niệm cao có thể mô tả tri thức có nghĩa phổ thông hơn. Tuy nhiên,
các luật tìm được có thể tầm thường với người này nhưng lại mới lạ, quan trọng đối với
người khác. Do vậy, các hệ thống khai phá dữ liệu nên cung cấp khả năng khai phá các
luật kết hợp ở nhiều mức trừu tượng khác nhau.
Ví dụ: Xét CSDL giao dịch sau:

Bảng 2.4: Ví dụ CSDL giao dịch bán hàng.

TID
Danh sách các mục bán

1
Máy tính để bàn IBM, Máy in HP màu.
2
Phần mềm bảng tính Excel, Hệ quản trị CSDL MySQL.
3
Chuột Mitsumi, Bàn phím Mitsumi.
4
Máy tính để bàn HP, Hệ quản trị CSDL MySQL.
5
Máy tính để bàn Fujitsu, Máy tính xách tay Toshiba.



Bảng trên cho biết các giao dịch của một cửa hàng bán máy tính: định danh giao dịch
TID và các mục bán được tương ứng. Khái niệm phân cấp cho các mục chỉ ra trong hình
sau (Theo chiều mũi tên, khi độ sâu tăng mức trừu tượng giảm dần):

×