1. Trang chủ
  2. » Luận Văn - Báo Cáo

Khai thác tập phổ biến dựa trên cấu trúc index bittable

65 575 2

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 65
Dung lượng 1,65 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Ứng dụng bài toán khai thác luật kết hợp khai thác CSDL cước tại Viễn thông Ninh Thuận Cấu trúc của luận văn gồm Chương 1: Tổng quan Chương 2: Cơ sở lý thuyết Chương 3: Khai thác tập phổ

Trang 1

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN

NGUYỄN THỊ BẢO CHI

KHAI THÁC TẬP PHỔ BIẾN DỰA TRÊN CẤU TRÚC

INDEX-BITTABLE

LUẬN VĂN THẠC SĨ: HỆ THỐNG THÔNG TIN

Thành phố Hồ Chí Minh – 2010

Trang 2

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN

NGUYỄN THỊ BẢO CHI

KHAI THÁC TẬP PHỔ BIẾN DỰA TRÊN CẤU TRÚC

Thành phố Hồ Chí Minh – 2010

Trang 3

Xin chân thành cảm ơn các bạn cùng lớp, các đồng nghiệp và lãnh đạo Viễn Thông Ninh Thuận đã tạo điều kiện giúp đỡ tôi hoàn thành luận văn

Tôi đặc biệt cảm ơn đến gia đình tôi, đã đồng cảm, hỗ trợ tôi hoàn thành luận văn này.

Phan Rang – Tháp Chàm ngày 01 tháng 09 năm 2010

Trang 4

MỤC LỤC

Chương 1: TỔNG QUAN 8

1.1 Mục tiêu và đối tượng khai thác tri thức 8

1.2 Quy trình khai thác tri thức 9

1.3 Mục tiêu và đối tượng khai thác tri thức 10

1.4 Các kỹ thuật khai thác dữ liệu 11

1.5 Ứng dụng của khai thác dữ liệu 13

1.6 Khai thác dữ liệu dựa trên cấu trúc Index-BitTable 14

Chương 2: CƠ SỞ LÝ THUYẾT 16

2.1 Ý nghĩa luật kết hợp 16

2.2 Phát biểu bài toán khai thác luật kết hợp 17

2.3 Một số hướng tiếp cận trong khai thác luật kết hợp 20

2.4 Một số thuật toán đã công bố 21

Chương 3: KHAI THÁC TẬP PHỔ BIẾN DỰA TRÊN CẤU TRÚC INDEX-BITTABLE 24

3.1 Cấu trúc BitTable 24

3.2 Thuật toán BitTableFI 25

3.2.1 Tìm nhanh tập ứng viên 25

3.2.2 Cách tính nhanh độ hỗ trợ 29

3.2.3 Thuật toán BitTableFI 30

3.3 Thuật toán Index-BitTableFI 31

3.3.1 Mảng Index và cách xây dựng 31

3.3.2 Định lý 1 35

3.3.3 Định lý 2 36

3.3.4 Thuật toán Index-BitTableFI 37

3.3.5 Thuật toánDepth_First 38

3.4 Đánh giá thuật toán Index-BitTableFI 40

Trang 5

3.5 Một số cải tiến 41

3.5.1 Cải tiến cách tính toán subsume 41

3.5.2 Cải tiến thuật toán Depth_First 42

Chương 4: KẾT QUẢ KHAI THÁC DỮ LIỆU CƯỚC ĐIỆN THOẠI VÀ ĐÁNH GIÁ 49

4.1 Nguồn dữ liệu cước điện thoại 49

4.2 Cài đặt hệ thống khai thác dữ liệu cước điện thoại 52

4.3 Kết luận và đánh giá kết quả 60

4.4 Hướng phát triển của luận văn 61

Trang 6

cả các lý do đó khiến cho các doanh nghiệp tạo ra một lượng dữ liệu khổng lồ cho riêng mình Các kho dữ liệu ngày càng lớn và tiềm ẩn nhiều thông tin mới lạ, có ích

Sự bùng nổ đó dẫn đến một yêu cầu cấp thiết là phải có những kỹ thuật và công cụ mới

để khai thác kho dữ liệu này, để tìm ra những mối quan hệ, những thông tin mới lạ, dễ hiểu và có ích Trong khi đó kỹ thuật khai thác dữ liệu (Data Mining-DM) đã đáp ứng được các yêu cầu này

Viễn thông Ninh Thuận là một đơn vị thuộc Tập đoàn Viễn Thông Việt Nam, kinh doanh tất cả các loại dịch vụ thuộc các lĩnh vực Viễn Thông – Tin học Thị trường viễn thông đang thay đổi nhanh chóng và chịu nhiều sức ép cạnh tranh giữa nhiều nhà cung cấp dịch vụ Các công ty đưa ra nhiều chính sách thu hút khách hàng và tìm mọi cách để gắn hoạt động kinh doanh của mình với thị trường Việc mất thị trường, thị phần và giảm doanh số kinh doanh là các vấn đề chính mà lãnh đạo Viễn thông Ninh Thuận đang rất quan tâm và tìm biện pháp khắc phục, giải quyết Một trong các biện

pháp đưa ra là “Tăng cường công tác chăm sóc khách hàng”

Với nguồn dữ liệu khổng lồ từ tổng đài rất thuận lợi cho việc tìm hiểu thói quen

sử dụng dịch vụ, mức độ hài lòng và phân loại khách hàng Dữ liệu chi tiết cuộc gọi nhận được từ tổng đài chứa rất nhiều thông tin có ích và tiềm ẩn, từ đó có thể áp dụng các phương pháp thống kê, phân tích, tìm hiểu nhu cầu khách hàng giúp lãnh đạo có

những chính sách đúng đắn để thu hút khách hàng Ứng dụng khai thác dữ liệu, khai

thác hiệu quả tập phổ biến để tìm hiểu khách hàng, giúp lãnh đạo Viễn Thông Ninh

Trang 7

Thuận có những chiến lược đúng đắn nhằm thu hút khách hàng là mục đích chính của

đề tài này

Khai thác dữ liệu bao gồm nhiều hướng tiếp cận và các kỹ thuật chính được áp dụng phần lớn được kế thừa từ lĩnh vực cơ sở dữ liệu, trí tuệ nhân tạo (artificial intelligence), xác suất thống kê (probability & statistics) và phương pháp tính toán hiệu năng cao (high performance) Các bài toán chủ yếu trong khai thác dữ liệu là phân lớp/dự đoán (classification/prediction), phân cụm (clustering) và khai thác luật kết hợp (association rule mining) Trong đó khai thác luật kết hợp là một trong các nội dung quan trọng trong khai thác dữ liệu và đây là lĩnh vực nghiên cứu có nhiều triển vọng Luận văn này được xây dựng trên một số công trình nghiên cứu trong lĩnh vực khai thác luật kết hợp đã công bố trong những năm gần đây, qua đó trình bày:

1 Luật kết hợp: ý nghĩa, phát biểu bài toán, không gian tìm kiếm và các hướng tiếp cận

2 Phương pháp khai thác luật kết hợp: trình bày về cấu trúc bảng Index-BitTable phương pháp hiệu quả để tìm nhanh tập phổ biến, phát sinh luật kết hợp

3 Ứng dụng bài toán khai thác luật kết hợp khai thác CSDL cước tại Viễn thông Ninh Thuận

Cấu trúc của luận văn gồm

Chương 1: Tổng quan

Chương 2: Cơ sở lý thuyết

Chương 3: Khai thác tập phổ biến dựa trên cấu trúc Index-BitTable

Chương 4: Kết quả khai thác dữ liệu cước điện thoại và đánh giá

Trang 8

CHƯƠNG 1 TỔNG QUAN

1.1 Mục tiêu và đối tượng khai thác tri thức

Với sự phát triển nhanh chóng của khoa học kỹ thuật, đặc biệt là kỹ thuật số, cho phép số hóa hầu hết các loại thông tin của các lĩnh vực Ngày nay chúng ta đang chứng kiến sự bùng nổ dữ liệu trong tất cả các lĩnh vực: Khoa học kỹ thuật, kinh doanh, quân sự…Tuy nhiên tốc độ phát triển trong sức mạnh xử lý của việc đánh giá, phân tích dữ liệu là không tương xứng Trong tập dữ liệu lớn có thể chứa các thông tin tiềm ẩn, có quy luật và hữu ích Khi các nhân tố mới lạ và các quan hệ giữa chúng là rõ ràng, dễ hiểu, người dùng có thể cải thiện hoạt động kinh doanh của mình theo hướng tiết kiệm, hiệu quả và chất lượng

Dữ liệu thô lưu trữ trong CSDL ít khi được sử dụng trực tiếp Trong các ứng dụng thực tế, dữ liệu thường được biểu diễn theo khuôn dạng của người sử dụng, phù hợp với công việc của họ Với tập dữ liệu nhỏ, có thể sử dụng các phương pháp thống

kê hoặc các công cụ quản trị để phân tích Tuy nhiên với tập dữ liệu khổng lồ, cần phải

có công cụ phân tích tự động mới có thể thực hiện được

Khai thác tri thức trong CSDL (Knowledge Discovery in Database- KDD) mà

trọng tâm là khai thác dữ liệu (DM) là một quá trình tự động khai thác tri thức tiềm ẩn, thú vị chưa biết trong CSDL Hệ thống KDD/DM không phải là hệ thống phần mềm tổng quát, chúng được phát triển phụ thuộc vào yêu cầu của người sử dụng để giúp họ

tự động phân tích dữ liệu đã được xác định, theo các lĩnh vực ứng dụng riêng biệt

Khai thác tri thức là quá trình rút trích thông tin tiềm ẩn từ CSDL, thông tin đó chứa hoàn toàn trong CSDL, chưa biết trước, tiềm tàng và hữu ích cho người sử dụng Thông tin rút trích phải là dạng của các mẫu mà người dùng có thể hiểu được (chẳng

hạn các luật if-then) Độ đo thú vị của một mẫu là một định lượng sử dụng trong việc

Trang 9

đánh giá mẫu Chỉ những mẫu thú vị là tri thức Một mẫu là thú vị nếu nó mới lạ, tiềm

ẩn và hữu ích

1.2 Quy trình khai thác tri thức

Khai thác dữ liệu (DM) là một bước quan trọng của quá trình khai thác tri thức

(Knowledge Discovery Process) Hình 1.1 mô tả quá trình khai thác tri thức Nó bao

gồm các công đoạn sau [7]:

Hình 1.1 Các công đoạn của quá trình khai thác tri thức trong CSDL

Chọn dữ liệu (Selection): là một thủ tục tương ứng với việc phát sinh tập dữ liệu

gốc từ CSDL Mục đích của nó là chọn dữ liệu đặc trưng từ tập dữ liệu lớn và phù hợp

để thực hiện khai thác

Tiền xử lý (Preprocessing): loại bỏ và xử lý dữ liệu tạp, không đầy đủ, mâu

thuẫn từ tập dữ liệu gốc Thực hiện rút gọn và rời rạc hóa dữ liệu (dùng các phương pháp và các cấu trúc dữ liệu phù hợp để thu gọn dữ liệu…) Sau bước này dữ liệu sẽ nhất quán, đầy đủ, rút gọn và rời rạc

Chuyển đổi dữ liệu (Transformed): Chuyển đổi dữ liệu đã xử lý về dạng có thể

thực hiện khai thác Việc chuyển đổi dữ liệu đã xử lý phụ thuộc vào nhiệm vụ khai thác

dữ liệu Công đoạn chuyển đổi bao gồm các thao tác để giảm một cách hợp lệ số trường trong các mẫu tin, vì mỗi nhiệm vụ khai thác dữ liệu chỉ tập trung trên một tập

Trang 10

con của các trường dữ liệu Nó cũng bao gồm các thao tác sửa đổi và kết hợp các trường dữ liệu còn lại để ánh xạ dữ liệu gốc thành dữ liệu phù hợp hơn cho việc khai thác dữ liệu ở công đoạn tiếp theo

Khai thác dữ liệu (Data Mining-DM): Đây là công đoạn quan trọng và tốn nhiều

chi phí nhất của quá trình khai thác tri thức Xác định nhiệm vụ khai thác dữ liệu và lựa chọn kỹ thuật khai thác để thực hiện khai thác, phát sinh tập mẫu Các mẫu này là nguồn tri thức thô Trong công đoạn này, có thể cần sự tương tác của người dùng để điều chỉnh và rút ra các thông tin cần thiết nhất Các tri thức nhận được có thể được lưu lại và sử dụng lại

Diễn giải và đánh giá tri thức (Interpretation/Evaluation): với các tri thức nhận

được, dựa vào một số các tiêu chí để tiến hành kiểm tra và lọc nguồn tri thức thu được

Quá trình khai thác tri thức không chỉ là một quá trình tuần tự từ bước đầu tiên đến bước cuối cùng mà là một quá trình lặp và quay hồi lại các bước đã qua

1.3 Mục tiêu và đối tượng khai thác tri thức

Khai thác dữ liệu có khả năng chấp nhận một số kiểu dữ liệu khác nhau Một số kiểu dữ liệu điển hình sau[7]:

Cơ sở dữ liệu quan hệ (relational database): là các dữ liệu tác nghiệp được tổ

chức theo mô hình dữ liệu quan hệ, rất phổ biến trong ngành Viễn thông, do hầu hết các hệ quản trị cơ sở dữ liệu đều hỗ trợ dạng cơ sở dữ liệu quan hệ như Oracle, MS SQL Server, IBM DB2, MS Access…

Cơ sở dữ liệu đa chiều (Multidimentional structucres, data warehouses) : là các

kho dữ liệu được tập hợp và chọn lọc từ nhiều nguồn dữ liệu khác nhau Dạng dữ liệu này chủ yếu phục vụ cho quá trình phân tích cũng như khai thác tri thức và hỗ trợ quá trình ra quyết định

Trang 11

Cơ sở dữ liệu giao tác (transaction database) : đây cũng là dạng dữ liệu tác

nghiệp có các bản ghi thường là các giao tác Dạng dữ liệu này cũng phổ biến hiện nay trong đó có ngành Viễn thông

Cơ sở dữ liệu quan hệ - hướng đối tượng (object relational database) : là dạng

dữ liệu lai giữa hai mô hình quan hệ và hướng đối tượng

Dữ liệu không gian và thời gian (temporal, and time-series data ): là dạng dữ

liệu có tích hợp thuộc tính về không gian như dữ liệu bản đồ mạng cáp điện thoại hoặc thời gian như dữ liệu cước điện thoại, phát hành báo chí

Cơ sở dữ liệu đa phương tiện (Multimedia database ): là dạng dữ liệu âm thanh

(audio), hình ảnh (video)… dạng dữ liệu này đang rất phổ biến trên internet và lưu lại các web server của các đơn vị trực thuộc ngành Viễn thông

1.4 Các kỹ thuật khai thác dữ liệu

Khai thác dữ liệu phụ thuộc vào loại tri thức mà hệ thống KDD/DM tìm kiếm Mỗi nhiệm vụ khai thác dữ liệu có đặc tính riêng của nó và thực hiện theo các bước trong quá trình khai thác tri thức Sau đây là các nhiệm vụ khai thác dữ liệu thường được sử dụng phổ biến trong ứng dụng khai thác dữ liệu[7]:

Phân loại (Classification): Khai thác có hay không một phần tử thuộc về một

trong các lớp đã biết trước Vấn đề là bằng cách nào xác định các lớp Trong thực tế, các lớp thường được xác định dựa trên giá trị của trường nào đó trong mẫu tin hoặc dẫn

xuất của các giá trị khác nhau trong các trường Ví dụ, phân lớp cước hoặc loại dịch vụ

dựa vào số máy bị gọi của cuộc gọi, phân lớp giờ cao điểm, thấp điểm dựa trên khung thời gian qui định

Phân cụm (Cluster identification): Sắp xếp các đối tượng theo từng cụm Ngược

với phân loại, số lượng và tên của cụm chưa được biết trước Khi xác định các cụm, các độ đo khoảng cách được sử dụng để tính toán sao cho mức độ tương tự giữa các

Trang 12

đối tượng trong cùng một cụm là lớn nhất và mức độ tương tự giữa các đối tượng nằm

trong các cụm khác nhau là nhỏ nhất Ví dụ phân bố các điểm trên đồ thị 2 chiều có thể

biểu diễn như là một phân cụm

Dự báo (Prediction): Kỹ thuật dự báo dựa trên giá trị liên tục hay rời rạc của

thuộc tính Lịch sử của các thuộc tính được sử dụng để xây dựng mô hình này Đây là

kỹ thuật thường được sử dụng cho việc dự báo hàng hóa, thị trường

Phân tích độ lệch (Deviation analysis): Là kỹ thuật so sánh giá trị hiện tại với

giá trị bình thường đã xác định trước để kiểm tra sự bất bình thường Phân tích độ lệch

là công cụ hữu dụng cho các ứng dụng bảo mật, trong đó nó cảnh báo người quản trị có

sự thay đổi đột ngột trong việc sử dụng tài nguyên của một người dùng nào đó

Luật kết hợp (Association Rule): là quá trình xác định phụ thuộc của một hoặc

nhiều phần tử đối với một hoặc nhiều phần tử phổ biến khác trong tập dữ liệu (tập mẫu) Các mô hình này thường áp dụng trong lĩnh vực phân tích kinh doanh và thị

trường Tri thức khai thác được biểu diễn ở dạng luật Ví dụ: “Tất cả mẫu tin chứa A,B

và C, thì 70% cũng chứa D và E”

Khai thác tuần tự (Sequential Mining): Khai thác mẫu tuần tự là khai thác các

mẫu phổ biến liên quan đến thời gian hoặc các sự kiện khác Một luật mô tả mẫu tuần

tự có dạng XY phản ánh sự xuất hiện của biến cố X sẽ dẫn đến việc xuất hiện biến

cố Y kế tiếp Khai thác mẫu tuần tự được sử dụng trong việc dự báo và chăm sóc khách hàng

Mô hình phụ thuộc (Dependency modeling): Mục đích là để mô tả các phụ thuộc

quan trọng giữa các phần tử trong tập dữ liệu Phụ thuộc vào ý nghĩa mà giá trị của một phần tử có thể được dự báo với vài giá trị của các phần tử đã biết trước (ví dụ: AB, c=0.93) Tập các phụ thuộc có quan hệ với nhau hình thành một đồ thị phụ thuộc

Trang 13

Khai thác mẫu từng phần (Spatial dependency analysis): Khai thác các mẫu của

dữ liệu từng phần trong hệ thống thông tin địa lý, các hệ sinh thái Ví dụ “giá bất động

sản tại vị trí X thường giảm vào tháng 05 và tăng vào tháng 10”

Khai thác mẫu đường đi (Discovering path traversal patterns): Thỉnh thoảng

các phụ thuộc giữa các phần tử có thể phù hợp với mô hình sử dụng đồ thị Một ví dụ tiêu biểu là khai thác các mẫu duyệt đường đi trong việc truy xuất web Biết được các mẫu có thể giúp thiết kế các ứng dụng web tốt hơn

1.5 Ứng dụng của khai thác dữ liệu

Các hệ thống KDD/DM và các hệ thống khác hỗ trợ xử lý khai thác tri thức được phát triển mạnh từ giữa thập niên 90 của thế kỷ trước Sau đây là các lĩnh vực ứng dụng quan trọng và các vấn đề điển hình sử dụng hệ thống KDD/DM:

Tài chính và thị trường chứng khoáng: 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áng Danh mục giá, lãi xuất, phát hiện gian lận

Phân tích dữ liệu và ra quyết định

Khoa học xã hội: Phân tích dữ liệu nhân khẩu, dự báo kết quả bầu cử

Thiên văn học: Phân tích ảnh vệ tinh

Luật: Kiểm tra gian lận thuế…

Thị trường: Dự báo thị trường, xác định loại khách hàng và hàng hóa, các mẫu

phổ biến có triển vọng

Kỹ thuật: Khai thác mẫu mạch tích hợp, dự báo các khả năng lỗi của hệ thống

thiết bị

Nông nghiệp: Phân loại bệnh của cây trồng

Xuất bản: Khai thác profile của đọc giả để định hướng xuất bản

Trang 14

Đ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 được lưu

trong các hệ CSDL bệnh án Phân tích mối liên hệ giữa triệu chứng bệnh, chuẩn đoán

và phương pháp điều trị

1.6 Khai thác dữ liệu dựa trên cấu trúc Index-BitTable

Hầu hết các thuật toán khai thác luật kết hợp đều dựa vào thuật toán Apriori, với chi phí rất lớn cho việc duyệt tập dữ liệu và tính toán phát sinh các tập phần tử phổ biến Những thuật toán hiệu quả cho việc khai thác tập phổ biến là rất quan trọng, cho việc khai thác luật kết hợp cũng như là cho nhiều các tác vụ khai thác dữ liệu khác

Khai thác luật kết hợp bao gồm 2 giai đoạn: 1 Khai thác tập tất cả các tập phổ biến và 2 Phát sinh luật kết hợp từ tập phổ biến ở bước 1 Trong đó, giai đoạn 1 tốn nhiều chi phí và tài nguyên nhất, do vậy các chuyên gia thường tập trung xây dựng các thuật toán tối ưu ở giai đoạn này

Apriori là thuật toán nổi tiếng nhất trước đây, nó dùng một thủ tục phát sinh ứng viên rất hiệu quả, chỉ những tập phổ biến ở mức này được dùng để xây dựng các ứng viên ở mức tiếp theo Tuy nhiên nó đòi hỏi phải quét nhiều lần vào cơ sở dữ liệu, số lần tương ứng với số lượng item trong tập phổ biến dài nhất

Có nhiều nghiên cứu cải tiến và mở rộng cho thuật toán Apriori này: kỹ thuật băm[11], tiếp cận mẫu[5], hoặc như DCP[17] nỗ lực trong việc tối ưu các itemset bằng cách kết hợp kỹ thuật tỉa tập dữ liệu đã được giới thiệu trong DHP (Direct Hash with Pruning)và bằng cách đếm trực tiếp sự xuất hiện của các ứng viên Thuật toán CBAR[20] dùng clusterTable để tải dữ liệu vào trong bộ nhớ Sự tính toán độ hỗ trợ của thuật toán sẽ được thực hiện trong clusterTable và không cần quét tất cả các giao dịch lưu trong clusterTable

J.Han[9] đã giới thiệu một thuật toán FP-growth trong việc khai thác các tập phổ biến, với thuật toán theo chiều sâu Trong thuật toán này, cây FP được dùng để lưu trữ các thông tin phổ biến của dữ liệu gốc ở một dạng nén Thuật toán này chỉ quét cơ sở

Trang 15

dữ liệu 2 lần và không cần phát sinh tập ứng viên Chính điều này làm FP-growth nhanh hơn Apriori

Cả Apriori và FP-growth khai thác tập phổ biến từ một tập các giao dịch có định dạng dữ liệu theo chiều ngang (tid, item), trong đó tid là số thứ tự giao dịch và itemset

là tập hợp các mục dữ liệu xuất hiện trong tid, mặt khác cũng có thể khai thác dữ liệu theo chiều dọc (item, tid)

Zaki đề xuất thuật toán Eclat[13] bằng cách khám phá dữ liệu có định dạng theo chiều dọc Việc quét dữ liệu lần đầu tiên xây dựng tid của item đơn Bắt đầu với tập phổ biến 1-phần tử, phần tử phổ biến có (k+1) được hình thành từ tập k phần tử có thể được sinh ra như Apriori, với tính toán theo chiều rộng trước Việc tính toán này được thực hiện bằng cách giao các tid của tập phổ biến có k phần tử để tính toán các tid của tập phổ biến (k+1) phần tử Tiến trình này lặp lại cho đến khi không còn tập phổ biến hoặc tập ứng viên nào Sau đó Zaki và Gouda đã giới thiệu kỹ thuật diffset[14] để giảm vùng nhớ lưu trữ Kỹ thuật diffset chỉ giữ lại sự khác biệt của các tid và các tập ứng viên khi nó sản sinh ra tập phổ biến

Gần đây, Dong và Han đã giới thiệu thuật toán BitTableFI[6], trong thuật toán này cấu trúc BitTable được dùng theo cả chiều ngang và chiều dọc để nén dữ liệu đối với việc phát sinh các tập ứng viên trở nên nhanh hơn và việc tính toán độ hỗ trợ tương ứng Thuật toán BitTableFI đạt hiệu quả cao bằng cách giảm chi phí phát sinh tập ứng viên và tính toán độ hỗ trợ Tuy nhiên trong tình huống với số lượng lớn tập phổ biến, tập nhiều phần tử hoặc ngưỡng hỗ trợ nhỏ, thuật toán này có thể phải chịu những chi phí bất thường như chi phí tính toán lớn, việc lưu trữ các ứng viên đòi hỏi không gian nhớ lớn và tính toán đỗ hỗ trợ của các ứng viên này rất phức tạp

Để giải quyết vấn đề này Wei Song đã giới thiệu thuật toán BitTableFI[19], trong thuật toán này tác giả dùng cấu trúc BitTable theo cả chiều ngang và chiều dọc Vì thế sự tìm kiếm kép được thực hiện và không gian tìm kiếm được giảm đáng kể

Trang 16

Index-CHƯƠNG 2

CƠ SỞ LÝ THUYẾT

2.1 Ý nghĩa luật kết hợp

Luật kết hợp là một lĩnh vực quan trọng trong khai thác dữ liệu Luật kết hợp

giúp chúng ta tìm được các mối liên hệ giữa các phần tử trong tập phổ biến Là một đơn vị kinh doanh tất cả các loại dịch vụ thuộc lĩnh vực Viễn Thông – Tin học, các loại dịch vụ cung cấp cho khách hàng ngày càng nhiều, do đó việc tìm hiểu về mối quan hệ giữa các loại dịch vụ mà khách hàng sử dụng là việc làm cần thiết của Viễn thông Ninh Thuận Thông qua luật kết hợp chúng ta có thể biết được thói quen sử dụng dịch vụ của khách hàng Để tìm hiểu thói quen sử dụng các dịch vụ Viễn thông của khách hàng, chúng ta thường đặt câu hỏi “Những dịch vụ nào khách hàng thường hay sử dụng cùng lúc với nhau?” Các kết quả nhận được có thể dùng cho việc hoạch định kế hoạch kinh doanh, tiếp thị dịch vụ và chăm sóc khách hàng

Luật kết hợp là những luật có dạng “30% khách hàng gọi cước liên

tỉnh≥100.000 thì có sử dụng cước internet Ở đây “gọi cước liên tỉnh ≥100.000 ” được xem là vế trái (tiền đề) của luật, còn “sử dụng cước internet” là vế phải (kết luận) của

luật

Gọi_LT:có  gọi_IP_171: có (minsup=25%, minconf=75%)

Độ hỗ trợ (minsup) và độ tin cậy (minconf) là hai thước đo cho một luật kết hợp

Độ hỗ trợ bằng 25% có nghĩa là “Trong các khách hàng có sử dụng điện thoại thì có

25% khách hàng sử dụng điện thoại ID Liên tỉnh và điện thoại IP 171” Độ tin cậy

bằng 75% có nghĩa là “Trong các khách hàng có sử dụng điện thoại liên tỉnh thì có

75% khách hàng sử dụng điện thoại IP 171”

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 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 như

Trang 17

ngôn ngữ 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 tìm ẩn trong dữ liệu Những tri thức này không đơn giản chỉ là kết quả của phép nhóm, tính tổng hay sắp xếp mà là kết quả của một quá trình tính toán khá phức tạp và tốn nhiều thời gian

Tuy luật kết hợp là dạng luật khá đơn giản nhưng lại mang khá nhiều ý nghĩa Thông tin mà dạng luật này đem lại là rất đáng kể và hỗ trợ không nhỏ trong quá trình

ra quyết định Tìm kiếm được các luật kết hợp thú vị và mang nhiều thông tin từ cơ sở

dữ liệu giao tác là một trong những hướng tiếp cận chính của lĩnh vực khai thác dữ liệu

2.2 Phát biểu bài toán khai thác luật kết hợp

 Đặt I = {i1, i2, …, in} là tập gồm n phần tử XI được gọi là tập phần tử

 T = {t1, t2, …, tm} là tập gồm m giao tác (giao tác là một bảng ghi), mỗi giao tác được định danh bởi tid (Transaction Identification)

 R là một quan hệ nhị phân trên I và T (hay RIT) Nếu giao tác t có chứa mục

i thì ta viết (i, t)R (hoặc iRt)

 (T, I, R) là ngữ cảnh khai thác dữ liệu

Một cơ sở dữ liệu D, về mặt hình thức, chính là một quan hệ nhị phân R như trên

Về ý nghĩa, một cơ sở dữ liệu là một tập các giao tác, mỗi giao tác t là một tập phần tử,

t2I (2I là tập tất cả tập con của I)

Độ hỗ trợ: Cho một tập phần tử XI Ký hiệu sup(X) là độ hỗ trợ (support) của một

tập phần tử X - là tỷ lệ phần trăm số giao tác trong cơ sở dữ liệu D chứa X trên tổng số

các giao tác trong cơ sở dữ liệu D, sup(X) = Card(X)/Card(D)100%

Tập phổ biến: Cho một tập phần tử XI và ngưỡng hỗ trợ tối thiểu minsup, xác định

bởi người dùng, minsup(0, 1] Một tập phần tử X được gọi là một tập phổ biến theo

Trang 18

ngưỡng minsup nếu và chỉ nếu độ hỗ trợ của nó lớn hơn hoặc bằng minsup: sup(X) ≥

Độ tin cậy của luật c =sup(XY)/sup(X)100% là tỷ lệ phần trăm các giao tác trong

D có chứa X thì cũng chứa Y Về mặt xác suất, độ tin cậy c của một luật là xác suất xảy ra Y với điều kiện đã xảy ra X

Luật kết hợp tin cậy: Một luật được xem là tin cậy nếu độ tin cậy c của nó lớn hơn

hoặc bằng một ngưỡng minconf(0, 1] nào đó do người dùng xác định

Ngưỡng minconf (Minimum Confidence) phản ánh mức độ xuất hiện của Y khi cho

trước X

Luật kết hợp cần tìm là luật kết hợp thỏa minsup và minconf cho trước Do vậy chúng

ta chỉ quan tâm đến các luật có độ hỗ trợ lớn hơn độ hỗ trợ tối thiểu và độ tin cậy lớn hơn độ tin cậy tối thiểu

Hầu hết các thuật toán khai thác luật kết hợp thường chia thành hai giai đoạn:

 Giai đoạn 1: Tìm tất cả các tập mục phổ biến từ cơ sở dữ liệu tức là tìm tất cả các tập phần tử X thỏa mãn sup(X) ≥ minsup

 Giai đoạn 2: Sinh các luật tin cậy từ các tập phổ biến đã tìm thấy ở giai đoạn 1

Ví dụ 2.1: Cho tập giao tác CSDL D, độ hỗ trợ tối thiểu minsup = 50%, độ tin cậy tối

thiểu minconf = 70% như sau:

Trang 19

Bảng 2.1 Tập giao tác CSDL D

+ Tính độ hỗ trợ của tập các phần tử phổ biến (lớn hơn hoặc bằng 50%)

Bảng 2.2 Tập phần tử phổ biến

+ Với tập phổ biến ABE (67%), ta có tập luật như sau :

Bảng 2.3 Luật kết hợp sinh từ tập {A, B, E}

Nhận xét: Độ hỗ trợ và độ tin cậy là một độ đo thú vị của luật

A, C, D, AB, AE, BC, BD, ABE (4/6)=67%

AD, CE, DE, ABD, ADE, BCE, BDE (3/6)=50%

Luật kết hợp Độ tin cậy (c>minconf) ?

 Tính độ tin cậy: c =s(X  Y)/s(X)  100 %

Trang 20

2.3 Một số hướng tiếp cận trong khai thác luật kết hợp

Lĩnh vực khai thác luật kết hợp cho đến nay đã được nghiên cứu và phát triển theo nhiều hướng khác nhau Có những đề xuất nhằm cải tiến tốc độ thuật toán, có những đề xuất nhằm tìm kiếm luật có ý nghĩa hơn Có một số hướng chính sau đây:

Luật kết hợp nhị phân (binary association rule hoặc boolean association rule): là

hướng nghiên cứu đầu tiên của luật kết hợp Hầu hết các nghiên cứu ở thời kỳ đầu về luật kết hợp đều liên quan đến luật kết hợp nhị phân Trong dạng luật kết hợp này, các thuộc tính chỉ được quan tâm là có hay không xuất hiện trong giao tác của cơ sở dữ liệu chứ không quan tâm về “mức độ“ xuất hiện Thuật toán tiêu biểu nhất khai thác

dạng luật này là thuật toán Apriori và các biến thể của nó Đây là dạng luật đơn giản và

các luật khác cũng có thể chuyển về dạng luật này nhờ một số phương pháp như rời rạc hóa, mờ hóa, Một ví dụ về dạng luật này : “sử dụng internet =’yes’ AND số truy cập

1260 =’yes’ Sử dụng dịch vu MegaVNN =’no’, với độ hỗ trợ 20% và độ tin cậy 80%”

Luật kết hợp có thuộc tính số và thuộc tính hạng mục (quantitative and categorial association rule): Trong thực tế, thuộc tính của các cơ sở dữ liệu có kiểu rất đa dạng

(nhị phân – binary, số – quantitative, hạng mục – categorial…) Để phát hiện luật kết hợp với các thuộc tính này, các nhà nghiên cứu đã đề xuất một số phương pháp rời rạc hóa nhằm chuyển dạng luật này về dạng nhị phân để có thể áp dụng các thuật toán đã

có Một ví dụ về dạng luật này “phương thức gọi =’Tự động’ AND giờ gọi 

‘23:00:39 23:00:59’ AND Thời gian đàm thoại  ‘200 300’  gọi liên tỉnh =’có’, với độ hỗ trợ là 23.53%, và độ tin cậy là 80%”

Luật kết hợp mờ (fuzzy association rule): Với những hạn chế còn gặp phải trong quá

trình rời rạc hóa các thuộc tính số (quantitave attributes), các nhà nghiên cứu đã đề xuất luật kết hợp mờ nhằm khắc phục các hạn chế trên và chuyển luật kết hợp về một

Trang 21

bao tư nhân = ‘yes’ AND thời gian đàm thoại lớn AND cước nội tỉnh = ‘yes’  cước

không hợp lệ = ‘yes’, với độ hỗ trợ 4% và độ tin cậy 85%” Trong luật trên, điều kiện thời gian đàm thoại lớn ở vế trái của luật là một thuộc tính đã được mờ hóa

2.4 Một số thuật toán đã công bố

Nhiều thuật toán đã được công bố để giải quyết vấn đề khai thác luật kết hợp Một trong các thuật toán sử dụng phổ biến trong nhiều lĩnh vực cho việc liệt kê các tập phổ biến là thuật toán Apriori Thuật toán Apriori cũng là cơ sở của hầu hết các thuật

toán khác Nó sử dụng tính chất là cho 1 tập k-phần tử là phổ biến thì tất cả tập

k-1-phần tử cũng phổ biến Tính chất này giúp giảm chi phí trong việc tính toán phát sinh

tập ứng viên Tuy nhiên, trong trường hợp tập 1-phần tử phổ biến là lớn, thuật toán Apriori vẫn phải đối mặt với hai vấn đề chính là duyệt đầy đủ tập dữ liệu nhiều lần và chi phí tính toán cao

Thuật toán DHP (Dynamic Hashing and Pruning)[17] là thuật toán dựa vào

Apriori, sử dụng bảng băm (hash table) với mục đích giảm không gian ứng viên bằng cách tính xấp xỉ độ hỗ trợ cho tập k+1 phần tử trong khi đếm tập k phần tử DHP cũng

có một cải tiến quan trọng khác là sắp xếp các giao tác bằng cách xoá các giao tác không chứa bất kỳ phần tử phổ biến nào Tuy nhiên, vấn đề này cũng gặp một số khó khăn cần giải quyết

Thuật toán CBAR[20] dùng clusterTable để tải dữ liệu vào bộ nhớ Sự tính toán độ hỗ trợ của thuật toán được thực hiện trong clusterTable mà không cần quét tất

cả các giao dịch

Thuật toán FP-Growth[9] là thuật toán theo chiều rộng, thuật toán này sử

dụng một cấu trúc cây FP để lưu trữ thông tin tập phổ biến của dữ liệu gốc ở một dạng nén Điểm nổi bật của thuật toán này là chỉ quét cơ sở dữ liệu hai lần, và không cần phát sinh tập ứng viên Chính điều này làm cho FP-Growth nhanh hơn Apriori

Cả Apriori và FP-Growth khai thác tập phổ biến từ một tập các giao dịch có định dạng dữ liệu theo chiều ngang (tid, itemset), trong đó tid là số thứ tự giao dịch và

Trang 22

itemset là tập hợp các mục dữ liệu xuất hiện trong tid Mặt khác cũng có thể khai thác

dữ liệu theo chiều dọc (item, tid)

Eclat[13] là thuật toán được đề xuất bởi Zaki, tác giả khai thác dữ liệu theo

chiều dọc Việc quét dữ liệu lần đầu để xây dựng tid của từng item đơn Sau đó bắt đầu với tập phổ biến 1-phần tử, phần tử phổ biến có (k+1) phần tử được hình thành từ tập k phần tử Thực hiện giao các tid của tập phổ biến có k phần tử để tính toán các tid của tập phổ biến (k+1) phần tử Tiến trình này lặp lại cho đến khi không còn tập phổ biến hoặc tập ứng viên nào Sau đó Zaki và Gouda[14] đã giới thiệu kỹ thuật diffset để giảm vùng nhớ lưu trữ Kỹ thuật diffset chỉ giữ lại sự khác biệt của các tid và các tập ứng viên khi nó sản sinh ra tập phổ biến

Gần đây, Dong và Han đã giới thiệu thuật toán BitTableFI[6], trong thuật toán

này cấu trúc BitTable được dùng theo chiều ngang và chiều dọc để nén cơ sở dữ liệu, việc phát sinh các tập ứng viên và việc tính toán độ hỗ trợ được thực hiện một cách nhanh chóng bằng cách sử dụng phép toán MID và phép giao bit

Mặc dù thuật toán BitTableFI[6] đạt được hiệu quả cao bằng cách giảm chi phí cho việc phát sinh tập các ứng viên và tính toán độ hỗ trợ Tuy nhiên, trong tình huống với số lượng lớn tập phổ biến, tập nhiều phần tử hoặc ngưỡng hỗ trợ nhỏ thì thuật toán vẫn tốn nhiều chi phí cho việc tính toán và kiểm tra các tập ứng viên Đáng lưu ý là ở thuật toán BitTableFI việc xây dựng tập ứng viên 2 phần tử được thực hiện giống thuật toán Apriori Giả sử có 104 tập phổ biến 1-phần tử, thì thuật toán cần sản sinh nhiều hơn 107 ứng viên 2 phần tử Vì thế việc lưu trữ các ứng viên sẽ cần không gian lớn, và việc tính toán độ hỗ trợ sẽ rất phức tạp

Index-BitTableFI[19] được tác giả Wei-Song và đồng nghiệp đề xuất nhằm

giải quyết những khó khăn trên Thuật toán Index-BitTableFI được xây dựng dựa trên cấu trúc BitTable theo cả chiều ngang và chiều dọc Để dùng theo chiều ngang, mảng Index và phương pháp tính Subsume được đề xuất, bằng cách tính toán này những

Trang 23

kiếm theo chiều rộng Sau đó, từ những itemset này được sử dụng để tiếp tục xây dựng các tập phổ biến khác Vì vậy, sự tìm kiếm ghép được thực hiện, và không gian tìm kiếm được giảm đáng kể Ngoài ra, tác giả cũng đã chứng minh được những tập phổ biến itemset được đại diện bởi item sẽ có cùng độ hỗ trợ với item, và danh sách tập phổ biến được xây dựng bằng cách kết hợp item với tất cả các tập con của subsume của nó

Vì vậy chi phí xử lý cho những loại itemset này là thấp hơn và hiệu quả hơn

Trong đề tài này chúng tôi lựa chọn thuật toán khai thác tập phổ biến BitTableFI dựa trên cấu trúc Index-BitTable, thuật toán bao gồm những bước sau:

Index-1 Nén dữ liệu vào bảng BitTable

2 Xây dựng mảng Index là danh sách tập phổ biến 1-phần tử

3 Tính subsume của từng Index[i], trong đó Index[i] là phần tử đại diện của subsume

4 Duyệt bảng Index và tiến hành tìm tất cả các phần tử phổ biến khác

Trang 24

CHƯƠNG 3 KHAI THÁC TẬP PHỔ BIẾN DỰA TRÊN CẤU TRÚC

INDEX-BITTABLE

3.1 Cấu trúc BitTable

BitTable là tập các số nguyên mà sự hiện diện của nó biểu thị cho mục dữ liệu Nếu mục dữ liệu I xuất hiện trong giao dịch t thì bit thứ i của t trong BitTable sẽ mang giá trị 1 Với tập ứng viên được nén, nếu tập ứng viên c có chứa mục dữ liệu I thì bit thứ I của bảng BitTable sẽ mang giá trị 1, ngược lại nó sẽ mang giá trị 0 Với dữ liệu được nén, thì BitTable được sử dụng theo chiều dọc Nếu mục dữ liệu I xuất hiện trong giao dịch t thì bit thứ I của t trong BitTable sẽ mang giá trị 1 Nếu kích cỡ của mục dữ liệu là S, kích cỡ của cơ sở dữ liệu là lớn hơn kích cỡ W của bộ nhớ thì kích cỡ của mảng BitTable sẽ là S/W+1 được sử dụng để lưu trữ dữ liệu nén[6]

Ví dụ: Cho CSDL D như sau

Trang 25

Bảng 3.2 Minh họa dữ liệu được nén vào bảng BitTable

3.2 Thuật toán BitTableFI

Thuật toán Apriori có 2 vấn đề[6] Thứ nhất, tiến trình phát sinh tập ứng viên Ckcần phải so sánh các cặp phần tử sao cho có (k-1) phần tử đầu phải giống nhau và nó làm tốn nhiều thời gian xử lý của CPU Thứ hai, cần phải duyệt Ck để sinh ra Lk Trong quá trình duyệt, thuật toán sẽ tính toán số lần mà mỗi mục dữ liệu trong Lk xuất hiện trong quá trình giao dịch Nếu Lk được sinh ra, thì cần phải duyệt dữ liệu k lần

Thuật toán BitTableFI[6] là thuật toán được đề xuất gần đây, không giống như những thuật toán được đề xuất trước đây dựa trên nền tảng Apriori Những thuật toán này chủ yếu quan tâm đến kỹ thuật tỉa trong quá trình tìm kiếm tập phổ biến, nhưng tiến trình phát sinh tập ứng viên và tính toán độ hỗ trợ vẫn còn lãng phí thời gian

Thuật toán BitTableFI có ý nghĩa khác hơn so với thuật toán Apriori và những thuật toán mở rộng từ Apriori Trong thuật toán này, dữ liệu được nén vào bảng BitTable, việc phát sinh tập ứng viên và tính toán độ hỗ trợ được thực hiện một cách nhanh chóng

3.2.1 Tìm nhanh tập ứng viên

Trước khi thực hiện việc phát sinh nhanh tập ứng viên, thì tập phổ biến 1-phần

tử phải được thực hiện trước Tất cả tập không phổ biến 1-phần tử phải được lược bỏ

để làm giảm kích thước của BitTable và cải thiện hiệu quả của tiến trình phát sinh ứng

Trang 26

viên, vì tất cả tập không phổ biến 1-phần tử không có ích cho tiến trình phát sinh ứng viên kế tiếp[6]

Kế đến, tập phổ biến 1-phần tử được sắp xếp theo thứ tự ký tự và mỗi mục dữ liệu được đánh dấu bởi ký tự định danh Sau khi tập phổ biến 2-phần tử được phát sinh, tập các mục dữ liệu phổ biến được xây dựng

Theo Apriori, tập ứng viên Ck+1 được xây dựng bằng cách giao hai mục dữ liệu của Lk trong đó có (k-1) phần tử giống nhau Trong mỗi thành phần E1 trong tập phổ biến của BitTable BLk, một biến MID được phát sinh bằng cách thay thế bit 1 cuối cùng của E1 với 0 Với mỗi thành phần E2 sau E1, phép dịch chuyển bitwise và toán tử

& được thực hiện với MID Nếu kết quả trả về bằng MID, thì E1 và E2 trong Lk có 1) mục dữ liệu giống nhau Khi đó, việc phát sinh tập các ứng viên bằng việc thực hiện phép dịch chuyển bitwise trên E1 và E2 và các tập ứng viên này được thêm vào BitTable BCk+1

(k-Việc nén các tập phổ biến vào BitTable đã tiết kiệm nhiều bộ nhớ và tính toán bằng bitwise và phép toán and/or nhanh hơn rất nhiều so với việc so sánh mỗi mục dữ liệu như Apriori Tiến trình tìm nhanh tập ứng viên được minh họa như sau[6]:

Trang 27

Hình 3.1- Minh họa tiến trình tìm tập ứng viên

Ví dụ: Với dữ liệu ở bảng 3.1, minsup=2

Sau khi duyệt CSDL lần đầu tiên, L1={1, 2, 3, 5} được sinh ra, mục dữ liệu 4 không là tập phổ biến, vì thế tập phổ biến 1-phần tử được sắp xếp lại thành L1={1, 2,

3, 4} để làm giảm kích thước của BitTable Như vậy, ta có 4 tập phổ biến 1-phần tử, thì chiều dài của BitTable là 4

Sau khi BitTableFI hoàn thành, các tập phổ biến sẽ được trả lại giá trị ban đầu

Trang 28

Thực hiện tính C1={{1,2}, {1,3}, {1,4}, {2,3}, {2,4}, {3,4}}

Và L2 được sinh ra như sau L2={{1,3}, {2,3}, {2,4}, {3,4}} các bit nhị phân tương ứng của BitTable BL2 sẽ là {{1 0 1 0}, {0 1 1 0}, {0 1 0 1}, {0 0 1 1}} Vì thế các giá trị tương ứng của BitTable BL2 sẽ là {10 6 5 3}

Tập {1, 3} có MID=8 vì ta thay thế bit 1 cuối cùng của {1, 3} (tương ứng là {1

0 10} ) với 0 ta được {1 0 0 0} Sau đó ta thực hiện phép dịch chuyển bitwise và phép toán and trên tập {6, 5, 3} (tương ứng là {2, 3} {2, 4} {3, 4}) và kết quả là không có tập nào được sinh ra

Tương tự, xét tập {2, 3} có MID=4, thực hiện phép dịch chuyển bitwise trên tập {5, 3} (tương ứng {2, 4} {3, 4}) và kết quả ta có {2, 3, 4}

MID(L2[i]) MID&L2[j] BitTable BC3

Trang 29

3.2.2 Cách tính nhanh độ hỗ trợ

Việc tính toán độ hỗ trợ của các tập ứng viên được hiện trực tiếp trên bảng BitTable Đối với mỗi mục dữ liệu của tập ứng viên, sẽ có tương ứng từng phần tử trên bảng BitTable, sau đó áp dụng toán tử bitwise để tính giao các phần tử của BitTable

Số lượng bit 1 của giá trị kết quả chính là độ hỗ trợ của tập ứng viên cần tính

Tiến trình tính nhanh độ hỗ trợ của các ứng viên được minh họa như sau[6]:

Hình 3.3- Minh họa tiến trình tính nhanh độ hỗ trợ của các ứng viên

Đếm số lượng bit 1 của E1

Thêm E1vào BCk nếu sup(E1) ≥ minsup

Output: tập phổ biến

BitTable BLk

No

Yes

Trang 30

Ví dụ: để tính độ hỗ trợ của ứng viên {2, 3, 5} thực hiện

Hình 3.4- Minh họa cách tính độ hỗ trợ

3.2.3 Thuật toán BitTableFI

Với thuật toán BitTableFI, đầu tiên phải tìm tập phổ biến 1-phần tử và thực hiện việc gán dữ liệu của CSDL vào bảng BitTable Sau đó sử dụng tiến trình phát sinh nhanh tập ứng viên và tính nhanh độ hỗ trợ để phát sinh toàn bộ tập phổ biến cho đến khi không còn mục dữ liệu nào trong Lk

Thuật toán BitTable được minh họa bởi đoạn mã giả sau[6]:

trong khi (Lk không rỗng)

Ck=gen_candidate(Lk-1)

Lk=support_count(Ck,db,minsup) }

Trang 31

3.3 Thuật toán Index-BitTableFI

Thuật toán BitTableFI cho kết quả tốt có thể nói là đáng kể trong việc giảm chi phí việc phát sinh các tập ứng viên và tính toán độ hỗ trợ Tuy nhiên, trong tình huống

là khi số lượng các tập phổ biến lớn, nhiều mục dữ liệu, hoặc là ngưỡng hỗ trợ quá bé thì chi phí cho việc phát sinh các tập ứng viên là quá lớn[19] Chẳng hạn, việc phát sinh và tính toán độ hỗ trợ cho các tập ứng viên có chiều dài là 2 thì trở thành vấn đề,

vì ở đây việc xây dựng các ứng viên có độ dài bằng 2 được thực hiện giống như thuật toán Apriori đã làm Vì thế, việc lưu trữ các bit-vectors của các ứng viên đòi hỏi không gian lớn, việc tính độ hỗ trợ của các ứng viên sẽ rất phức tạp

Để giảm bớt không gian tìm kiếm và thừa hưởng những lợi thế của BitTable, khai thác dữ liệu theo cả chiều ngang và chiều dọc, mảng Index được đề xuất[19] Mục đích là để xác định rằng những itemset xuất hiện đồng thời cùng với các item đại diện Kết quả là tất cả các itemset đều là tập phổ biến Vì thế, các hoạt động dư thừa trên các thế hệ ứng viên và kiểm tra tập phổ biến có thể tránh được

Trang 32

 ( ) ( )

)(item j I item j g item g j subsume     

item : là mục dữ liệu đại diện

subsume: là tập các mục dữ liệu j, sao cho j đứng sau item và tập các giao dịch chứa mục dữ liệu j phải bao phủ các tập giao dịch có chứa mục dữ liệu item

Thuật toán 1: xây dựng bảng Index

Input: CSDL D, ngưỡng hỗ trợ minsup

Output: mảng Index

1 Duyệt D và xóa những item không là phổ biến

2 Sắp xếp danh sách tập phổ biến 1-phần tử tăng dần theo sup: a1,a2, ,am

3 Với mỗi phần tử j của mảng Index thực hiện:

4 Gán Index[j].item =aj

5 Xây dựng BitTable từ cơ sở dữ liệu

6 Với mỗi phần tử j của mảng Index thực hiện:

7 Gán Index[j].subsume=Ø

8 Gán candidate=t  g(index[j].item)t

9 Với mỗi i>j thực hiện

10 Nếu giá trị của bit thứ i trong candidate là 1 thì

11 Đưa index[i].item vào index[j].subsume

12 Xuất mảng Index

Ở thuật toán này:

 Bước (1) duyệt qua cơ sở dữ liệu để tìm tập phổ biến 1-phần tử

j đứng sau item

Ngày đăng: 20/10/2014, 22:48

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Lê Hoài Bắc, Võ Đình Bảy (2007), “Thuật toán tìm nhanh Minimal Generator của tập phổ biến đóng ”. Tạp chí phát triển KH&CN, tập 10, số 12-2007 Sách, tạp chí
Tiêu đề: Thuật toán tìm nhanh Minimal Generator của tập phổ biến đóng ”. "Tạp chí phát triển KH&CN
Tác giả: Lê Hoài Bắc, Võ Đình Bảy
Năm: 2007
[2] Lê Hoài Bắc, Võ Đình Bảy (2008), “Khai thác luật thiết yếu nhất từ tập phổ biến đóng”. Science & Technology Development, Vol 11, No.01-2008.Tiếng Anh Sách, tạp chí
Tiêu đề: Khai thác luật thiết yếu nhất từ tập phổ biến đóng”. "Science & Technology Development
Tác giả: Lê Hoài Bắc, Võ Đình Bảy
Năm: 2008
[3] A. Inokuchi, T. Washio, H. Motoda, Complete mining of frequent patterns from graphs: mining graph data, Machine Learning 50 (3) (2003) 321–354 Khác
[4] A. Savasere, E. Omiecinski, S.B. Navathe, An efficient algorithm for mining association rules in large databases, in: Proceedings of 21th International Conference on Very Large Data Bases (VLDB’95), Zurich, 1995, pp. 432–444 Khác
[5] H. Toivonen, Sampling large databases for association rules, in: Proceedings of22th International Conference on Very Large Data Bases (VLDB’96), Bombay,India, 1996, pp. 134–145 Khác
[6] J. Dong, M. Han, BitTableFI: an efficient mining frequent itemsets algorithm, Knowledge Based Systems 20 (4) (2007) 329–335 Khác
[7] J. Fong, H.K. Wong, S.M. Huang, Continuous and incremental data mining association rules using frame metadata model, Knowledge Based Systems 16 (2) (2003) 91–100 Khác
[8] J. Han, Data Mining: Concepts and Techniques, University of Illinois at Urbana- Champaign, 2006 Khác
[9] J.Han, J.Pei, Y.Yin, Mining frequent patterns without candidate generation, in: Proceedings of the 2000 ACM-SIGMOD International Conference on Management of Data (SIGMOD’00), Dallas, Texas, 2000, pp. 1–12 Khác
[10] J. Pei, J. Han, H. Lu, S. Nishio, S. Tang, D. Yang, H-Mine: hyper-structure mining of frequent patterns in large databases, in: Proceedings of the 2001 IEEE International Conference on Data Mining (ICDM’01), San Jose, CA, 2001, pp.441–448 Khác
[11] J.S. Park, M.S. Chen, P.S. Yu, An efficient hash-based algorithm for mining association rules, in: Proceedings of the 1995 ACM SIGMOD International Conference on Management of Data (SIGMOD’95), San Jose, California, 1995, pp 175-186 Khác
[12] M.J. Zaki, Mining non-redundant association rules, Data Mining and Knowledge Discovery 9 (3) (2004) 223-248 Khác
[13] M.J. Zaki, Scalable algorithms for association mining, IEEE Transactions on Knowledge and Data Engineering 12 (3) (2000) 372-390 Khác
[14] M.J. Zaki, K. Gouda, Fast vertical mining using diffsets, in: Proceedings of the Ninth ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, Washington, DC, 2003, pp.326-335 Khác
[15] R. Agrawal, R. Srikant, Fast algorithms for mining association rules in largedatabases, in: Proceedings of the 20th International Conference on Very LargeData Bases (VLDB’94), Chile, 1994, pp. 487–499 Khác
[16] R. Agrawal, T. Imilienski, A. Swami, Mining association rules between sets of items in large databases, in: Proceedings of the ACM SIGMOD International Conference on Management of Data, Washington, DC, 1993, pp. 207-216 Khác
[17] S. Orlando, P. Palmerini, R. Perego, Enhancing the Apriori algorithm for frequent set counting, in: Proceedings of Third International Conferrence on Data Warehousing and Knowledge Discovery (DaWak’01), Munich, 2001, pp.71-82 Khác
[19] W.Song, B.Yang, Index-BitTableFI :An improved algorithm for mining frequent itemsets, Knowledge Based Systems 21 (2008) 507-513 Khác
[20] Y.J. Tsay, J.Y. Chiang, CBAR: an efficient method for mining association rules, Knowledge Based Systems 18 (2-3) (2005) 99-105 Khác
[21] T. Calders, B. Goethals, Non-derivable itemset mining, Data Mining andKnowledge Discovery 14 (1) (2007) 171–206 Khác

HÌNH ẢNH LIÊN QUAN

Hình 1.1. Các công đoạn của quá trình khai thác tri thức trong CSDL - Khai thác tập phổ biến dựa trên cấu trúc index bittable
Hình 1.1. Các công đoạn của quá trình khai thác tri thức trong CSDL (Trang 9)
Bảng 2.3. Luật kết hợp sinh từ tập {A, B, E} - Khai thác tập phổ biến dựa trên cấu trúc index bittable
Bảng 2.3. Luật kết hợp sinh từ tập {A, B, E} (Trang 19)
Bảng 3.2. Minh họa dữ liệu được nén vào bảng BitTable - Khai thác tập phổ biến dựa trên cấu trúc index bittable
Bảng 3.2. Minh họa dữ liệu được nén vào bảng BitTable (Trang 25)
Hình 3.1- Minh họa tiến trình tìm tập ứng viên - Khai thác tập phổ biến dựa trên cấu trúc index bittable
Hình 3.1 Minh họa tiến trình tìm tập ứng viên (Trang 27)
Hình 3.2- Minh họa tiến trình phát sinh nhanh tập ứng viên itemset support - Khai thác tập phổ biến dựa trên cấu trúc index bittable
Hình 3.2 Minh họa tiến trình phát sinh nhanh tập ứng viên itemset support (Trang 28)
Hình 3.3- Minh họa tiến trình tính nhanh độ hỗ trợ của các ứng viên - Khai thác tập phổ biến dựa trên cấu trúc index bittable
Hình 3.3 Minh họa tiến trình tính nhanh độ hỗ trợ của các ứng viên (Trang 29)
Hình 3.4- Minh họa cách tính độ hỗ trợ - Khai thác tập phổ biến dựa trên cấu trúc index bittable
Hình 3.4 Minh họa cách tính độ hỗ trợ (Trang 30)
Bảng 3.3. CSDL D - Khai thác tập phổ biến dựa trên cấu trúc index bittable
Bảng 3.3. CSDL D (Trang 33)
Bảng 3.5. Bảng Index - Khai thác tập phổ biến dựa trên cấu trúc index bittable
Bảng 3.5. Bảng Index (Trang 34)
Bảng 3.7. Bảng Index - Khai thác tập phổ biến dựa trên cấu trúc index bittable
Bảng 3.7. Bảng Index (Trang 35)
Hình 3.5. Danh sách các tập phổ biến - Khai thác tập phổ biến dựa trên cấu trúc index bittable
Hình 3.5. Danh sách các tập phổ biến (Trang 40)
Hình 3.7. Minh họa nhận xét  Cải tiến thuật toán: - Khai thác tập phổ biến dựa trên cấu trúc index bittable
Hình 3.7. Minh họa nhận xét Cải tiến thuật toán: (Trang 44)
Hình 3.8- Thời gian thực thi trên dữ liệu cước năm 2010 Bảng 3.9. Kết quả thực nghiệm trên dữ liệu cước và dữ liệu accident - Khai thác tập phổ biến dựa trên cấu trúc index bittable
Hình 3.8 Thời gian thực thi trên dữ liệu cước năm 2010 Bảng 3.9. Kết quả thực nghiệm trên dữ liệu cước và dữ liệu accident (Trang 46)
Hình 3.9- Thời gian thực thi trên dữ liệu accident - Khai thác tập phổ biến dựa trên cấu trúc index bittable
Hình 3.9 Thời gian thực thi trên dữ liệu accident (Trang 47)
Hình 3.10- Thời gian thực thi trên dữ liệu cước năm 2009 - Khai thác tập phổ biến dựa trên cấu trúc index bittable
Hình 3.10 Thời gian thực thi trên dữ liệu cước năm 2009 (Trang 47)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w