Với mục tiêu đó, luận văn được trình bày trong 3 chương: Chương 1: Tổng quan về cơ sở dữ liệu và khai phá dữ liệu Chương 2: Phát hiện luật kết hợp Chương 3: Phát hiện luật kết hợp tron
Trang 1ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
VÀ TRUYỀN THÔNG
LÊ XUÂN LƯỢNG
PHÁT HIỆN LUẬT KẾT HỢP ỨNG DỤNG TRONG
CƠ SỞ DỮ LIỆU QUẢN LÝ SINH VIÊN
Chuyên nghành: Khoa học máy tính
Mã số: 60.48.01
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
Người hướng dẫn khoa học: TS Vũ Mạnh Xuân
THÁI NGUYÊN - 2011
Trang 2LỜI CAM ĐOAN
Tôi xin cam đoan toàn bộ nội dung trong Luận văn hoàn toàn theo đúng nội dung đề cương cũng như nội dung mà cán bộ hướng dẫn giao cho Nội dung luận văn, các phần trích lục các tài liệu hoàn toàn chính xác Nếu có sai sót tôi hoàn toàn chịu trách nhiệm
Tác giả luận văn
Trang 3MỤC LỤC
Lời cam đoan i
Mục lục ii
Danh mục các chữ viết tắt iv
Danh mục các bảng v
Danh mục các hình vẽ vi
MỞ ĐẦU 1
Chương 1 TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU VÀ KHAI PHÁ DỮ LIỆU 3
1.1 Một số khái niệm về cơ sở dữ liệu 3
1.1.1 Cơ sở dữ liệu 3
1.1.2 Hệ quản trị cơ sở dữ liệu 4
1.2 Tổ chức và khai thác cơ sở dữ liệu truyền thống 5
1.3 Kho dữ liệu 6
1.3.1 Đinh nghĩa kho dữ liệu 6
1.3.2 Cấu trúc của kho dữ liệu 7
1.3.3 Mục đích của việc xây dựng kho dữ liệu 9
1.4 Khai phá dữ liệu 11
1.4.1 Khái niệm 11
1.4.2 Các bước của quá trình phát hiện tri thức 11
1.4.3 Một số phương pháp khai phá dữ liệu 13
1.4.3.1 Phương pháp suy diễn và quy nạp 13
1.4.3.2 Cây quyết định và luật 14
1.4.3.3 Phân nhóm và phân đoạn 16
1.4.3.4 Phương pháp ứng dụng K-láng giềng gần 16
1.4.3.5 Các phương pháp dựa trên mẫu 17
1.4.3.6 Phát hiện các luật kết hợp 17
Trang 41.4.4 Nhiệm vụ chính của khai phá dữ liệu 19
1.4.5 Những khó khăn trong nghiên cứu khai phá dữ liệu 21
1.4.6 Một số ứng dụng khai phá dữ liệu 24
Chương 2.PHÁT HIỆN LUẬT KẾT HỢP 25
2.1 Các khái niệm và tính chất của luật kết hợp 25
2.1.1 Một số khái niệm 25
2.1.2 Thuật toán cơ bản 28
2.1.3 Tính chất của luật kết hợp và tập mục phổ biến 32
2.1.4 Một số hướng tiếp cận trong khai phá luật kết hợp 33
2.2 Một số thuật toán phát hiện luật kết hợp 35
2.2.1 Thuật toán AIS 35
2.2.2 Thuật toán SETM 36
2.2.3 Thuật toán Apriori 38
2.2.4 Thuật toán Apriori-TID 44
2.2.5 Thuật toán Apriori-Hybrid 46
2.2.6 Thuật toán PARTITION 47
2.2.7 Sinh các luật kết hợp từ tập mục phổ biến 48
Chương 3. ỨNG DỤNG PHÁT HIỆN LUẬT KẾT HỢP KHAI PHÁ DỮ LIỆU QUẢN LÝ SINH VIÊN 52
3.1 Đặt vấn đề 52
3.2 Xây dựng chương trình demo thuật toán Apriori ứng dụng phát hiện luận kết hợp trong CSDL quản lý sinh viên 54
3.2.1 Các bước tiến hành khai phá dữ liệu quản lý sinh viên 54
3.2.2 Xây dựng bảng cơ sở dữ liệu để khai phá 54
3.2.3 Chương trình demo 57
3.2.4 Một số kết quả thử nghiệm 58
KẾT LUẬN 64
TÀI LIỆU THAM KHẢO 65
Trang 5DANH MỤC CÁC CHỮ VIẾT TẮT
supp: Độ hỗ trợ (support)
conf: Độ tin cậy (confidence)
minsup: Ngưỡng độ hỗ trợ tối thiểu
mincof: Ngưỡng độ tin cậy tối thiểu
SQL: Structured Query Language
KDD: Kownledge Discovery in Database
FI: Frenquent Itemset
MFI: Maximally Frequent Itemset
CSDL: Cơ sở dữ liệu
Trang 6DANH MỤC CÁC BẢNG
Bảng 2.1 Giao dịch mua hàng 30
Bảng 2.2 Tính độ hỗ trợ cho các tập hợp chứa các mặt hàng 30
Bảng 2.3 Các luật kết hợp và độ tin cậy của chúng 31
Bảng 2.4 Ma trận biểu diễn cơ sở dữ liệu 43
Bảng 2.5 Vector biểu diễn nhị phân cho tập 1 thuộc tính 43
Bảng 2.6 Vector biểu diễn nhị phân cho các tập 2 thuộc tính 43
Bảng 2.7 Vector biểu diễn nhị phân cho các tập 3 thuộc tính 44
Bảng 2.8 Vector biểu diễn nhị phân cho các tập 4 thuộc tính 44
Trang 7DANH MỤC CÁC HÌNH VẼ
Hình 1.1 Cấu trúc kho dữ liệu 8
Hình 1.2 Quy trình phát hiện tri thức 12
Hình 1.3 Mẫu kết quả với phương pháp cây quyết định 15
Hình 3.1 Sơ đồ khai phá dữ liệu quản lý sinh viên 54
Hình 3.2 Bảng cơ sở dữ liệu khai phá 56
Hinh 3.3 Giao diện chính của chương trình demo 57
Hình 3.4 Giao diện “Thao tác với CSDL” 58
Hình 3.5 Kết quả khai phá lần thứ 1 59
Hình 3.6 Kết quả thử nghiệm lần thứ 2 60
Hình 3.7 Kết quả thử nghiệm lần thứ 3 61
Trang 8dữ liệu (Data mining) đã trở thành một trong những hướng nghiên cứu lớn nhất của lĩnh vực khoa học máy tính và công nghệ thông tin Khai phá dữ liệu đang được áp dụng một cách rộng rãi trong nhiều lĩnh vực kinh doanh và đời sống khác nhau: marketing, tài chính, ngân hàng và bảo hiểm, khoa học, y tế,
an ninh, internet…
Việc khai phá dữ liệu từ kho dữ liệu có nhiều hướng tiếp cận Các bài toán chủ yếu trong khai thác dữ liệu là: Khai thác chuỗi, khai thác web, đặc biệt là việc phát hiện luật kết hợp (association rules mining) và việc gom cụm (clustering), phân lớp (classification) dữ liệu, Trong đó, phát hiện luật kết hợp là một trong những nội dung quan trọng của khai phá dữ liệu và là một lĩnh vực nghiên cứu nhiều triển vọng với khả năng ứng dụng cao vào thực tế
Vì tất cả nhưng lí do trên mà tôi đã chọn đề tài luận văn: “Phát hiện luật
kết hợp ứng dụng trong cơ sở dữ liệu quản lý sinh viên” làm chủ đề nghiên
Trang 9Với mục tiêu đó, luận văn được trình bày trong 3 chương:
Chương 1: Tổng quan về cơ sở dữ liệu và khai phá dữ liệu
Chương 2: Phát hiện luật kết hợp
Chương 3: Phát hiện luật kết hợp trong cơ sở dữ liệu quản lý sinh viên
Ngoài phần tổng hợp những kiến thức về khai phá dữ liệu, các thuật toán phát hiện luật kết hợp, luận văn cũng đã trình bày kết quả thử nghiệm qua một bài toán cụ thể để minh họa
Để có được kết quả này tôi đã nhận được sự quan tâm, động viên, giúp
đỡ rất nhiều của các Thầy giáo, Cô giáo trong Khoa Công nghệ thông tin - Đại học Thái Nguyên cũng như của bạn bè, đồng nghiệp, đặc biệt là sự chỉ
bảo tận tình của TS Vũ Mạnh Xuân và sự nỗ lực của bản thân, đến nay tôi
đã hoàn thành đề tài
Tuy nhiên trong quá trình làm việc, mặc dù đã cố gắng, nỗ lực hết sức nhưng không thể tránh khỏi thiếu sót, em kính mong nhận được sự chỉ bảo của các thầy cô để đề tài được hoàn thiện hơn
Tôi xin chân thành cảm ơn !
Thái Nguyên, ngày 29 tháng 09 năm 2011
Học viên
Lê Xuân Lượng
Trang 10Chương 1 TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU VÀ KHAI PHÁ DỮ LIỆU
Chương này trình bày những nét khái quát về cơ sở dữ liệu, kho dữ liệu
và một số phương pháp khai phá dữ liệu
1.1 Một số khái niệm về cơ sở dữ liệu (CSDL)
1.1.1 Cơ sở dữ liệu
Cơ sở dữ liệu (Database) là một hệ thống các thông tin có cấu trúc được lưu trữ trên các thiết bị lưu trữ thông tin thứ cấp (như băng từ, đĩa từ ) để có thể thỏa mãn yêu cầu khai thác thông tin đồng thời của nhiều người sử dụng hay nhiều chương trình ứng dụng với nhiều mục đích khác nhau
Như vậy đặc trưng của cơ sở dữ liệu là:
- Giảm sự trùng lặp thông tin xuống mức thấp nhất và do đó bảo đảm được tính nhất quán và toàn vẹn dữ liệu
- Đảm bảo dữ liệu có thể được truy xuất theo nhiều cách khác nhau
- Khả năng chia sẻ thông tin cho nhiều người sử dụng và nhiều ứng dụng khác nhau
Các loại cơ sở dữ liệu [2]
- Cơ sở dữ liệu dạng file: dữ liệu được lưu trữ dưới dạng các file có thể
là text, ascii, *.dbf Tiêu biểu cho cơ sở dữ liệu dạng file là *.mbd Foxpro
- Cơ sở dữ liệu quan hệ: dữ liệu được lưu trữ trong các bảng dữ liệu gọi là các thực thể, giữa các thực thể này có mối liên hệ với nhau gọi là các quan hệ, mỗi quan hệ có các thuộc tính, trong đó có một thuộc tính là khóa chính Các hệ quản trị hỗ trợ cơ sở dữ liệu quan hệ như: MS SQL server, Oracle, MySQL
- Cơ sở dữ liệu hướng đối tượng: dữ liệu cũng được lưu trữ trong các bản dữ liệu nhưng các bảng có bổ sung thêm các tính năng hướng đối tượng như lưu trữ thêm các hành vi, nhằm thể hiện hành vi của đối tượng Mỗi bảng
Trang 11xem như một lớp dữ liệu, một dòng dữ liệu trong bảng là một đối tượng Các hệ quản trị có hỗ trợ cơ sở dữ liệu quan hệ như: MS SQL server, Oracle, Postgres
- Cơ sở dữ liệu bán cấu trúc: dữ liệu được lưu dưới dạng XML, với định dạng này thông tin mô tả về đối tượng thể hiện trong các tag Đây là cơ sở dữ liệu có nhiều ưu điểm do lưu trữ được hầu hết các loại dữ liệu khác nhau nên cơ
sở dữ liệu bán cấu trúc là hướng mới trong nghiên cứu và ứng dụng
Với sự giúp sức của công nghệ thông tin và truyền thông còn người đã tạo ra những hệ thống thông tin được tổ chức dưới dạng CSDL ở tất cả các ngành nghề lĩnh vực trong xã hội, phục vụ nhiều mục đích khác nhau như: Hệ thống thông tin địa lý GIS, hệ thống thông tin tài chính, ngân hàng, quản lý kinh doanh, quản lý điều hành… Các thông tin có tổ chức này được quản lý, khai thác qua một hệ thống phần mềm khai thác hoặc Hệ quản trị cơ sở dữ liệu
1.1.2 Hệ quản trị cơ sở dữ liệu
Hệ quản trị cơ sở dữ liệu (Database Management System): là phần mềm hay hệ thống được thiết kế để quản trị một cơ sở dữ liệu Cụ thể, các chương trình thuộc loại này hỗ trợ khả năng lưu trữ, sửa chữa, xóa và tìm kiếm thông tin trong một cơ sở dữ liệu (CSDL) Có rất nhiều loại hệ quản trị CSDL khác nhau: từ phần mềm nhỏ chạy trên máy tính cá nhân cho đến những hệ quản trị phức tạp chạy trên một hoặc nhiều siêu máy tính
Qua nhiều năm phát triển, hệ quản trị CSDL ngày nay rất phong phú và
đa dạng được xây dựng trên các mô hình dữ liệu khác nhau như:
- Mô hình cơ sở dữ liệu quan hệ
- Mô hình CSDL phân tán
- Mô hình CSDL hướng đối tượng
- Mô hình CSDL suy diễn…
Tuy nhiên, đa số hệ quản trị CSDL trên thị trường đều có một đặc điểm
chung là sử dụng ngôn ngữ truy vấn theo cấu trúc mà tiếng Anh gọi là Structured
Trang 12Query Language (SQL) Các hệ quản trị CSDL phổ biến được nhiều người biết
đến là MySQL, Oracle, PostgreSQL, SQL Server, DB2, Infomix, Phần lớn các hệ quản trị CSDL kể trên hoạt động tốt trên nhiều hệ điều hành khác nhau như Linux, Unix và MacOS ngoại trừ SQL Server của Microsoft chỉ chạy trên
hệ điều hành Windows
1.2 Tổ chức và khai thác cơ sở dữ liệu truyền thống
Việc dùng các phương tiện tin học để tổ chức và khai thác các cơ sở dữ liệu đã được phát triển từ những năm 60 Từ đó cho đến nay, rất nhiều cơ sở
dữ liệu đã được tổ chức, phát triển và khai thác ở mọi quy mô và ở khắp các lĩnh vực hoạt động của con người và xã hội Theo như đánh giá cho thấy, lượng thông tin trên thế giới cứ sau 20 tháng lại tăng gấp đôi Kích thước và
số lượng cơ sở dữ liệu thậm chí còn tăng nhanh hơn Năm 1989, tổng số cơ sở
dữ liệu trên thế giới vào khoảng 5 triệu, hầu hết đều là các cơ sở dữ liệu cỡ nhỏ được phát triển trên DBaseIII Với sự phát triển mạnh mẽ của công nghệ điện tử tạo ra các bộ nhớ có dung lượng lớn, bộ xử lý tốc độ cao cùng với các
hệ thống mạng viễn thông, người ta đã xây dựng các hệ thống thông tin nhằm
tự động hóa mọi hoạt động kinh doanh của mình Điều này đã tạo ra một dòng
dữ liệu tăng lên không ngừng vì ngay từ các giao dịch đơn giản nhất như một cuộc gọi điện thoại, kiểm tra sức khỏe, sử dụng thẻ tín dụng,… đều được ghi vào trong máy tính Cho đến nay, con số ày đã trở nên khổng lồ, bao gồm các
cơ sở dữ liệu cực lớn cỡ gigabytes và thậm chí terabytes lưu trữ các dữ liệu kinh doanh, ví dụ như dữ liệu thông tin khách hàng, dữ liệu lịch sử các giao dịch, dữ liệu bán hàng, dữ liệu các tài khoản, các khoản vay, sử dụng vốn,… Nhiều hệ quản trị cơ sở dữ liệu mạnh với các công cụ phong phú và thuận tiện
đã giúp con người khai thác có hiệu quả các nguồn tài nguyên dữ liệu Mô hình cơ sở dữ liệu quan hệ và ngôn ngữ vấn đáp chuẩn (SQL) đã có vai trò hết sức quan trọng trong việc tổ chức và khai thác các cơ sở dữ liệu đó Cho đến
Trang 13nay, không một tổ chức nào là không sử dụng các hệ quản trị cơ sở dữ liệu và các hệ công cụ báo cáo, ngôn ngữ hỏi đáp nhằm khai thác các cơ sở dữ liệu
phục vụ cho hoạt động tác nghiệp của mình
1.3 Kho dữ liệu (data warehouse)
Cùng với việc tăng không ngừng khối lượng dữ liệu, các hệ thống thông tin cũng được chuyên môn hóa, phân chia theo các lĩnh vực ứng dụng như: Quản lý, sản xuất, tài chính, buôn bán thị trường, Như vậy, bên cạnh chức năng khai thác dữ liệu có tính chất tác nghiệp, sự thành công trong mọi lĩnh vực không còn là năng suất của các hệ thống thông tin nữa mà là tính linh hoạt và sẵn sàng đáp lại những yêu cầu trong thực tế, CSDL cần đem lại những “tri thức” hơn là chính những dữ liệu đó Các quyết định cần phải có càng nhanh càng tốt và phải chính xác dựa trên những dữ liệu sẵn có trong khi khối lượng dữ liệu cứ sau 20 tháng lại tăng gấp đôi làm ảnh hưởng đến thời gian ra quyết định cũng như khả năng hiểu hết được nội dung dữ liệu Lúc này các mô hình CSDL truyền thống và ngôn ngữ SQL đã cho thấy không có khả năng thực hiện công việc này Để lấy được những thông tin có tính “tri thức” trong khối dữ liệu khổng lồ này, người ta đã đi tìm những kỹ thuật có khả năng hợp nhất các dữ liệu từ các hệ thống giao dịch khác nhau, chuyển đổi thành một tập hợp các cơ sở dữ liệu ổn định, có chất lượng, chỉ được sử dụng riêng cho một vài mục đích nào đó Các kỹ thuật đó được gọi chung là
kỹ thuật tạo kho dữ liệu (data warehousing) và môi trường các dữ liệu đó được gọi là các kho dữ liệu
1.3.1 Đinh nghĩa kho dữ liệu
Kho dữ liệu là một môi trường có cấu trúc các hệ thống thông tin, cung cấp cho người dùng các thông tin khó có thể truy nhập hoặc biểu diễn trong các CSDL tác nghiệp truyền thống, nhằm mục đích hỗ trợ việc ra quyết định
Trang 14mang tính lịch sử hoặc hiện tại Theo W.H.Inmon, có thể định nghĩa kho dữ
liệu như sau: “Một kho dữ liệu là một tập hợp dữ liệu tích hợp hướng chủ đề
có tính ổn định, thay đổi theo thời gian nhằm hỗ trợ cho việc ra quyết định Nói cách khác, một kho dữ liệu bao gồm:
- Một hoặc nhiều công cụ để chiết xuất dữ liệu từ bất kỳ dạng cấu trúc
- Nội dung của nó được cập nhật thường xuyên theo cách thêm thông tin
- Chứa các dữ liệu lịch sử và hiện tại để cung cấp các xu hướng thông tin
- Chứa các bảng dữ liệu có kích thước lớn
- Một câu hỏi thường trả về một tập kết quả liên quan đến toàn bộ bảng
và các liên kết nhiều bảng
1.3.2 Cấu trúc của kho dữ liệu
Cấu trúc kho dữ liệu được xây dựng dựa trên hệ quản trị CSDL quan
hệ, có chức năng giống như một kho lưu trữ thông tin trung tâm Trong đó, dữ liệu tác nghiệp và phần xử lý được tách riêng khỏi quá trình xử lý kho dữ liệu Kho lưu trữ trung tâm được bao quanh bởi các thành phần được thiết kế để làm cho kho dữ liệu có thể hoạt động, quản lý và truy nhập được từ người dùng đầu cuối cũng như từ các nguồn dữ liệu [10]
Trang 15Hình 1.1 Cấu trúc kho dữ liệu
Như trên Hình 1.1 cho thấy, kho dữ liệu bao gồm 7 thành phần:
- Dữ liệu nguồn (là các ứng dụng tác nghiệp hoặc các kho dữ liệu tác nghiệp) và các công cụ chiết xuất, làm sạch và chuyển đổi dữ liệu
- Kho dữ liệu về dữ liệu (MetaData)
- Các kỹ thuật xây kho
- Kho dữ liệu thông minh hay dữ liệu theo chủ đề (Data marts): là nơi các dữ liệu được khoanh vùng theo chủ đề đến một giới hạn nào đó và có thể được thay đổi cho phù hợp với nhu cầu của từng bộ phận người dùng Với các kho dữ liệu này, cũng có thể xây dựng một kho dữ liệu theo cách tiếp cận
từng giai đoạn kế tiếp, nghĩa là với một tập hợp các kho dữ liệu thông minh,
ta tạo ra một kho dữ liệu; ngược lại, một kho dữ liệu có thể được phân tích thành nhiều kho dữ liệu thông minh
Data Mart
Hệ thống phân phối thông tin
Các công cụ hỏi đáp, báo cáo
Các công cụ OLAP
Các công cụ khai phá dữ liệu
Dữ liệu
nguồn
Trang 16- Các công cụ vấn đáp (query), báo cáo (reporting), phân tích trực tiếp (OLAP) và khai phá dữ liệu (data mining) Đây chính là các cách khai thác kho dữ liệu để đem lại những “tri thức” hơn là đem lại chính những dữ liệu thô Điểm mạnh và yếu của các kỹ thuật này ta sẽ phân tích kỹ hơn ở những phần sau
- Quản trị kho dữ liệu
- Hệ thống phân phối thông tin
1.3.3 Mục đích của việc xây dựng kho dữ liệu
Mục tiêu chính của kho dữ liệu nhằm đáp ứng các tiêu chuẩn cơ bản:
- Phải có khả năng đáp ứng mọi yêu cầu về thông tin của người sử dụng
- Hỗ trợ để các nhân viên của tổ chức thực hiện tốt, hiệu quả công việc của mình, ví dự như: có những quyết định hợp lý, nhanh và bán được nhiều hàng hơn, năng suất cao hơn, thu được lợi nhuận cao hơn,…
- Giúp cho tổ chức xác đinh, quản lý và điều hành các dự án, các nghiệp
vụ một các hiệu quả và chính xác
- Tích hợp dữ liệu và siêu dữ liệu từ nhiều nguồn khác nhau
Muốn đạt được những yêu cầu trên thì kho dữ liệu phải:
- Tăng chất lượng dữ liệu bằng các phương pháp làm sạch và tinh lọc
- Tổng hợp và kết nối dữ liệu
- Đồng bộ hoá các nguồn dữ liệu với kho dữ liệu
- Phân định và đồng nhất các hệ quản trị CSDL tác nghiệp như là các công
cụ chuẩn để phục vụ cho kho dữ liệu
- Quản lí siêu dữ liệu (metadata)
- Cung cấp thông tin tích hợp, tóm tắt hoặc được liên kết, tổ chức theo các chủ đề
Một số lợi ích của việc xây dựng kho dữ liệu trong nhiều lĩnh vực có
thể kể đến như sau:
Trang 17* Đối với quản lý nhà nước:
- Giúp các nhà lãnh đạo đưa ra những quyết định mang tính chiến lược
để phát triển kinh tế xã hội
- Giúp người lãnh đạo quản lý, chỉ đạo một cách chính xác và kịp thời
- Định hướng phát triển kinh tế xã hội mang tính chiến lược
* Đối với doanh nghiệp:
- Lợi ích tiềm ẩn trong đầu tư
- Lợi nhuận trong cạnh tranh
- Tăng tính hiệu quả trong việc đưa ra quyết định đầu tư tài chính
* Đối với nghiên cứu khoa học:
Tìm ra các quy luật tự nhiên, vật lý, sinh học, tội phạm học từ những
dữ liệu thống kê, thu thập qua điều tra khảo sát
* Đối với việc đào tạo và phát triển nguồn nhân lực:
- Tìm ra su hướng phát triển của tương lại
- Tìm ra nhu cầu của việc học tập, sở trường của từng học viên để có kế hoạch, chiến lược bố trí giảng viên, tổ chức lớp học,
- Định hướng đào tạo
Tuy nhiên kho dữ liệu mới chỉ là cách khai thác với kỹ thuật cao để đưa
ra các dữ liệu tinh và chính xác hơn chứ chưa đưa ra được dữ liệu “tri thức”
Hơn nữa, kích thước quá lớn và tính chất phức tạp của kho dữ liệu làm cho nó
rất khó có thể được sử dụng cho những mục đích như đưa ra các giả tuyết từ các thông tin mà chương trình ứng dụng cung cấp
Trước đây, kỹ thuật học máy thường được sử dụng để tìm ra những giả thuyết từ các thông tin dữ liệu thu thập được Tuy nhiên, thực nghiệm cho thấy chúng thể hiện khả năng rất kém khi áp dụng với các tập dữ liệu lớn
trong kho dữ liệu này Phương pháp thống kê tuy ra đời đã lâu nhưng không
có gì cải tiến để phù hợp với sự phát triển của dữ liệu Đây chính là lý do tại
Trang 18sao một khối lượng lớn dữ liệu vẫn chưa được khai thác và thậm chí được lưu
trữ chủ yếu trong các kho dữ liệu không trực tuyến (off-line) Điều này tạo
nên một lỗ hổng lớn trong việc hỗ trợ phân tích và tìm hiểu dữ liệu, tạo ra khoảng cách giữa việc tạo ra dữ liệu và việc khai thác các dữ liệu đó.Trong khi đó, càng ngày người ta càng nhận thấy rằng, nếu được phân tích thông minh thì dữ liệu sẽ là một nguồn tài nguyên quý giá trong cạnh tranh trên thương trường
Giới tin học đã đáp ứng lại những thách thức trong thực tiễn cũng như trong nghiên cứu khoa học bằng cách đã đưa ra một phương pháp mới đáp ứng cả nhu cầu trong khoa học cũng như trong hoạt động thực tiễn Đó chính
là công nghệ Khai phá dữ liệu (data mining)
1.4 Khai phá dữ liệu
1.4.1 Khái niệm
Khai phá dữ liệu là một khái niệm ra đời vào những năn cuối của thập
kỷ 80 Nó bao hàm một loạt các kỹ thuật nhằm phát hiện ra các thông tin có giá trị tiềm ẩn trong các tập dữ liệu lớn (các kho dữ liệu) Về bản chất, khai phá dữ liệu liên quan đến việc phân tích các dữ liệu và sử dụng các kỹ thuật
để tìm ra các mẫu hình có tính chính quy (regularities) trong tập dữ liệu
Năm 1989, Fayyad, Piatestsky-Shapiro và Smyth đã dùng khái niệm
Phát hiện tri thức trong cơ sở dữ liệu (Kownledge Discovery in Database -
KDD) để chỉ toàn bộ quá trình phát hiện các tri thức có ích từ các tập dữ liệu
lớn Trong đó, khai phá dữ liệu là một bước đặc biệt trong toàn bộ quá trình,
sử dụng các giải thuật đặc biệt để chiết xuất ra các mẫu (pattern) (hay các mô hình) từ dữ liệu
1.4.2 Các bước của quá trình phát hiện tri thức (KDD)
Quy trình phát hiện tri thức thường tuân theo các bước sau: [4]
Bước thứ nhất: Hình thành và xác định bài toán Bước này tìm hiểu
lĩnh vực ứng dụng từ đó hình thành bài toán, xác định các nhiệm vụ cần phải
Trang 19hoàn thành Điều này sẽ quyết định cho việc rút ra được các tri thức hữu ích
và cho phép chọn các phương pháp khai phá dữ liệu thích hợp với mục đích ứng dụng và bản chất của dữ liệu
Bước thứ hai: Thu thập và tiền xử lý dữ liệu: Tiến hành thu thập và xử
lý thô, còn được gọi là tiền xử lý dữ liệu nhằm loại bỏ nhiễu (làm sạch dữ liệu), xử lý việc thiếu dữ liệu (làm giàu dữ liệu), biến đổi dữ liệu và rút gọn
dữ liệu nếu cần thiết, bước này thường chiếm nhiều thời gian nhất trong toàn
bộ qui trình phát hiện tri thức do dữ liệu được lấy từ nhiều nguồn khác nhau, không đồng nhất… có thể gây ra các nhầm lẫn Sau bước này, dữ liệu sẽ nhất quán, đầy đủ, được rút gọn và rời rạc hoá
Hình 1.2 Quy trình phát hiện tri thức
Bước thứ ba: Khai phá dữ liệu, rút ra các tri thức: Trích ra các mẫu
hoặc/ và các mô hình ẩn dưới các dữ liệu Giai đoạn này rất quan trọng, bao gồm các công đoạn như: chức năng, nhiệm vụ và mục đích của khai phá dữ liệu, dùng phương pháp khai phá nào? Thông thường, các bài toán khai phá
dữ liệu bao gồm: các bài toán mang tính mô tả - đưa ra tính chất chung nhất của dữ liệu, các bài toán dự báo - bao gồm cả việc phát hiện các suy diễn dựa
Hình thành và Định nghĩa bài toán
Thu thập và Tiền xử lý dữ liệu
Khai phá dữ liệu Rút ra các tri thức
Phân tích và kiểm định
kết quả
Sử dụng các tri thức phát hiện đƣợc
Trang 20trên dữ liệu hiện có Tuỳ theo bài toán xác định được mà ta lựa chọn các phương pháp khai phá dữ liệu cho phù hợp
Bước thứ tư: Sử dụng các tri thức phát hiện được, đặc biệt là làm sáng
tỏ các mô tả và dự đoán
Các bước trên có thể lặp đi lặp lại một số lần, kết quả thu được có thể được lấy trung bình trên tất cả các lần thực hiện Các kết quả của quá trình phát hiện tri thức có thể được đưa và ứng dụng trong các lĩnh vực khác nhau
Do các kết quả có thể là các dự đoán hoặc các mô tả nên chúng có thể được đưa vào các hệ thống hỗ trợ ra quyết định nhằm tự động hoá quá trình này
Tóm lại: KDD là một quá trình kết xuất ra tri thức từ kho dữ liệu mà
trong đó khai phá dữ liệu là công đoạn quan trọng nhất
1.4.3 Một số phương pháp khai phá dữ liệu [4]
Khai phá dữ liệu là lĩnh vực mà con người luôn tìm cách đạt được mục đích sử dụng thông tin của mình Quá trình khai phá dữ liệu là quá trình phát hiện mẫu, trong đó phương pháp khai phá dữ liệu để tìm kiếm các mẫu đáng quan tâm theo dạng xác định Có thể kể ra đây một vài phương pháp như:
Sử dụng công cụ truy vấn, xây dựng cây quyết định, dựa theo khoảng cách (K-láng giềng gần), giá trị trung bình, phát hiện luật kết hợp,… Các phương pháp trên có thể được phỏng theo và được tích hợp vào các hệ thống lai để khai phá dữ liệu theo thống kê trong nhiều năm nghiên cứu Tuy nhiên, với dữ liệu rất lớn trong kho dữ liệu thì các phương pháp này cũng đối diện với thách thức về mặt hiệu quả và quy mô
1.4.3.1 Phương pháp suy diễn và quy nạp
Một cơ sở dữ liệu là một kho thông tin nhưng các thông tin quan trọng hơn cũng có thể được suy diễn từ kho thông tin đó Có hai kỹ thuật chính để thực hiện việc này là suy diễn và quy nạp
Trang 21- Phương pháp suy diễn: Nhằm rút ra thông tin là kết quả logic của các
thông tin trong cơ sở dữ liệu Ví dụ như toán tử liên kết áp dụng cho bảng quan hệ, bảng đầu chứa thông tin về các nhân viên và phòng ban, bảng thứ hai chứa các thông tin về các phòng ban và các trưởng phòng Như vậy sẽ suy ra được mối quan hệ giữa các nhân viên và các trưởng phòng Phương pháp suy diễn dựa trên các sự kiện chính xác để suy ra các tri thức mới từ các thông tin
cũ Mẫu chiết xuất được bằng cách sử dụng phương pháp này thường là các luật suy diễn Với tập dữ liệu khách hàng vay vốn ở trên, ta có mẫu chiết xuất
được với ngưỡng thu nhập t là một luật như sau: “Nếu thu nhập của khách
hàng lớn hơn t đồng thì khách hàng có khả năng trả nợ”
- Phương pháp quy nạp: phương pháp quy nạp suy ra các thông tin
được sinh ra từ cơ sở dữ liệu Có nghĩa là nó tự tìm kiếm, tạo mẫu và sinh ra tri thức chứ không phải bắt đầu với các tri thức đã biết trước Các thông tin
mà phương pháp này đem lại là các thông tin hay các tri thức cấp cao diễn tả
về các đối tượng trong cơ sở dữ liệu Phương pháp này liên quan đến việc tìm kiếm các mẫu trong CSDL
Trong khai phá dữ liệu, quy nạp được sử dụng trong cây quyết định và tạo luật
1.4.3.2 Cây quyết định và luật
- Cây quyết định: Cây quyết định là một mô tả tri thức dạng đơn giản
nhằm phân các đối tượng dữ liệu thành một số lớp nhất định Các nút của cây được gán nhãn là tên các thuộc tính, các cạnh được gán các giá trị có thể của các thuộc tính, các lá mô tả các lớp khác nhau Các đối tượng được phân lớp theo các đường đi trên cây, qua các cạnh tương ứng với các giá trị của thuộc
tính của đối tượng tới lá Hình 1.3 mô tả một mẫu đầu ra có thể của quá trình
khai phá dữ liệu dùng phương pháp cây quyết định với tập dữ liệu khách hàng xin vay vốn
Trang 22Hình 1.3 Mẫu kết quả với phương pháp cây quyết định
- Tạo luật: Các luật được tạo ra nhằm suy diễn một số mẫu dữ liệu có ý
nghĩa về mặt thống kê Các luật có dạng nếu P thì Q, với P là mệnh đề đúng
với một phần trong CSDL, Q là mệnh đề dự đoán Ví dụ ta có một mẫu phát hiện được bằng phương pháp tạo luật: nếu giá 1 sản phẩm thấp hơn giá của một sản phẩm khác cùng loại 5000 đồng thì số lượng sản phẩm đó bán ra sẽ tăng 5% so với sản phẩm cùng loại Những luật như thế này được sử dụng rất rộng rãi trong việc mô tả tri thức trong hệ chuyên gia Chúng có thuận lợi là
dễ hiểu đối với người sử dụng
Cây quyết định và luật có ưu điểm là hình thức mô tả đơn giản, mô hình suy diễn khá dễ hiểu đối với người sử dụng Tuy nhiên, giới hạn của nó
là mô tả cây và luật chỉ có thể biểu diễn được một số dạng chức năng và vì vậy giới hạn về cả độ chính xác của mô hình
Đối với quy mô lớn, người ta dựa trên các phương pháp đánh giá mô hình theo xác suất với các mức độ mô hình phức tạp khác nhau Các phương pháp tìm kiếm “tham lam”, liên quan đến việc tăng và rút gọn các luật và các cấu trúc cây, chủ yếu được sử dụng để khai thác không gian siêu mũ (super-exponential space) của các mô hình Cây và luật chủ yếu được sử dụng cho việc mô hình hóa dự đoán, phân lớp (Apte & Hong; Fayyad, Djorgovski, & Wei) và hồi quy Chúng cũng có thể được áp dụng cho việc tóm tắt và mô hình hóa các mô tả (Agrawal et al.)
Không cho vay
Cho vay
Không cho vay
Nợ < n Nợ > n
Thu nhập < t Thu nhập > t
Trang 231.4.3.3 Phân nhóm và phân đoạn
Kỹ thuật phân nhóm và phân đoạn là những kỹ thuật phân chia dữ liệu sao cho mỗi phần hoặc mỗi nhóm giống nhau theo một tiêu chuẩn nào đó Mối quan hệ thành viên của các nhóm có thể dựa trên mức độ giống nhau của các thành viên và từ đó xây dựng nên các luật ràng buộc giữa các thành viên trong nhóm Một kỹ thuật phân nhóm khác là xây dựng nên các hàm đánh giá các thuộc tính của các thành phần như là hàm của các tham số của các thành phần Phương pháp này được gọi là phương pháp phân hoạch tối ưu (optimal partitioning) Một ví dụ của phương pháp phân nhóm theo độ giống nhau là
cơ sở dữ liệu khách hàng, ứng dụng của phương pháp tối ưu ví dụ như phân nhóm khách hàng theo số các tham số và các nhóm thuế tối ưu có được khi thiết lập biểu thuế bảo hiểm
Mẫu đầu ra của quá trình khai phá dữ liệu sử dụng kỹ thuật này là các tập mẫu chứa các dữ liệu có chung những tính chất nào đó được phân tách từ
cơ sở dữ liệu Khi các mẫu được thiết lập, chúng có thể được sử dụng để tái tạo các tập dữ liệu ở dạng dễ hiểu hơn, đồng thời cũng cung cấp các nhóm dữ liệu cho các hoạt động cũng như công việc phân tích Đối với cơ sở dữ liệu lớn, việc lấy ra các nhóm này là rất quan trọng
1.4.3.4 Phương pháp ứng dụng K-láng giềng gần
Sự miêu tả các bản ghi trong tập dữ liệu khi trỏ vào không gian nhiều chiều là rất có ích đối với việc phân tích dữ liệu Việc dùng các miêu tả này, nội dung của vùng lân cận được xác định, trong đó các bản ghi gần nhau trong không gian được xem xét thuộc về lân cận (hàng xóm - láng giềng) của nhau Khái niệm này được dùng trong khoa học kỹ thuật với tên gọi K-láng giềng gần, trong đó K là số láng giềng được sử dụng Phương pháp này rất hiệu quả nhưng lại đơn giản Ý tưởng thuật toán học K-láng giềng gần là "thực hiện như các láng giềng gần của bạn đã làm"
Trang 24Kỹ thuật K-láng giềng gần là một phương pháp tìm kiếm đơn giản Tuy nhiên, nó có một số mặt hạn chế giới hạn là phạm vi ứng dụng của nó
Đó là thuật toán này có độ phức tạp tính toán là luỹ thừa bậc 2 theo số bản ghi của tập dữ liệu
Vấn đề chính liên quan đến thuộc tính của bản ghi Một bản ghi gồm nhiều thuộc tính độc lập, nó bằng một điểm trong không gian tìm kiếm có số chiều lớn Trong các không gian có số chiều lớn, giữa hai điểm bất kỳ hầu như có cùng khoảng cách Vì thế mà kỹ thuật K-láng giếng không cho ta thêm một thông tin có ích nào, khi hầu hết các cặp điểm đều là các láng giềng Cuối cùng, phương pháp K-láng giềng không đưa ra lý thuyết để hiểu cấu trúc dữ liệu Hạn chế đó có thể được khắc phục bằng kỹ thuật cây quyết định
1.4.3.5 Các phương pháp dựa trên mẫu [9]
Sử dụng các mẫu mô tả từ cơ sở dữ liệu để tạo nên một mô hình dự đoán các mẫu mới bằng cách rút ra những thuộc tính tương tự như các mẫu đã biết trong mô hình Các kỹ thuật bao gồm phân lớp theo láng giềng gần nhất, các giải thuật hồi quy (Dasarathy 1991) và các hệ thống suy diễn dựa trên tình huống (case-based reasoning) (Kolodner 1993)
Khuyết điểm của các kỹ thuật này là cần phải xác định được khoảng cách, độ đo giống nhau giữa các mẫu Mô hình thường được đánh giá bằng phương pháp đánh giá chéo trên các lỗi dự đoán (Weiss & Kulikowski, 1991)
“Tham số” của mô hình được đánh giá có thể bao gồm một số láng giềng dùng để dự đoán và số đo khoảng cách Giống như phương pháp hồi quy phi tuyến, các phương pháp này khá mạnh trong việc đánh giá xấp xỉ các thuộc tính, nhưng lại rất khó hiểu vì mô hình không được định dạng rõ ràng mà tiềm
ẩn trong dữ liệu
1.4.3.6 Phát hiện các luật kết hợp
Phương pháp này nhằm phát hiện ra các luật kết hợp giữa các thành phần dữ liệu trong cơ sở dữ liệu Mẫu đầu ra của giải thuật khai phá dữ liệu là
Trang 25tập luật kết hợp tìm được Ta có thể lấy một ví dụ đơn giản về luật kết hợp như sau: sự kết hợp giữa hai thành phần A và B có nghĩa là sự xuất hiện của
A trong bản ghi kéo theo sự xuất hiện của B trong cùng bản ghi đó: A B
Cho một lược đồ R={A1,…, Ap} các thuộc tính với miền giá trị {0,1},
và một quan hệ r trên R Một luật jết hợp trên r được mô tả dưới dạng XB với XR và BR\X Về mặt trực giác, ta có thể phát biểu ý nghĩa của luật như sau: nếu một bản ghi của bảng r có giá trị 1 tại mỗi thuộc tính thuộc X thì giá trị của thuộc tính B cũng là 1 trong cùng bản ghi đó Ví dụ như ta có tập
cơ sở dữ liệu về các mặt hàng bán trong siêu thị, các dòng tương ứng với các ngày bán hàng, các cột tương ứng với các mặt hàng thì giá trị 1 tại ô (20/10, bánh mì) xác định rằng bánh mì đã bán ngày hôm đó cũng kéo theo sự xuất hiện giá trị 1 tại ô (20/10, bơ)
Cho W R, đặt s(W,r) là tần số xuất hiện của W trong r được tính bằng
tỷ lệ của các hàng trong r có giá trị 1 tại mỗi cột thuộc W Tần số xuất hiện của luật XB trong r được định nghĩa là s(X{B}, r) còn gọi là độ hỗ trợ của luật, độ tin cậy của luật là s(X{B}, r)/s(X, r) Ở đây X có thể gồm nhiều thuộc tính, B là giá trị không cố định Nhờ vậy mà không xảy ra việc tạo ra các luật không mong muốn trước khi quá trìm tìm kiếm bắt đầu Điều đó cũng cho thấy không gian tìm kiếm có kích thước tăng theo hàm mũ của số lượng các thuộc tính ở đầu vào Do vậy cần phải chú ý khi thiết kế dữ liệu cho việc tìm kiếm các luật kết hợp
Nhiệm vụ của việc phát hiện các luật kết hợp là phải tìm tất cả các luật
XB sao cho tần số của luật không nhỏ hơn ngưỡng cho trước và độ tin cậy của luật không nhỏ hơn ngưỡng cho trước Từ một cơ sở dữ liệu ta có thể tìm được hàng nghìn và thậm chí hàng trăm nghìn các luật kết hợp
Ta gọi một tập con XR là thường xuyên trong r nếu thỏa mãn điều kiện s(X, r) Nếu biết tất cả các tập thường xuyên trong r thì việc tìm kiếm
Trang 26các luật rất dễ dàng Vì vậy, giải thuật tìm kiếm các luật kết hợp trước tiên đi tìm tất cả các tập thường xuyên này, sau đó tạo dựng dần các luật kết hợp bằng cách ghép dần các tập thuộc tính dựa trên mức độ thường xuyên
Các luật kết hợp có thể là một cách hình thức hóa đơn giản Chúng rất thích hợp cho việc tạo ra các kết quả có dữ liệu dạng nhị phân Giới hạn cơ bản của phương pháp này là ở chỗ các quan hệ cần phải thưa theo nghĩa không có tập thường xuyên nào chứa nhiều hơn 15 thuộc tính Giải thuật tìm kiếm các luật kết hợp tạo ra số luật ít nhất phải bằng với số các tập thường xuyên và nếu như một tập thường xuyên có kích thước K thì phải có ít nhất là
2K tập thường xuyên Thông tin về các tập thường xuyên được sử dụng để ước lượng độ tin cậy của các tập luật kết hợp
1.4.4 Nhiệm vụ chính của khai phá dữ liệu
Các bài toán liên quan đến khai phá dữ liệu về bản chất là các bài toán thống kê Điểm khác biệt giữa các kỹ thuật khai phá dữ liệu và các công cụ phục vụ tính toán thống kê mà chúng ta đã biết là ở khối lượng cần tính toán Một khi dữ liệu đã trở nên khổng lồ thì những khâu như: thu thập dữ liệu, tiền
xử lý và xử lý dữ liệu đều đòi hỏi phải được tự động hóa Tuy nhiên ở công đoạn cuối cùng, việc phân tích kết quả sau khi đã khai phá dữ liệu vẫn luôn là công việc của con người
Điều mà khai phá dữ liệu có thể làm rất tốt là phát hiện ra những giả thuyết mạnh trước khi sử dụng những công cụ tính toán thống kê Mô hình dự báo sử dụng kỹ thuật phân cụm (Crustering) để chia nhóm các sự vật, sự kiện sau đó rút ra các luật nhằm tìm ra đặc trưng cho mỗi nhóm và cuối cùng đề nghị một mô hình Ví dụ, những bạn đọc đăng ký dài hạn của một tạp chí có thể phân nhóm dựa theo nhiều tiêu chí khác nhau (lứa tuổi, giới tính, thu nhập…), sau đó tạp chí căn cứ vào đặc trưng riêng của từng nhóm để đề ra mức phí thu trong năm sao cho phù hợp nhất
Trang 27Chúng ta thấy, những nhiệm vụ cơ bản nhất của khai phá dữ liệu là:
- Phân cụm, phân loại, phân nhóm, phân lớp Nhiệm vụ là trả lời câu hỏi: Một dữ liệu mới thu thập sẽ thuộc về nhóm nào? Quá trình này thường được thực hiện một cách tự động
- Khai phá luật kết hợp Nhiệm vụ là phát hiện ra những mối quan hệ giống nhâu của các bản ghi giao dịch Luật kết hợp X=>Y có dạng tổng quát là: Nếu một giao dịch đã sở hữu các tính chất X thì đồng thời nó cũng sở hữu các tính chất Y, ở một mức độ nào đó Khai phá luật kết hợp được hiểu theo nghĩa: Biết trước các tính chât X, vậy các tính chất Y là những tính chất nào?
- Lập mô hình dự báo, bao gồm hai nhiệm vụ: Hoặc là phân nhóm dư liệu vào một hay nhiều lớp dữ liệu đã xác định từ trước, hoặc là sử dụng các trường đã cho trong một cơ sở dữ liệu để dự báo sự xuất hiện (hoặc không xuất hiện) của các trường hợp khác
- Phân tích đối tượng ngoài cuộc: Một cơ sở dữ liệu có thể có thể chứa các đối tượng không tuân theo mô hình dữ liệu Các đối tượng dữ liệu như vậy gọi là các đối tượng ngoài cuộc Hầu hết các phương pháp khai phá dữ liệu đều coi các đối tượng ngoài cuộc là nhiễu và loại bỏ chúng Tuy nhiên trong một số ứng dụng, chẳng hạn như phát hiện nhiễu thì sự kiện hiếm khi sảy ra lại được chú ý hơn những gì thường xuyên gặp phải Sự phân tích dữ liệu ngoài cuộc được coi như là phai phá các đối tượng ngoài cuộc Một số phương pháp được ứng dụng để phát hiện đối tượng ngoài cuộc: Sử dụng các hình thức kiểm tra mang tính thống kê trên cơ sở một phân phối dữ liệu hay một mô hình xác suất cho dữ liệu, dùng các độ đo khoảng cách mà theo đó các đối tượng có một khoảng cách đáng kể đến cụm bất kỳ khác được coi là đối tượng ngoài cuộc, dùng các phương pháp dựa trên độ lệch để kiểm tra sự khác nhau trong những đặc trưng chính của các nhóm đối tượng
- Phân tích sự tiến hóa: Phân tích sự tiến hóa thực hiện việc mô tả và
mô hình hóa các quy luật hay khuynh hướng của những đối tượng mà ứng xử
Trang 28của chúng thay đổi theo thời gian Phân tích sự tiến hóa có thể bao gồm cả đặc trưng hóa, phân biệt, tìm luật kết hợp, phân lớp hay phân cụm dữ liệu liên quan đến thời gian, phân tích dữ liệu theo chuỗi thời gian, so sánh mẫu theo
chu kỳ và phân tích dữ liệu dựa trên tính tương tự
1.4.5 Những khó khăn trong nghiên cứu khai phá dữ liệu
Khai phá dữ liệu là kỹ thuật mới chứa nhiều tiềm năng mà người ta vẫn chưa khai phá hết Và việc nghiên cứu và ứng dụng kỹ thuật khai phá dữ liệu luôn gặp nhiều khó khăn, nhưng đứng trước những khó khăn đó chúng ta cần tìm ra những hướng giải quyết để hoàn thiện hơn các kỹ thuật khai phá dữ liệu Ta có thể liệt kê một số khó khăn như sau:
a) Dữ liệu lớn:
Cho đến nay, các cơ sở dữ liệu với hàng trăm trường và bảng, hàng triệu bản ghi và với kích thước đến gigabytes đã là chuyện bình thường Hiện nay đã bắt đầu xuất hiện các cơ sở dữ liệu có kích thước tới terabytes Các phương pháp giải quyết hiện nay là đưa ra một ngưỡng cho cơ sở dữ liệu, lấu mẫu, các phương pháp xấp xỉ, xử lý song song (Agrawal et al, Holsheimer et al)
b) Kích thước lớn:
không chỉ có số lượng bản ghi lớn mà số các trường trong cơ sở dữ liệu cũng nhiều Vì vậy mà kích thước của bài toán trở nên lớn hơn Một tập dữ liệu có kích thước lớn sinh ra vấn đề làm tăng không gian tìm kiếm mô hình suy diễn Hơn nữa, nó cũng làm tăng khả năng một giải thuật khai phá dữ liệu
có thể tìm thấy các mẫu giả Biện pháp khắc phục là làm giảm kích thước tác động của bài toán và sử dụng các tri thức biết trước để xác định các biến không phù hợp
c) Dữ liệu động:
Đặc điểm cơ bản của hầu hết các cơ sở dữ liệu là nội dung của chúng thay đổi liên tục Dữ liệu có thể thay đổi theo thời gian và việc khai phá dữ liệu cũng bị ảnh hưởng bởi thời điểm quan sát dữ liệu Ví dụ trong cơ sở dữ liệu về tình trạng bệnh nhân, một số giá trị dữ liệu là hằng số, một số khác lại
Trang 29thay đổi liên tục theo thời gian (ví dụ cân nặng và chiều cao), một số khác lại thay đổi tùy thuộc vào tình huống và chỉ có giá trị được quan sát mới nhất là
đủ (ví dụ nhịp đập của mạch) Vậy thay đổi dữ liệu nhanh chóng có thể làm cho các mẫu khai thác được trước đó mất giá trị Hơn nữa, các biến trong cơ
sở dữ liệu của ứng dụng đã cho cũng có thể bị thay đổi, bị xóa hoặc là tăng lên theo thời gian Vấn đề này được giải quyết bằng các giải pháp tăng trưởng
để nâng cấp các mẫu và coi những thay đổi như là cơ hội để khai thác bằng cách sử dụng nó để tìm kiếm các mẫu bị thay đổi
d) Các trường không phù hợp:
Một đặc điểm quan trọng khác là tính không thích hợp của dữ liệu, nghĩa là mục dữ liệu trở thành không thích hợp với trọng tâm hiện tại của việc khai thác Một khía cạnh khác đôi khi cũng liên quan đến độ phù hợp là tính ứng dụng của một thuộc tính đối với một tập con của cơ sở dữ liệu
e) Các giá trị bị thiếu:
Sự có mặt hay vắng mặt của giá trị các thuộc tính dữ liệu phù hợp có thể ảnh hưởng đến việc khai phá dữ liệu Trong hệ thống tương tác, sự thiếu vắng dữ liệu quan trọng có thể dẫn đến việc yêu cầu cho giá trị của nó hoặc kiểm tra để xác định giá trị của nó Hoặc cũng có thể sự vắng mặt của dữ liệu được coi như một điều kiện, thuộc tính bị mất có thể được coi như một giá trị trung gian và là giá trị không biết
có lỗi trong dữ liệu Đối với một hệ thống học để chuẩn đoán bệnh sốt rét từ
Trang 30một cơ sở dữ liệu bệnh nhân thì trường hợp các bản ghi của bệnh nhân có triệu chứng giống nhau nhưng lại có các chuẩn đoán khác nhau là do trong dữ liệu đã bị lỗi Đây cũng là vấn đề thường xảy ra trong cơ sở dữ liệu kinh doanh Các thuộc tính quan trọng có thể sẽ bị thiếu nếu dữ liệu không được chuẩn bị cho việc khai phá dữ liệu
g) Độ nhiễu và không chắc chắn:
Đối với các thuộc tính đã thích hợp, độ nghiêm trọng của lỗi phụ thuộc vào kiểu dữ liệu của các giá trị cho phép Các giá trị của các thuộc tính khác nhau có thể là các số thực, số nguyên, chuỗi và có thể thuộc vào tập các giá trị định danh Các giá trị định danh này có thể sắp xếp theo thứ tự từng phần hoặc đầy đủ, thậm chí có thể có cấu trúc ngữ nghĩa
Một yếu tố khác của độ không chắc chắn chính là tính kế thừa hoặc độ chính xác mà dữ liệu cần có, nói cách khác là độ nhiễu của dữ liệu Dựa trên việc tính toán trên các phép đo và phân tích có ưu tiên, mô hình thống kê mô
tả tính ngẫu nhiên được tạo ra và được sử dụng để định nghĩa độ mong muốn
và độ dung sai của dữ liệu Thường thì các mô hình thống kê được áp dụng theo cách đặc biệt để xác định một cách chủ quan các thuộc tính để đạt được các thống kê và đánh giá khả năng chấp nhận của các (hay tổ hợp các) giá trị thuộc tính Đặc biệt là với dữ liệu kiểu số, sự đúng đắn của dữ liệu có thể là một yếu tố trong việc khai phá
h) Mối quan hệ phức tạp giữa các trường:
Các thuộc tính hoặc các giá trị có cấu trúc phân cấp, các mối quan hệ giữa các thuộc tính và các phương tiện phức tạp để diễn tả tri thức về nội dung của cơ sở dữ liệu yêu cầu các giải thuật phải có khả năng sử dụng một cách hiệu quả các thông tin này Ban đầu, kỹ thuật khai phá dữ liệu chỉ được phát triển cho các bản ghi có giá trị thuộc tính đơn giản Tuy nhiên, ngày nay người ta đang tìm cách phát triển các kỹ thuật nhằm rút ra mối quan hệ giữa các biến này
Trang 311.4.6 Một số ứng dụng khai phá dữ liệu
Mặc dù còn rất nhiều vấn đề mà khai phá dữ liệu cần phải tiếp tục
nghiên cứu để giải quyết nhưng tiềm năng của nó đã được khẳng định bằng sự
ra đời của rất nhiều ứng dụng trong nhiều lĩnh vực của đời sống:
- Trong một số lĩnh vực khoa học: Quan sát thiên văn, dữ liệu gene, dữ
liệu sinh vật học, tìm kiếm, so sánh các hệ gene và thông tin di truyền, mối liên hệ genen và một số bệnh di truyền…
- Dự báo thời tiết: Mô hình hóa những thay đổi thời tiết, phân tích
những mẫu như mưa bão, lốc xoáy, sóng thần Để đưa ra nhưng dự đoán chính xác, kịp thời
- Bảo hiểm, tài chính và thị trường chứng khoán: Phân tích tình hình
tài chính và dự báo giá của các loại cổ phiếu trong thị trường chứng khoán Danh mục vốn và giá, lãi suất, dữ liệu thẻ tín dụng, phát hiện gian lận…
- Điều trị y học và chăm sóc y tế: Một số thông tin về chuẩn đoán bệnh
lưu trong các hệ thống quản lý bệnh viện Phân tích mối liên hệ giữa các triệu chứng bệnh, chuẩn đoán và phương pháp điều trị
Trang 32Chương 2 PHÁT HIỆN LUẬT KẾT HỢP
Phát hiện luật kết hợp là một kỹ thuật quan trọng trọng của khai phá dữ
liệu Vấn đề này được Rakesh Agrawal, Tomasz Imielinski, Arun Swami đề
xuất lần đầu vào năm 1993 Sau đó năm 1996 được Rakesh Agrawal, Heikki Mannila, Ramakrishnan Srikant, Hannu Toivonen, A.Inkeri Verkamo tiếp tục cải tiến Ngày nay, bài toán khai thác luật kết hợp vẫn là một trong những phương pháp khai thác mẫu phổ biến nhất trong việc khám phá tri thức và khai thác dữ liệu Chương này trình bày những khái niệm và một số thuật toán phát hiện luật kết hợp
2.1 Các khái niệm và tính chất của luật kết hợp
Khai phá luật kết hợp được mô tả như sự tương quan của các sự kiện- những sự kiện xuất hiện thường xuyên một cách đồng thời Nhiệm vụ chính của khai phá luật kết hợp là phát hiện ra các tập con cùng xuất hiện trong một khối lượng giao dịch lớn của một cơ sở dữ liệu cho trước Nói cách khác, thuật toán khai phá luật kết hợp cho phép tạo ra các luật mô tả các sự kiện xảy ra đồng thời (một cách thường xuyên) như thế nào Các thuật toán này trải qua 2 pha: pha đầu là đi tìm các sự kiện xảy ra thường xuyên, pha hai là tìm luật
2.1.1 Một số khái niệm [6,8]
Cho I={I1, I2, , Im} là tập hợp của m tính chất riêng biệt Giả sử D là CSDL, với các bản ghi chứa một tập con T các tính chất (có thể coi T I), các bản ghi đều có chỉ số riêng Một luật kết hợp là một mệnh đề kéo theo có dạng XY, trong đó X, Y I, thỏa mãn điều kiện XY= Các tập hợp X
và Y được gọi là các tập hợp tính chất (itemset) Tập X gọi là nguyên nhân, tập Y gọi là hệ quả
Trang 33Có 2 độ đo quan trọng đối với luật kết hợp: Độ hỗ trợ (support) và độ tin cậy (confidence), được định nghĩa như phần dưới đây
Định nghĩa 2.1: Độ hỗ trợ của một tập hợp X trong cơ sở dữ liệu D là
tỷ số giữa các bản ghi T D có chứa tập X và tổng số bản ghi trong D (hay là phần trăm của các bản ghi trong D có chứa tập hợp X), ký hiệu là support(X) hay supp(X) (support sẽ tự sinh ra khi cài thuật toán)
Supp(X)= |{ T D: Y X}|
|D|
Ta có: 0 supp(X) 1 với mọi tập hợp X
Định nghĩa 2.2: Độ hỗ trợ của một luật kết hợp XY là tỷ lệ giữa số lượng các bản ghi chứa tập hợp XY, so với tổng số các bản ghi trong D -
Trong một số trường hợp, chúng ta chỉ quan tâm đến những luật có độ hỗ trợ cao (Ví dụ như luật kết hợp xét trong cửa hàng tạp phẩm) Nhưng cũng có trường hợp, mặc dù độ hỗ trợ của luật thấp, ta vẫn cần quan tâm (ví dụ luật kết hợp liên quan đến nguyên nhân gây ra sự đứt liên lạc ở các tổng đài điện thoại)
Định nghĩa 2.3: Độ tin cậy của một luật kết hợp XY là tỷ lệ giữa số lượng các bản ghi trong D chứa XY với số bản ghi trong D có chứa tập hợp
X Ký hiệu độ tin cậy của một luật là conf(r) Ta có 0 conf(r) 1
Nhận xét: Độ hỗ trợ và độ tin cậy có xác suất sau:
Supp(XY)=P(XY) Conf (XY) = P(Y/X)=supp(XY)/supp(X)
Trang 34Có thể định nghĩa độ tin cậy như sau:
Định nghĩa 2.4: Độ tin cậy của một luật kết hợp XY là tỷ lệ giữa số lượng các bản ghi của tập hợp chứa XY, so với tổng số các bản ghi chứa X Nói rằng độ tin cậy của một luật là 80%, có nghĩa là có tới 80% số bản ghi chứa X chứa luôn cả Y Hay nói theo ngôn ngữ xác suất là: “Xác suất có điều kiện để sảy ra sự kiện Y đạt 85%” Điều kiện ở đây chính là: “Xảy ra sự kiện X” Như vậy, độ tin cậy của luật thể hiện sự tương quan (correlation) gữa X
và Y Độ tin cậy đo sức nặng của luật, và người ta hầu như chỉ quan tâm đến những luật có độ tin cậy cao Một luật kết hợp đi tìm các nguyên nhân dẫn tới hỏng hóc của hệ thống tổng đài, hay đề cập đến những mặt hàng thường hay được khách hàng mua kèm với mặt hàng chính mà độ tin cậy thấp sẽ không
có ích cho công tác quản lý
Việc khai thác các luật kết hợp từ cơ sở dữ liệu chính là việc tìm tất cảc các luật có độ hỗ trợ và độ tin cậy do người sử dụng xác định trước Các
ngưỡng của độ hỗ trợ và độ tin cậy được ký hiệu là minsup và mincof
Ví dụ: Khi phân tích giỏ hàng của người mua hàng trong một siêu thị ta
được luật kiểu như: 85% khách hàng mua sữa thì cũng mua bánh mì, 30% thì mua cả hai thứ Trong đó: “mua sữa” là tiền đề còn “mua bánh mì ” là kết luận của luật Con số 30% là độ hỗ trợ của luật còn 80% là độ tin cậy của luật Chúng ta nhận thấy rằng tri thức đem lại bởi luật kết hợp dạng trên có
sự khác biệt rất nhiều so với những thông tin thu được từ các câu lệnh truy vấn dữ liệu thông thường như SQL Đó là những tri thức, những mối liên hệ chưa 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 đơn giản là kết quả của phép nhóm, tính tổng hay sắp xếp mà
là của một quá trình tính toán khá phức tạp
Định nghĩa 2.5: Tập hợp X được gọi là tập hợp thường xuyên
(Frenquent itemset) nếu có supp(X) minsup, với minsup là ngưỡng độ hỗ trợ cho trước
Trang 35Định nghĩa 2.6: Một tập mục X được gọi là đóng (closed) nếu không
có tập cha nào của X có cùng độ hỗ trợ với nó, tức là không tồn tại một tập mục X’ nào mà X’X và t(X) = t(X’) (với t(x) và t(X’) tương ứng là tập các giao chứa tập mục X và X’) Ký hiệu tập phổ biến đóng là FCI
Định nghĩa 2.7: Nếu X là phổ biến và không tập cha nào của X là phổ
biến, ta nói rằng X là một tập phổ biến lớn nhất (maximally frequent itemset)
Ký hiệu tập tất cả các tập phổ biến lớn nhất là MFI Dễ thấy MFI FCI FI
2.1.2 Thuật toán cơ bản
Khai phá luật kết hợp là công việc phát hiện ra (tìm ra, khám phá, phát hiện) các luật kết hợp thỏa mãn các ngưỡng độ hỗ trợ () và ngưỡng độ tin cậy () cho trước Bài toán khai phá luật kết hợp được chia thành hai bài toán nhỏ, hay như người ta thường nói, việc giải bài toán trải qua hai pha:
Pha 1: Tìm tất cả các tập phổ biến (tìm FI) trong CSDL T
Pha 2: Sử dụng tập FI tìm được ở pha 1 để sinh ra các luật tin cậy (interesting rules) Ý tưởng chung là nếu gọi ABCD và AB là các tập mục phổ biến, thì chúng ta có thể xác định luật AB CD với tỷ lệ độ tin cậy:
conf = sup p( )
sup p( )
ABCD AB
Trang 36Nếu conf minconf thì luật được giữ lại (và thỏa mãn độ hỗ trợ tối thiểu vì ABCD là phổ biến)
Trong thực tế, hầu hết thời gian của quá trình khai thác luật kết hợp là thực hiện ở pha 1 Nhưng khi có những mẫu rất dài (mẫu chứa nhiều mục) xuất hiện trong dữ liệu, việc sinh ra toàn bộ các tập phổ biến hay các tập đóng
là không thực tế
Có rất nhiều nghiên cứu về các phương pháp sinh tất cả các tập phổ biến và tập phổ biến lớn nhất một cách có hiệu quả Khi các mẫu phổ biến (frequent patterm) dài có từ 15 đến 20 items) thì tập tập mục phổ biến, thậm chí cả tập đóng trở nên rất lớn và hầu hết các phương pháp truyền thống phải đếm quá nhiều tập mục mới có thể thực hiện được Các thuật toán dựa trên thuật toán Apriori - đếm tất cả 2k
tập con của mỗi k- itemsets mà chúng quét qua, và do đó không thích hợp với các itemsets dài được Các phương pháp khác sử dụng “lookaheads” để giảm số lượng tập mục được đếm Tuy nhiên, hầu hết các thuật toán này đều sử dụng tìm kiếm theo chiều rộng, ví dụ: tìm tất cả các k - itemsets trước khi tính đến các (k+1) - itemsets
Cách làm này hạn chế hiệu quả của lookaheads, vì các mẫu phổ biến dài hơn mà hữu ích vẫn chưa được tìm ra
Thuật toán 1 - Thuật toán cơ bản:
2) Từ các tập hợp mới tìm ra, tạo ra các luật kết hợp có độ tin cậy không nhỏ hơn