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

Tìm hiểu luật kết hợp và kỹ thuật gom cụm trong khai phá dữ liệu – chương trình demo thuật toán Apriori và K-means

77 716 6

Đ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 77
Dung lượng 1,39 MB

Nội dung

Chính vì những hiệu quả thiết thực của khai phá dữ liệu, mà trong bài thu hoạch chuyên đề “Khai phá dữ liệu và nhà kho dữ liệu” em sẽ trình bày nội dung: “Tìm hiểu luật kết hợp và kỹ thu

Trang 1

MỤC LỤC

- -LỜI MỞ ĐẤU 3

NỘI DUNG 5

I TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU 5

1 Khái niệm: 5

2 Quá trình phát hiện tri thức trong CSDL 15

3 Các kỹ thuật khai phá dữ liệu 16

II LUẬT KẾT HỢP TRONG KHAI PHÁ DỮ LIỆU 18

1 Khai phá luật kết hợp 18

2 Lý thuyết về luật kết hợp 19

III MỘT SỐ THUẬT TOÁN PHÁT HIỆN LUẬT KẾT HỢP 29

1 Thuật toán Apriori 29

2 Thuật toán khắc phục nhược điểm thuật toán Apriori - Thuật toán FP-growth 36

IV KỸ THUẬT GOM CỤM TRONG KHAI PHÁ DỮ LIỆU 40

1 Giới thiệu kỹ thuật phân cụm 40

2 Giới thiệu thuật toán K-means 41

3 Nội dung thuật toán K-means 42

4 Đánh giá thuật toán K-means 49

5 Thuật toán K-mediods - Biến thể và cải tiến của thuật toán K-means 49

V GIỚI THIỆU CHƯƠNG TRÌNH DEMO THUẬT TOÁN APRIORI 51

1 Xây dựng chương trình 51

2 Sử dụng chương trình: 51

3 Giao diện chương trình: 51

4 Code chương trình: 55

VI GIỚI THIỆU CHƯƠNG TRÌNH DEMO THUẬT TOÁN K-MEANS 68

1 Xây dựng chương trình 68

2 Sử dụng chương trình: 69

3 Giao diện chương trình: 69

4 Code chương trình: 72

KẾT LUẬN 76

TÀI LIỆU THAM KHẢO 78

Trang 2

LỜI MỞ ĐẤU - -

Trong những năm gần đây, sự phát triển mạnh mẽ của CNTT và ngànhcông nghiệp phần cứng đã dẫn đến khả năng thu thập và lưu trữ thông tin củacác hệ thống thông tin tăng nhanh một cách vượt bậc Bên cạnh đó, việc tinhọc hoá một cách ồ ạt và nhanh chóng trong các lĩnh vực hoạt động sản xuất,kinh doanh cũng như nhiều lĩnh vực hoạt động khác đã tạo nên một lượng dữliệu lưu trữ khổng lồ Sự bùng nổ này đã dẫn tới một yêu cầu cấp thiết là cần

có những kỹ thuật và công cụ mới để tự động chuyển đổi lượng dữ liệu khổng

lồ thành các tri thức có ích Hơn ai hết, các nhà quản lý đều biết rằng: “Có CSDL là có thông tin - Có thông tin là có tri thức – Và vận dụng tri thức hiệu quả sẽ dẫn đến thành công” Vì thế, một trong những vấn đề “quyết

định” hiện nay là cần có kỹ thuật khai phá dữ liệu một cách hiệu quả, để có thểđáp ứng nhanh chóng các yêu cầu mang tính chuyên nghiệp ngày một caocủa các nhà quản lý

Khai phá dữ liệu (Data Mining) thực chất là quá trình trích xuất các

thông tin có giá trị tiềm ẩn bên trong khối lượng lớn dữ liệu được lưu trữ trongcác CSDL, kho dữ liệu… Hiện nay, ngoài thuật ngữ khai phá dữ liệu, người tacòn dùng một số thuật ngữ khác có ý nghĩa tương tự như: khai phá tri thức từ

CSDL (Knowlegde Mining From Databases), trích lọc dữ liệu (Knowlegde Extraction), phân tích dữ liệu/mẫu (Data/Pattern Analysis), khảo cổ dữ liệu (Data Archaeology), nạo vét dữ liệu (Data Dredging) Nhiều người xem khai

phá dữ liệu và một thuật ngữ thông dụng khác là khám phá tri thức trong

CSDL (Knowlegde Discovery in Databases – KDD) là như nhau Tuy nhiên

trên thực tế, khai phá dữ liệu chỉ là một bước thiết yếu trong quá trình khámphá tri thức trong CSDL Trong xu thế phát triển chung, việc nắm bắt đượcthông tin được xem là cơ sở của mọi hoạt động sản xuất, kinh doanh Cánhân hoặc tổ chức nào có thể thu thập và hiểu được thông tin, và hành động

để đưa ra các phương án dựa trên các thông tin được kết xuất từ các thôngtin đã có thì có thể nói bước đầu đã đạt được thành công trong hoạt động

Trang 3

Ví dụ: Khảo sát thông tin để tìm hiểu nhu cầu mua sắm của khách hàng, trên cơ sở đó đề ra chiến lược kinh doanh, sắp xếp các nhóm hàng trong siêu thị hợp lý hay có cách tiếp cận đặc biệt đến các đối tượng người dùng đa dạng (phân nhóm khách hàng tiềm năng, VIP để có thể phục vụ khách hàng tốt nhất…) Mặt khác, sự tăng trưởng vượt bậc của các CSDL:

thương mại, quản lý và khoa học đã làm nảy sinh và thúc đẩy sự phát triểncủa kỹ thuật thu thập, lưu trữ, phân tích và khai phá dữ liệu… không chỉ bằngcác phép toán đơn giản thông thường như: phép đếm, thống kê… mà đòi hỏicách xử lý thông minh hơn, hiệu quả hơn Từ việc nắm bắt thông tin “có chọnlọc” các nhà quản lý có được thông tin có ích để tác động trở lại quá trình sản

xuất, kinh doanh của mình… Các kỹ thuật cho phép ta khai thác được tri thức hữu dụng từ CSDL được gọi là các kỹ thuật khai phá dữ liệu (DM – Data Mining) Trong đó, khai phá luật kết hợp và gom cụm dữ liệu là những nội dung quan trọng trong khai phá dữ liệu Chính vì những hiệu

quả thiết thực của khai phá dữ liệu, mà trong bài thu hoạch chuyên đề “Khai

phá dữ liệu và nhà kho dữ liệu” em sẽ trình bày nội dung: “Tìm hiểu luật kết

hợp và kỹ thuật gom cụm trong khai phá dữ liệu – chương trình demo

thuật toán Apriori và K-means”, với mục đích hệ thống hóa kiến thức của

môn học mới, phân tích ưu khuyết điểm của từng thuật toán để người dùng có thể định hướng cách tiếp cận cũng như lựa chọn sử dụng kỹ thuật đúng theo yêu cầu hay thích hợp trong từng lĩnh vực mà mình quan tâm và qua demo chương trình giúp người sử dụng chương trình có thể xác định các luật kết hợp cũng như có kỹ thuật gom cụm dữ liệu một cách nhanh chóng mà vẫn hiệu quả.

Thông qua bài thu hoạch, em xin gửi lời cảm ơn đến Phó Giáo sư Tiến sỹ Đỗ Phúc Với kiến thức sâu rộng, lòng nhiệt tình, thái độ làm việc rất

-nghiêm túc cùng với cách giảng giải rõ ràng, dễ hiểu, qua các câu chuyện, ví

dụ ứng dụng trong thực tế cuộc sống, thầy đã tận tâm truyền đạt những kiến

thức nền tảng cơ bản cho chúng em về môn học “KHAI PHÁ DỮ LIỆU VÀ NHÀ KHO DỮ LIỆU” – và điều này thật sự giúp em hiểu rõ hơn vấn đề, mở

Trang 4

rộng tầm nhìn, thấy được sự cần thiết của môn học đang ảnh hường và chiphối đến nhiều lĩnh vực trong thời đại.

NỘI DUNG

- -I TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU

1 Khái niệm:

Khai phá dữ liệu là một khái niệm ra đời vào những năm 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, khaiphá 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 trong tập dữ liệu

Năm 1989, Fayyad, Piatestsky-Shapiro và Smyth đã dùng khái niệmphát hiện tri thức trong cơ sở dữ liệu để chỉ toàn bộ quá trình phát hiện các trithức có ích từ các tập dữ liệu lớn; trong đó khai phá dữ liệu là một bước đặcbiệt trong toàn bộ quá trình, sử dụng các giải thuật đặc biệt để chiết xuất racác mẫu hay các mô hình từ dữ liệu

Data Mining là một giai đoạn quan trọng trong quá trình khám phá trithức trong cơ sở dữ liệu Quá trình khám phá tri thức trong cơ sở dữ liệu baogồm 6 bước sau:

phá tri thức Đây là bước được khai thác trong một cơ sở dữ liệu, một kho dữliệu và thậm chí các dữ liệu từ các nguồn ứng dụng Web

từ các tập dữ liệu lớn (Databases, Data Warehouses, Data Repositories)ban đầu theo một số tiêu chí nhất định

không đầy đủ, dữ liệu nhiễu, dữ liệu không nhất quán, ), tổng hợp dữ liệu(nén, nhóm dữ liệu, tính tổng, xây dựng các histograms, lấy mẫu, ), rời rạc

Trang 5

hóa dữ liệu (rời rạc hóa dựa vào histograms, entropy, phân khoảng, ) Saubước tiền xử lý này, dữ liệu sẽ nhất quán, đầy đủ hơn.

- Chuyển đổi dữ liệu: Chuyển đổi dữ liệu về dạng phù hợp cho việc khai phábằng cách thực hiện các thao tác nhóm hoặc tập hợp

- Khai phá dữ liệu: Là bước áp dụng những kỹ thuật phân tích, những mốiquan hệ đặc biệt trong dữ liệu Đây được xem là bước quan trọng và tốn thờigian nhất của toàn bộ quá trình khám phá tri thức

- Đánh giá luật: Đánh giá sự hữu ích của các mẫu biểu diễn tri thức dựa trênmột số phép đo Sau đó sử dụng các kỹ thuật trình diễn và trực quan hoá dữliệu để biểu diễn tri thức khai phá được cho người sử dụng

Mục đích chính của khai thác dữ liệu:

- Mô tả: mô tả về những tính chất hoặc đặc tính chung của dữ liệu trong cơ

sở dữ liệu hiện có

- Dự đoán: đưa ra các dự đoán dựa vào việc phân tích dữ liệu hiện thời.

Dựa vào hai mục đích chính này của khai thác dữ liệu, người ta sử dụng cácphương pháp sau:

Các phương pháp khai thác dữ liệu

Trang 6

Kỹ thuật khai phá dữ liệu dự đoán: Nhiệm vụ của khai phá dữ liệu dự đoán

là đưa ra các dự đoán dựa vào các suy diễn trên dữ liệu hiện thời và thường

sử dụng các biến hay các trường trong cơ sở dữ liệu để dự đoán các giá trịkhông biết hay các giá trị tương lai Bao gồm các kỹ thuật: phân loại(classification), hồi quy (regression)

Kỹ thuật phân loại : Mục tiêu của phương pháp phân loại dữ liệu là dự

đoán nhãn lớp cho các mẫu dữ liệu Quá trình phân loại dữ liệu thườnggồm 2 bước: xây dựng mô hình và sử dụng mô hình để phân loại dữ liệu

Xây dựng mô hình: dựa trên việc phân tích các mẫu dữ liệu cho trước gọi

là tập huấn luyện (training set) Mỗi mẫu thuộc về một lớp, được xác định bởimột thuộc tính gọi là thuộc tính lớp Các nhãn lớp của tập training set đều phảiđược xác định trước khi xây dựng mô hình, vì vậy phương pháp này cònđược gọi là học có giám sát

Sử dụng mô hình để phân loại dữ liệu: Trước hết chúng ta phải tính độ

chính xác của mô hình Nếu độ chính xác là chấp nhận được, mô hình sẽđược sử dụng để dự đoán nhãn lớp cho các mẫu dữ liệu khác trong tương lai

Kỹ thuật hồi qui : Kỹ thuật hồi qui có chức năng tương tự như kỹ thuật

phân loại, tuy nhiên, hồi qui sử dụng cho kiểu dữ liệu liên tục còn phân loại

sử dụng cho dữ liệu

Kỹ thuật khai phá dữ liệu mô tả

Kỹ thuật phân cụm : Mục tiêu chính của phương pháp phân cụm dữ liệu là

nhóm các đối tượng tương tự nhau trong tập dữ liệu vào các cụm sao chocác đối tượng thuộc cùng một cụm là tương đồng còn các đối tượng thuộccác cụm khác nhau sẽ không tương đồng Phân cụm dữ liệu là một ví dụcủa phương pháp học không giám sát Không giống như phân loại dữ liệu,phân cụm dữ liệu không đòi hỏi phải định nghĩa trước các mẫu dữ liệuhuấn luyện Vì thế, có thể coi phân cụm dữ liệu là một cách học bằng quansát (Learning By Observation), trong khi phân loại dữ liệu là học bằng ví dụ(Learning By Example)

Trang 7

Kỹ thuật hồi qui : Mục tiêu của phương pháp này là phát hiện và đưa ra

các mối liên hệ giữa các giá trị dữ liệu trong CSDL Mẫu đầu ra của giảithuật khai phá dữ liệu là tập luật kết hợp tìm được

Tư tưởng thuật toán

Cây quyết định là cấu trúc cây có dạng biểu đồ luồng, mỗi nút trong là kiểm định trên một thuộc tính, mỗi nhánh đại diện cho một kết quả kiểm định, các nút lá đại diện cho các lớp Nút cao nhất trên cây là nút gốc

Rút luật từ Cây quyết định “Chơi Tennis” (theo VD: tập học trang 8,9)

Để phân loại một mẫu chưa biết, các giá trị thuộc tính của mẫu sẽ được kiểmđịnh trên cây Đường đi từ gốc tới một nút lá cho biết dự đoán lớp đối với mẫu

đó (Với P là mẫu dương tương ứng quyết định Yes; Với N là mẫu âm tươngứng quyết định No)

Mục đích giải thuật: Xây dựng cây quyết định từ tập training set cho trước

Thuật toán ID3

Trang 8

Thuật toán ID3 (Quinlan 86) là một trong những thuật toán xây dựng cây quyếtđịnh sử dụng Information Gain để lựa chọn thuộc tính phân lớp đối tượng.Thuật toán xây dựng cây theo cách từ trên xuống, bắt đầu từ một tập các đốitượng và đặc tả của các thuộc tính Tại mỗi đỉnh của cây, một thuộc tính cóInformation Gain lớn nhất sẽ được chọn để phân chia tập đối tượng Quá trìnhnày được thực hiện một cách đệ qui cho đến khi một tập đối tượng tại một câycon đã cho trở nên thuần nhất, tức là nó chỉ chứa các đối tượng thuộc vềcùng một lớp Lớp này sẽ trở thành một lá của cây

Độ đo lựa chọn thuộc tính - Information Gain

Entropy:

Ý nghĩa: Xác định độ hỗn loạn thông tin của dữ liệu.

Công thức : Entropy(P1, P2, P3…)=-P1 log P1-P2 log P2-…-Pn log Pn

Information Gain

Ý nghĩa: Độ lợi thông tin Nó xác định mức độ hiệu quả của một thuộc tính

trong bài toán phân lớp dữ liệu Đó chính là sự rút gọn mà ta mong đợi khiphân chia các lớp dữ liệu theo thuộc tính này

Công thức: Gains = Entropy [trước khi phân hoạch] – Entropy [sau khi

phân hoạch]

= Entropy (S) – Entropy (P1, P2 , , Pn)

Cây quyết định sẽ lựa chọn thuộc tính có Gains lớn nhất làm nút gốc

Ví dụ:

Outlook Temperator Humidity Windy Play ?

Trang 9

Sunny mild high FALSE no

1.Tạo nút gốc( rootNode), chứa đựng toàn bộ learning set Entropy của nút gốc :

Entropy(rootNode.subset)= -(9/14)log 2( 9/14 ) – ( 5/14)log 2(5/14)= 0.940

2.Tính toán thông tin nhận được cho mỗi thuộc tính:

Gain(S,Windy)= Entropy(S)-(8/14)Entropy(S false) – (6/14)Entropy(S true) = 0.048

Trang 10

Cây quyết định chọn Outlook làm nút gốc

Cây quyết định cuối cùng

Thuật toán K-Nearest Neighboard (K-NN)

Tư tưởng thuật toán

K-NN là phương pháp để phân lớp các đối tượng dựa vào khoảng cáchgần nhất giữa đối tượng cần xếp lớp (Query point) và tất cả các đối tượngtrong Training Set

Trang 11

Một đối tượng được phân lớp dựa vào K láng giềng của nó K là sốnguyên dương được xác định trước khi thực hiện thuật toán Người ta thườngdùng khoảng cách Euclidean để tính khoảng cách giữa các đối tượng.

Thuật toán

1 Xác định giá trị tham số K (số láng giềng gần nhất)

2 Tính khoảng cách giữa đối tượng cần phân lớp (Query Point) với tất cảcác đối tượng trong training data (thường sử dụng khoảng cáchEuclidean)

3 Sắp xếp khoảng cách theo thứ tự tăng dần và xác định K láng giềng gầnnhất với Query Point

4 Lấy tất cả các lớp của K láng giềng gần nhất đã xác định

5 Dựa vào phần lớn lớp của láng giềng gần nhất để xác định lớp choQuery Point

Ví dụ minh họa

Trong hình dưới đây, training Data được mô tả bởi dấu (+) và dấu (-), đốitượng cần được xác định lớp cho nó (Query point) là hình tròn đỏ Nhiệm vụcủa chúng ta là ước lượng (hay dự đoán) lớp của Query point dựa vào việclựa chọn số láng giềng gần nhất với nó Nói cách khác chúng ta muốn biết liệuQuery Point sẽ được phân vào lớp (+) hay lớp (-)

Trang 12

Ta thấy rằng:

1- Nearest neighbor : Kết quả là + (Query Point được xếp vào lớp dấu +)

2- Nearest neighbors : không xác định lớp cho Query Point vì số láng giềng gần nhất với nó là 2 trong đó 1 là lớp + và 1 là lớp – (không có lớp nào có số đối tượng nhiều hơn lớp kia)

5- Nearest neighbors : Kết quả là – (Query Point được xếp vào lớp dấu – vì trong 5 láng giềng gần nhất với nó thì có 3 đối tượng thuộc lớp – nhiều hơn lớp + chỉ có 2 đối tượng)

Thuật toán Naive Bayesian

Tư tưởng thuật toán

Định lý Bayes

Định lý Bayes cho phép tính xác suất xảy ra của một sự kiện ngẫu nhiên A khi biết sự kiện liên quan B đã xảy ra Xác suất này được ký hiệu là P(A\B), và đọc là "xác suất của A nếu có B" Đại lượng này được gọi xác suất có điềukiện hay xác suất hậu nghiệm vì nó được rút ra từ giá trị được cho của B hoặc

phụ thuộc vào giá trị đó

Theo định lý Bayes, xác suất xảy ra A khi biết B sẽ phụ thuộc vào 3 yếu tố:

Trang 13

Xác suất xảy ra A của riêng nó, không quan tâm đến B Kí hiệu là P(A)

và đọc là xác suất của A Đây được gọi là xác suất biên duyên hay xác suất tiên nghiệm, nó là "tiên nghiệm" theo nghĩa rằng nó không quan

tâm đến bất kỳ thông tin nào về B.

Xác suất xảy ra B của riêng nó, không quan tâm đến A Kí hiệu là P(B)

và đọc là "xác suất của B" Đại lượng này còn gọi là hằng số chuẩn hóa

(normalising constant), vì nó luôn giống nhau, không phụ thuộc vào sự kiện A đang muốn biết.

Xác suất xảy ra B khi biết A xảy ra Kí hiệu là P(B|A) và đọc là "xác suất

của B nếu có A" Đại lượng này gọi là khả năng (likelihood) xảy ra B khi biết A đã xảy ra Chú ý không nhầm lẫn giữa khả năng xảy ra A khi biết

B và xác suất xảy ra A khi biết B.

Khi biết ba đại lượng này, xác suất của A khi biết B cho bởi công thức:

Nội dung thuật toán Naive Bayesian

1 Mỗi mẫu dữ liệu được đại diện bởi một vector đặc trưng n-chiều,X=(x1,x2, ,xn), mô tả n phép đo có được trên mẫu từ n thuộc tính tương ứngA1, A2, , An

2 Giả sử rằng có m lớp C1,C2, Cm Cho trước một mẫu dữ liệu chưa biếtnhãn lớp X, classifier sẽ dự đoán X thuộc về lớp có xác suất hậu nghiệmcao nhất, với điều kiện trên X Classifier Bayesian ngây thơ ấn định một mẫukhông biết X vào một lớp Ci khi và chỉ khi:

P(Ci|X) > P(Cj|X) với 1≤ j ≤ m, j ≠ i

Do vậy cần tìm P(Ci|X) lớn nhất Theo định lý Bayes (Phương trình 2.4)

3 P(X) không đổi với mọi lớp, P(Ci)=si/s (si là số lượng các mẫu huấnluyện của lớp Ci và s là tổng số các mẫu huấn luyện), P(X|Ci)P(Ci) cần đượccực đại

Trang 14

4 Cho trước các tập dữ liệu với nhiều thuộc tính, việc tính P(X|Ci) sẽ rất tốnkém Để giảm tính toán khi đánh giá P(X|Ci), giả định ngây thơ của độc lập cóđiều kiện lớp được thiết lập Điều này làm cho giá trị của các thuộc tính làđộc lập có điều kiện với nhau, cho trước nhãn lớp của mẫu, tức là không cómối quan hệ độc lập giữa các thuộc tính Vì thế, P(x1|Ci), P(x2|Ci), , P(xn|Ci)được đánh giá từ các mẫu huấn luyện với:

(a) Nếu Ak là xác thực thì P(xk|Ci)=sik/si với sik là số lượng các mẫu huấnluyện của lớp Ci có giá trị xk tại Ak và si là số lượng các mẫu huấn luyệnthuộc về Ci

(b) Nếu Ak là giá trị liên tục thì thuộc tính được giả định có phân phốiGaussian Bởi vậy, với g(xk,µCi,σCi) là hàm mật độ (thông thường) GaussianCi) là hàm mật độ (thông thường) Gaussiancủa thuộc tính Ak,với µCi,σCi) là hàm mật độ (thông thường) GaussianCi đại diện cho các giá trị trung bình và độ lệchchuẩn của thuộc tính Ak đối với các mẫu huấn luyện của lớp Ci

5 Để phân loại một mẫu chưa biết X, với P(X|Ci)P(Ci) được đánh giá cho lớp

Ci Mẫu X được ấn định vào lớp Ci khi và chỉ khi:

P(X|Ci)P(Ci) > P(X|Cj)P(Cj) với 1≤ j ≤ m, j ≠ i

Hay nói cách khác, nó được ấn định tới lớp Ci mà tại đó P(X|Ci)P(Ci) cực đại

2 Quá trình phát hiện tri thức trong CSDL

Khám phá tri thức trong CSDL (KDD) là lĩnh vực liên quan đến cácngành như: thống kê, học máy, CSDL, thuật toán, trực quan hoá dữ liệu, tínhtoán song song và hiệu năng cao,…

Mục đích của quá trình phát hiện tri thức là rút ra tri thức từ dữ liệutrong CSDL lớn Quá trình KDD là quá trình gồm nhiều giai đoạn và lặp lại, mà

bước nào

sau:

Trang 15

Bước thứ nhất: Hình thành, xác định và định nghĩa bài toán - Tìmhiể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ầnphải hoàn thành Bước 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 - 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ếucần thiết, bước này thường chiếm nhiều thời gian nhất trong toàn bộ qui trìnhphát hiện tri thức Do dữ liệu được lấy từ nhiều nguồn khác nhau, không đồngnhấ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á

Bước thứ ba: Khai phá dữ liệu, rút ra các tri thức - Khai phá dữ liệu,hay nói cách khác là 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 - baogồm cả việc phát hiện các suy diễn dựa trên dữ liệu hiện có Tùy theo bài toánxá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 - Hiểu tri thức đãtìm đượ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ể

Trang 16

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

3 Các kỹ thuật khai phá dữ liệu

3.1 Các kỹ thuật tiếp cận trong Data mining

Căn cứ vào lớp các bài toán cần giải quyết, khai phá dữ liệu có các kỹthuật áp dụng sau:

Phân lớp và dự đoán: xếp một đối tượng vào một trong những lớp đã biếttrước Ví dụ: phân lớp các dữ liệu của bệnh nhân trong hồ sơ bệnh án Hướngtiếp cận này thường sử dụng một số kỹ thuật của học máy như cây quyếtđịnh, mạng nơ ron nhân tạo

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ữacác thành phần dữ liệu trong CSDL Mẫu đầu ra của giải thuật khai phá dữliệu là tập luật kết hợp tìm được Có thể lấy một ví dụ đơn giản về luật kết hợpnhư sau: phân tích CSDL bán hàng nhận được thông tin về những kháchhàng mua máy tính cũng có khuynh hướng mua phần mềm quản lý tài chínhtrong cùng lần mua được miêu tả trong luật kết hợp sau:

“Mua máy tính  Mua phần mềm quản lý tài chính”

Trang 17

Phân tích chuỗi theo thời gian: Tượng tự như khai phá luật kết hợpnhưng có thêm tính thứ tự và tính thời gian Hướng tiếp cận này được ứngdụng nhiều trong lĩnh vực tài chính và thị trường chứng khoán vì nó có tính dựbáo cao.

Phân cụm: xếp các đối tượng theo từng cụm dữ liệu tự nhiên

Mô tả khái niệm: thiên về mô tả, tổng hợp và tóm tắt khái niệm Ví dụ:tóm tắt văn bản

3.2 Dạng dữ liệu có thể khai phá

Do Data Mining được ứng dụng rộng rãi nên nó có thể làm việc với rấtnhiều kiểu dữ liệu khác nhau Sau đây là một số dạng dữ liệu điển hình: CSDLquan hệ, CSDL đa chiều (multidimentional structures, data warehouses),CSDL dạng giao dịch, CSDL quan hệ hướng đối tượng, dữ liệu không gian vàthời gian, dữ liệu chuỗi thời gian, CSDL đa phương tiện, dữ liệu Text vàWeb

3.3 Ứng dụng của khai phá dữ liệu

Khai phá dữ liệu là một lĩnh vực được quan tâm và ứng dụng rộng rãi Một

số ứng dụng điển hình trong khai phá dữ liệu có thể liệt kê: (i) phân tích dữliệu và hỗ trợ ra quyết định; (ii) điều trị y học; (iii) phát hiện văn bản; (iv) tin -sinh học; (v) tài chính và thị trường chứng khoán; (vi) bảo hiểm

3.4 Khai phá luật kết hợp và ứng dụng

Luật kết hợp là một biểu thức có dạng: X  Y, trong đó XY là tập cáctrường gọi là item Ý nghĩa của các luật kết hợp khá dễ nhận thấy: Cho trướcmột cơ sở dữ liệu có D là tập các giao tác - trong đó mỗi giao tác T  D là tậpcác item - khi đóX  Ydiễn đạt ý nghĩa rằng bất cứ khi nào giao tác T cóchứa X thì chắc chắn T có chứa Y Độ tin cậy của luật (rule confidence) cóthể được hiểu như xác suất điều kiệnp(YT |XT) Ý tưởng của việc khaithác các luật kết hợp có nguồn gốc từ việc phân tích dữ liệu mua hàng củakhách và nhận ra rằng “Một khách hàng mua mặt hàng X1 và X2 thì sẽ muamặt hàng Y với xác suất là c%”

Trang 18

Ứng dụng trực tiếp của các luật này trong các bài toán kinh doanh làm cho luật kết hợp trở thành một phương pháp khai thác phổ biến Hơn nữa, luật kết hợp không chỉ bị giới hạn trong phân tích sự phụ thuộc lẫn nhau trong phạm vi các ứng dụng bán lẻ mà chúng còn được áp dụng thành công trong rất nhiều bài toán kinh doanh Như vậy, khai phá luật kết hợp là một phương pháp xử lý thông tin quan trọng và phổ biến, nó nhằm khám phá mối liên hệ giữa các mẫu dữ liệu

II LUẬT KẾT HỢP TRONG KHAI PHÁ DỮ LIỆU

1 Khai phá luật kết hợp

Được giới thiệu từ năm 1993, bài toán khai thác luật kết hợp nhận được rấtnhiều sự quan tâm của nhiều nhà khoa học Ngày nay việc khai thác các luậtnhư thế vẫn là một trong những phương pháp khai thác mẫu phổ biến nhấttrong việc khám phá tri thức và khai thác dữ liệu

Mục đích chính của khai phá dữ liệu là các tri thức được kết xuất ra sẽđược sử dụng trong dự báo thông tin trợ giúp trong sản xuất kinh doanh vànghiên cứu khoa học Trong hoạt động sản xuất kinh doanh, ví dụ kinh doanhcác mặt hàng tại siêu thị, các nhà quản lý rất thích có được các thông tin

mang tính thống kê như: “90% phụ nữ có xe máy màu đỏ và đeo đồng hồ Thuỵ Sỹ thì dùng nước hoa hiệu Chanel” hoặc “70% khách hàng là công nhân khi mua TV thường mua loại TV 21 inches” Những thông tin như vậy

rất hữu ích trong việc định hướng kinh doanh

Vậy vấn đề đặt ra là liệu có tìm được các luật như vậy bằng các công

cụ khai phá dữ liệu hay không? Câu trả lời là hoàn toàn có thể Đó chính

là nhiệm vụ khai phá luật kết hợp.

Giả sử chúng ta có một CSDL D Luật kết hợp cho biết phạm vi mà trong

đó sự xuất hiện của tập các mục S nào đó trong các bản ghi của D sẽ kéotheo sự xuất hiện của một tập những mục U cũng trong những bản ghi đó Mỗiluật kết hợp được đặc trưng bởi một cặp tỉ lệ Mỗi tỉ lệ hỗ trợ được biểu diễnbằng tỉ lệ % những bản ghi trong D chứa cả S và U

Trang 19

Vấn đề khám phá luật kết hợp được phát biểu như sau: Cho trước tỉ lệ hỗtrợ  và độ tin cậy  Đánh số tất cả các luật trong D có các giá trị tỉ lệ hỗ trợ

và tin cậy lớn hơn  và  tương ứng

Giả thiết D là CSDL giao dịch và với  = 40%,  = 90% Vấn đề phát hiệnluật kết hợp được thực hiện như sau:

Liệt kê, đếm tất cả những qui luật chỉ ra sự xuất hiện một số các mục sẽ kéo theo một số mục khác Chỉ xét những qui luật mà tỉ lệ hỗ trợ lớn hơn 40%

và độ tin cậy lớn hơn 90%.

Hãy tưởng tượng, một công ty bán hàng qua mạng Internet Các kháchhàng được yêu cầu điền vào các mẫu bán hàng để công ty có được mộtCSDL về các yêu cầu của khách hàng Giả sử công ty quan tâm đến mối quan

hệ "tuổi, giới tính, nghề nghiệp và sản phẩm" Khi đó có thể có rất nhiều câu hỏi tương ứng với luật trên Ví dụ trong lứa tuổi nào thì những khách hàng nữ là giới nhân viên văn phòng/công sở đặt mua mặt hàng gì đó, ví

dụ mỹ phẩm chẳng hạn là nhiều nhất, thoả mãn một ngưỡng nào đó?

Gọi D là CSDL của n giao dịch và mỗi giao dịch được đánh nhãn với mộtđịnh danh duy nhất Nói rằng, một giao dịch T  D hỗ trợ một tập X  I nếu nóchứa tất cả các item của X

Điều này nghĩa là X  T, trong một số trường hợp người ta dùng ký hiệuT(X) để chỉ tập các giao dịch hỗ trợ cho X Kí hiệu support(X) (hoặc sup(X),

Trang 20

s(X)) là tỷ lệ phần trăm của các giao dịch hỗ trợ X trên tổng các giao dịchtrong D, nghĩa là:

sup(X) =

D

T X D

(2.1)

Độ hỗ trợ tối thiểu minsup là một giá trị cho trước bởi người sử dụng Nếutập mục X có sup(X)  minsup thì ta nói X là một tập các mục phổ biến Mộttập phổ biến được sử dụng như một tập đáng quan tâm trong các thuật toán,ngược lại, những tập không phải tập phổ biến là những tập không đáng quantâm Các phần sau sẽ sử dụng những cụm từ khác như “X có độ hỗ trợ tốithiểu”, hay “X không có độ hỗ trợ tối thiểu” cũng để nói lên rằng X thỏa mãnhay không thỏa mãn support(X)  minsup

Một khoản mục X được gọi là k-itemset nếu lực lượng của X bằng k, tức

X  k

Một luật kết hợp có dạng R: X => Y, trong đó X, Y là tập các mục, X, Y  I

và X Y =  X được gọi là tiên đề và Y được gọi là hệ quả của luật

Luật X => Y tồn tại một độ tin cậy c Độ tin cậy c được định nghĩa là khảnăng giao dịch T hỗ trợ X thì cũng hỗ trợ Y Ta có công thức tính độ tin cậy cnhư sau:

conf(X =>Y) = p(Y  I | X  I ) = sup( )

)sup(

)(

)TX(

X

Y X T

X p

T Y

D, bài toán phát hiện luật kết hợp là sinh ra tất cả các luật kết hợp mà có độtin cậy conf lớn hơn độ tin cậy tối thiểu minconf và độ hỗ trợ sup lớn hơn độ

hỗ trợ tối thiểu minsup tương ứng do người dùng xác định Khai phá luật kếthợp được phân thành hai bài toán con:

Trang 21

Bài toán 1: Tìm tất cả các tập mục mà có độ hỗ trợ lớn hơn độ hỗ trợ tối

thiểu do người dùng xác định Các tập mục thoả mãn độ hỗ trợ tối thiểu đượcgọi là các tập mục phổ biến

Bài toán 2: Dùng các tập mục phổ biến để sinh ra các luật mong muốn Ý

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 nếu AB => CD giữ lại với tỷ lệ độ tin cậy:

)sup(

)sup(

AB

ABCD conf 

(2.3)Nếu conf ≥ minconf thì luật được giữ lại (luật này sẽ thoả mãn độ hỗ trợ tốithiểu vì ABCD là phổ biến)

2.2 Một số tính chất liên quan đến các hạng mục phổ biến:

2.2.1 Với tập mục phổ biến, có 3 tính chất sau:

Tính chất 1 (Độ hỗ trợ của tập con):

Với A và B là tập các mục, nếu A  B thì sup(A)  sup(B)

Điều này là rõ ràng vì tất cả các giao tác của D hỗ trợ B thì cũng hỗ trợ A

Tính chất 2:

Một tập chứa một tập không phổ biến thì cũng là tập không phổ biến

Nếu một mục trong B không có độ hỗ trợ tối thiểu trên D nghĩa là A  B vàsup(A)< minsup thì B sẽ không phải là một tập phổ biến vì support(B) support(A) < minsup (theo tính chất 1)

Tính chất 3: Các tập con của tập phổ biến cũng là tập phổ biến

Nếu mục B là mục phổ biến trên D, nghĩa là support(B)  minsup thì mọitập con A của B là tập phổ biến trên D vì support(A)  support(B) > minsup

2.2.2 Với luật kết hợp, có 4 tính chất sau:

Tính chất 1: (Không hợp các luật kết hợp)

Nếu có XZ và YZ trong D thì không nhất thiết XYZ là đúng

Trang 22

Xét trường hợp X Z = và các tác vụ trong D hỗ trợ Z nếu và chỉ nếuchúng hỗ trợ mỗi X hoặc Y, khi đó luật XYZ có độ hỗ trợ 0%.

Tương tự : XY  XZ  XYZ

Tính chất 2: (Không tách luật)

Nếu XYZ thì XZ và YZ chưa chắc xảy ra

Ví dụ trường hợp Z có mặt trong một giao tác chỉ khi cả hai X và Y cũng cómặt, tức là sup(XY)= sup(Z), nếu độ hỗ trợ của X và Y đủ lớn hơnsup(XY), tức là sup(X) > sup(XY) và sup(Y) > sup(XY) thì hai luật riêngbiệt sẽ không đủ độ tin cậy

Tuy nhiên đảo lại: XYZ  XY  XZ

Tính chất 3: (Các luật kết hợp không có tính bắc cầu)

Nếu XY và YZ, chúng ta không thể suy ra XZ

Ví dụ: giả sử T(X)  T(Y)  T(Z), ở đó T(X), T(Y), T(Z) tương ứng là cácgiao dịch chứa X,Y,Z, và độ tin cậy cực tiểu minconf

conf(XY) =conf(YZ)=minconf thế thì: conf(XY) =minconf2 < minconf vìminconf < 1, do đó luật XZ không đủ độ tin cậy

Tính chất 4:

Nếu A(L - A) không thoả mãn độ tin cậy cực tiểu thì luật

B (L -B) cũng không thoả mãn, với các tập mục L,A,B và B  A  L

Vì supp(B)  sup(A) (theo tính chất 1) và định nghĩa độ tin cậy, chúng ta

nhận được: conf(B (L-B)) = sup( )

)sup(

)sup(

)sup(

A

L B

L

< minconf (2.4)Cũng như vậy: Nếu có (L-C) C thì ta cũng có luật (L – D)D, với DC vàD

Bởi vì DC nên (L - D)  (L - C), do đó sup(L - D)  sup(L-C)

 sup( )

)sup(

)sup(

)sup(

C L

L D

Trang 23

Các tính chất này sẽ được sử dụng trong thuật toán mô tả trong các chươngsau.

2.3 Một số hướng tiếp cận trong khai phá 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áttriể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… và có một

số hướng chính như sau

Luật kết hợp nhị phân: 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ậtkết hợp nhị phân Trong dạng luật kết hợp này, các mục, thuộc tính, chỉ đượcquan tâm là có hay không xuất hiện trong giao tác của CSDL chứ không quantâm về “mức độ” xuất hiện Ví dụ: Trong hệ thống tính cước điện thoại thì việcgọi 10 cuộc điện thoại và một cuộc được xem là giống nhau Thuật toán tiêubiểu nhất khai phá 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ậtnày nhờ một số phương pháp như rời rạc hoá, mờ hoá, … Một ví dụ về dạngluật này: “gọi liên tỉnh= ‘yes’ AND gọi di động= ‘yes’ => gọi quốc tế= ‘yes’ ANDgọi dịch vụ 108 = ‘yes’, 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: Các thuộc tính

của các CSDL thực tế có kiểu rất đa dạng, như số nhị phân, giá trị định tính,định lượng Để phát hiện luật kết hợp với các thuộc tính này, các nhà nghiêncứu đã đề xuất một số phương pháp rời rạc hoá 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ạngluật này “phương thức gọi = ‘Tự động’ AND giờ gọi IN [‘23:00:39 23:00:59’]AND Thời gian đàm thoại IN [‘200 300’] => gọi liên tỉnh = ‘có’ , với độ hỗ trợ

Trang 24

phần mềm tiện ích văn phòng, …” thay vì chỉ những luật quá cụ thể như

“mua máy tính IBM PC => mua hệ điều hành Microsoft Windows AND muaphần mềm tiện ích văn phòng Microsoft Office, …” Như vậy dạng luật đầu làdạng luật tổng quát hoá của dạng luật sau và tổng quát theo nhiều mức khácnhau

Luật kết hợp mờ: Với những hạn chế còn gặp phải trong quá trình rời rạc

hoá các thuộc tính số (quantitave attributes), các nhà nghiên cứu đã đề xuấtluậ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 dạng tự nhiên hơn, gần gũi hơn với người sử dụng một ví dụ của dạngnày là: “thuê bao tư nhân = ‘yes’ AND thời gian đàm thoại lớn AND cước nộitỉnh = ‘yes’ => cước không hợp lệ = ‘yes’, với độ hỗ trợ 40% và độ tin cậy85%” 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ờ hoá

Luật kết hợp với thuộc tính được đánh trọng số: Trong thực tế, các

thuộc tính trong CSDL không phải lúc nào cũng có vai trò như nhau Có một

số thuộc tính được chú trọng hơn và có mức độ quan trọng cao hơn các thuộctính khác Ví dụ khi khảo sát về doanh thu hàng tháng, thông tin về thời gianđàm thoại, vùng cước là quan trọng hơn nhiều so với thông tin về phươngthức gọi Trong quá trình tìm kiếm luật, chúng ta sẽ gán thời gian gọi, vùngcước các trọng số lớn hơn thuộc tính phương thức gọi Đây là hướng nghiêncứu rất thú vị và đã được một số nhà nghiên cứu đề xuất cách giải quyết bàitoán này Với luật kết hợp có thuộc tính được đánh trọng số, chúng ta sẽ khaithác được những luật “hiếm” (tức là có độ hỗ trợ thấp, nhưng có ý nghĩa đặcbiệt hoặc mang rất nhiều ý nghĩa)

Luật kết hợp song song: Bên cạnh khai thác luật kết hợp tuần tự, các nhà

làm tin học cũng tập trung vào nghiên cứu các thuật giải song song cho quátrình phát hiện luật kết hợp Nhu cầu song song hoá và xử lý phân tán là cầnthiết bởi kích thước dữ liệu ngày càng lớn hơn nên đòi hỏi tốc độ xử lý cũngnhư dung lượng bộ nhớ của hệ thống phải được đảm bảo Có rất nhiều thuậttoán song song khác nhau đã đề xuất để có thể không phụ thuộc vào phầncứng

Trang 25

Bên cạnh những nghiên cứu về các biến thể của luật kết hợp, các nhànghiên cứu còn chú trọng đề xuất những thuật toán nhằm tăng tốc quá trìnhtìm kiếm tập phổ biến từ CSDL.

Ngoài ra, còn có một số hướng nghiên cứu khác về khai thác luật kết hợpnhư: khai thác luật kết hợp trực tuyến, khai thác luật kết hợp được kết nối trựctuyến đến các kho dữ liệu đa chiều thông qua công nghệ OLAP, MOLAP,ROLAP, ADO

2.4 Phát hiện luật kết hợp trên hệ thông tin nhị phân

2.4.1 Các định nghĩa về hệ thông tin nhị phân

Hệ thông tin nhị phân

Cho các tập O ={o1, o2, …, on} là một tập hữu hạn gồm n đối tượng,

D = {d1, d2, …, dm} là một tập hữu hạn gồm m chỉ báo,

B = {0, 1}

Hệ thông tin nhị phân được định nghĩa là SB = (O, D, B, ) trong đó  là ánh

xạ :O x D → B, (o,d) = 1 nếu đối tượng o có chỉ báo d và (o,d) = 0 nếungược lại

Các ánh xạ thông tin nhị phân

Cho hệ thông tin nhị phân SB = (O, D, B, ) Cho P(O) là các tập con của O,P(D) là các tập con của D Các ánh xạ thông tin nhị phân B và B được địnhnghĩa như sau:

B: P(D)  P(O) với ý nghĩa: cho S  D, B(S) = {o  O|  d  S, (o, d) =1}

B: P(O)  P(D) với ý nhĩa: cho X  O, B(X) = {d  D|  o  X, (o, d) = 1}

Tập chỉ báo phổ biến nhị phân

Cho hệ thông tin nhị phân SB = (O, D, B, ) và một ngưỡng   (0, 1).Cho S  D, S là tập chỉ báo phổ biến nhị phân với ngưỡng  nếucard(B(S)) ≥ *card(O)card(O)

Trang 26

Cho LB là một tập gồm tất cả các tập chỉ báo phổ biến nhị phân đã pháthiện từ SB, chúng có thuộc tính như sau: S  LB, T  S thì T  LB.

Trong đó LB,h là tập con của LB nếu XLB,h thì card(X)=h (với h là sốnguyên dương)

Các luật kết hợp phổ biến nhị phân và hệ số tin cậy

Cho hệ thông tin nhị phân SB = (O, D, B, ) và một ngưỡng   (0, 1) Cho

L là một phần tử của LB, X và Y là hai tập con của L, trong đó:

L = X  Y, X ≠ {}, Y ≠ {} và X  Y = {}

Chúng ta xác định các luật kết hợp nhị phân giữa tập chỉ số X và tập chỉ số

Y là một ánh xạ thông tin: X  Y Hệ số tin cậy của luật này được biểu diễn là:

)) ( (

)) ( ) ( ( )

(

CFB

X card

Y X

card Y

X

B

B B

SB Trong đó CFB(r) ≥ ,  r  RB,[11,15]

c Vectơ chỉ báo nhị phân và các phép toán

Cho hệ thông tin nhị phân SB = (O, D, B, ) trong đó O ={o1, o2, …, on} làmột tập hữu hạn gồm n đối tượng, D = {d1, d2, …, dm} là một tập hữu hạngồm m chỉ báo

Vectơ chỉ báo nhị phân: vB(X) = {X1, X2, … , Xn} trong đó: X  D là một

vectơ với n thành phần, mỗi thành phần Xj chiếm một giá trị trong B Cho VSB

là tập tất cả các vectơ chỉ báo nhị phân của SB, nếu card(X) = 1 thì X là bộ chỉbáo của SB và Xj = (o, X)

Tích vectơ chỉ báo nhị phân: Cho X1, X2  D, vB(X1) = (X11, X12, … ,

X1n), vB(X2) = (X21, X22, … , X2n) là các phần tử của VSB Tích vectơ chỉbáo nhị phân vB(X1) và vB(X2) được biểu hiện là vB(X3) = vB(X1) B vB(X2).Trong đó:

vB(X3) = (X31, X32, … , X3n) với X3j = min(X1j, X2j), j = 1n

X3 = X1  X2  D

Trang 27

Từ vectơ vB(X3), biết tất cả các đối tượng hiện có trong tập chỉ báo X1 vàX2 Chúng ta dùng vB(X1) để trình diễn B(X1), vB(X2) để trình diễn B(X2)

và vB(X3) để trình diễn B(X3)

Độ hỗ trợ các vectơ chỉ báo nhị phân

Cho X1  D, độ hỗ trợ của vB(X1) biểu diễn supB(vB(X1)) được định nghĩalà: supB(vB(X1)) = {o  O| d  X1, (o, d) = 1}(2.7)

Dễ thấy rằng: card(supB(vB(X1))) = card(B(X1))

Tính card(B(S)) (lực lượng của tập hợp): Cho S = {s1, s2, … , sk} là tậpcon của D Trong đó sj là bộ chỉ báo của SB, j = 1  k Mỗi sj tương ứng vớivectơ chỉ báo nhị phân vB({sj}) Các yếu tố của B(S) được tính bằngcard(B(S)) = card(supB(vB{s1}) B supB(vB{s2}) B … supB(vB{sk}))

(2.8)

Kí hiệu VSB,h là tập con của VSB chứa chỉ vectơ vB(X) trong đó X  D vàcard(X) = h (h là số nguyên dương cho trước)

2.4.2 Thuật toán phát hiện tập chỉ mục và luật kết hợp nhị phân

Thuật toán phát triển từ thuật toán Apriori-Tid Để phát hiện các tập chỉ báonhị phân phổ biến từ các luật kết hợp nhị phân từ hệ thông tin nhị phân Thuậttoán này làm việc với các bit trong bộ nhớ và không làm việc với CSDL trênđĩa, vì thế có thể cải tiến tốc độ quá trình phát hiện luật Cho một CSDL và haingưỡng độ hỗ trợ tối thiểu minsup và độ tin cậy tối thiểu minconf của luật kếthợp Thuật toán Apriori-Tid có hai pha:

Pha 1: Phát hiện các tập chỉ báo phổ biến dựa trên ngưỡng minsup cho trước.Pha 2: Xây dựng các luật kết hợp dựa trên một ngưỡng minconf cho trước.Cho ma trận thông tin nhị phân SB = (O, D, B, ) và một ngưỡng ,  (0, 1).Trong đó  là minsup và  là minconf

Chi tiết thuật toán Apriori-Tid như sau:

Pha 1: Phát hiện tập chỉ mục phổ biến nhị phân

1 TraLoi =  ;

Trang 28

2 Sinh LB,1 từ SB theo thủ tục 1.a dưới đây ;

Pha 2: Phát hiện các luật phổ biến nhị phân

1 RB, =  ; // Khởi tạo tập luật ban đầu là rỗng

Trang 29

III MỘT SỐ THUẬT TOÁN PHÁT HIỆN LUẬT KẾT HỢP

1 Thuật toán Apriori

1.1 Ý tưởng thuật toán Apriori

Apriori là một thuật giải được do Rakesh Agrawal, Tomasz Imielinski,

Arun Swami đề xuất lần đầu vào năm 1993 Thuật toán tìm giao dịch t có độ

hỗ trợ và độ tin cậy thoả mãn lớn hơn một giá trị ngưỡng nào đó

Thuật toán được tỉa bớt những tập ứng cử viên có tập con không phổbiến trước khi tính độ hỗ trợ

Thuật toán Apriori tính tất cả các tập ứng cử của tập k trong một lần duyệt CSDL Apriori dựa vào cấu trúc cây băm Tìm kiếm đi xuống trên cấu

trúc cây mỗi khi ta chạm lá, ta tìm được một tập ứng cử viên có tiền tố chungđược bao gồm trong giao dịch Sau đó các tập ứng cử này được tìm tronggiao dịch đã được ánh xạ trước đó Trong trường hợp tìm thấy biến đếm đượctăng lên 1

Ký hiệu: Giả sử các mục trong mỗi giao dịch được lưu giữ theo trật tự

từ điển Gọi số các mục trong một tập mục là kích thước của nó và gọi tậpmục có kích thước k là tập k-mục (tập k mục) Các mục trong mỗi tập mụccũng được giữ ở trật tự từ điển Ta sử dụng các ký hiệu sau:

Lk: Tập các tập k-mục phổ biến (với độ hỗ trợ cực tiểu minsup nào đó)

Ck : Tập các tập k-mục ứng cử (các tập mục phổ biến tiềm năng)

1.2 Thuật toán Apriori

Input: CSDL D, minsup

Trang 30

Output: Tập các tập mục phổ biến.

1 L1 = {Các 1 - itemset phổ biến};

2 k=2;

3 While( L k-1 ! = )

chương trình con ở dưới đây.

// sinh ứng cử viên mới (**)

Void apriori_gen(Lk-1, minsup )

Trang 31

8 return C k

9.}

Boolean has_infrequent_subset(c,L k-1 )

1.{ for ( (k-1)-subset s c)

Dựa vào CSDL, tính độ hỗ trợ của các ứng của viên trong C k Các

ứng cử viên trong C k mà được chứa trong giao dịch t có thể được

xác định một cách hiệu quả bằng việc sử dụng cây băm được mô tảnhư sau:

Trong giai đoạn 2 (giai đoạn sửa, tỉa): xoá bỏ các tập c C k sao cho một

vài (k-1) – tập con của c không nằm trong L k-1 Thủ tục này là đầy đủ bởi đối với bất kì tập nào L k với độ hỗ trợ tối thiểu thì các tập con kích cỡ (k-1) cũng

có độ hỗ trợ tối thiểu, do đó nếu ta mở rộng mỗi tập trong L k-1 với tất cả các

tập mục có thể và sau đó xoá tất cả các tập mà (k-1) – tập con của nó không nằm trong L k-1, ta sẽ nhận được tập các tập trong Lk.

Việc kết nối là tương đương với việc mở rộng L k-1 với mỗi mục nằm trong CSDL và sau đó xoá bỏ các tập này mà đối với nó (k-1) –itemset nhận được bằng việc xoá đi mục thứ (k-1) không nằm trong L k-1 Ở giai đoạn này C k L k Với lập luận như vậy, giai đoạn tỉa là giai đoạn người ta xoá khỏi C k tấtcả các

tập mà các (k-1) tập con của nó không nằm trong L k-1 , cũng không xoá bất kỳ một tập nào có thể nằm trong L k

Trang 32

Hàm Subset: Các tập ứng cử viên C k được lưu trữ trong một cây băm Một

nút của cây này hoặc là chứa một danh sách của các tập (nút lá) hoặc bảng băm (một nút trong) Trong mỗi một nút trong, mỗi cụm (bucket) của bảng băm

chỉ đến một nút khác Gốc của cây băm được xem ở độ sâu là 1 Một nút

trong ở độ sâu d sẽ dẫn đến nút ở độ sâu d+1 Các tập được lưu trữ trong các

lá Khi ta bổ sung thêm một tập c, ta bắt từ nút gốc và đi xuống cây cho đến khi ta chạm vào một lá Tại một nút ở độ sâu d, ta quyết định sẽ đi theo cành nào bằng việc áp dụng hàm băm đối với mục thứ d của tập đó và theo con trỏ trong Bucket tương ứng Tất cả các nút ban đầu được tạo ra như là nút lá Khi

số các tập trong một nút lá vượt quá ngưỡng được chọn, nút lá này đượcchuyển thành một nút trong

Bắt đầu từ nút gốc, hàm Subset tìm tất cả các ứng cử viên được chứa

trong giao dịch t như sau: Nếu ta bắt đầu tại một lá, ta tìm những tập trong nút

lá này được chứa trong giao dịch t và bổ sung các mối quan hệ với chúng đối

với tập kết quả mong muốn Nếu ta đang ở một nút trong và ta đến được nó

bằng việc băm mục i, ta băm trên mỗi mục đi sau i trong t và áp dụng một cách đệ quy thủ tục đó đối với nút này trong Bucket tương ứng Đối với nút gốc, ta băm theo mỗi mục trong t.

Để thấy được tại sao hàm Subset trả lại tập các tham khảo mong muốn

hãy để ý đến những gì sẽ xảy ra tại nút gốc Đối với bất kỳ tập c nào được chứa trong giao dịch t, mục đầu tiên cần phải có trong t Tại nút gốc, việc băm mọi mục trong t đảm bảo được rằng ta chỉ không biết các tập mà nó bắt đầu

với một mục không nằm trong t Những lí luận tương tự áp dụng cho các mứcsâu hơn Vì các mục trong bất kì tập nào cũng được sắp thứ tự, nếu ta đến

được một nút hiện tại bằng việc băm mục i, ta chỉ cần quan tâm đến những mục trong t nó xuất hiện sau i.

// Bước tỉa: Xoá bớt tất cả các tập mục c  C k mà (k-1) tập con của c không phụ thuộc L k-1

1 for ( tập mục c  C k )

2 for ( (k-1) – tập con s của c)

3 if(s  L k-1 )

4 delete c khỏi C k ;

Trang 33

Nhận xét: Thuật toán Apriori với n là độ dài lớn nhất của tập được sinh ra.

Vậy thì thuật toán sẽ thực hiện duyệt toàn bộ các giao tác n+1 lần Như vậy,

nếu bỏ qua thời gian so sánh tìm sự xuất hiện của một mẫu trong một giao tácthì độ phức tạp của thuật toán Apriori là O(A) > O(n*card(O)L) trong đó L là kích

thước CSDL còn n là độ dài cần đạt được của các mẫu.

Ngoài ra, nếu độ hỗ trợ tối thiểu minsup bị thay đổi thì thuật toán sẽ phảithực hiện lại từ đầu, điều này sẽ rất mất thời gian Thuật toán Apriori được xâydựng nhằm phát hiện các luật kết hợp giữa các đối tượng với độ hỗ trợ và độtin cậy tối thiểu

1.3 Sinh các luật kết hợp từ tập mục phổ biến:

Sau khi các tập mục phổ biến từ các tác vụ trong CSDL đã được tìm thấy,

nó có thể sinh ra các luật kết hợp mạnh, ở đó luật kết hợp mạnh (strong association rule) là luật thoả mãn cả hai độ hỗ trợ cực tiểu và độ tin cậy cực

tiểu Điều đó có thể thực hiện bằng việc sử dụng tính độ tin cậy của luật, tanhắc lại: độ tin cậy của luật X  Y là: conf (X  Y) = P(Y/X) =sup(XY)/sup(X)

Trong đó sup(XY) là độ hỗ trợ của XY và sup(X) là độ hỗ trợ của X

Có thể coi tỷ số trên là tỷ số giữa: số các tác vụ chứa XY và số các tác

vụ chứa X Dựa trên biểu thức tính toán đó, các luật kết hợp có thể được sinhnhư sau:

Với mỗi tập mục phổ biến l, sinh ra tất cả các tập con không rỗng của lVới mỗi tập con không rỗng a của l, ta có luật a  (l-a) nếu sup(sup(a l)) minconf ở đó minconf là ngưỡng độ tin cậy cực tiểu

Vì các luật được sinh ra từ các tập mục phổ biến nên độ hỗ trợ của luật đãđược thoả mãn, tức là độ hỗ trợ của luật chính là sup(l)

Thuật toán đơn giản.

Trang 34

Chúng ta cải tiến thủ tục xử lý bằng cách sinh ra các tập con của mục lớntheo kiểu đệ qui ưu tiên độ sâu Ví dụ: với tập mục ABCD, đầu tiên chúng taxét tập con ABC, sau đó đến AB,

Tiếp đến, nếu tập con a của tập mục lớn l không sinh ra được luật thìkhông cần xét đến các tập con của nó nữa Chẳng hạn: nếu luật ABC Dkhông đủ độ tin cậy thì ta không cần xét đến luật AB CD

Điều này có thể chứng minh đơn giản như sau:

Nếu luật a (l-a) không thoả mãn độ tin cậy, tức là: conf(al-a)) nhỏ hơnminconf, thế thì với bất kỳ tập con b nào của a ta có:

Vì b a nên supp(b)supp(a), do vậy:

Conf(b(l-b)) = sup(sup(b l)) sup(sup(a l))=conf((a(l-a))<minconf

Tức là độ tin cậy của luật b(l-b) cũng nhỏ hơn minconf

Thuật toán đơn giản này có thể mô tả như sau:

Thuật toán 1.

For all large itemsets lk , k2 do call genrules(lk ,lk)

Procedure genrules(l k :large k-itemsets, a m : large m-itemsets)

if (m-l > l) then call genrules(lk,am-1);

//để sinh ra các luật với tập con của am-1 là phần tiền

đề endend

Cải tiến để thuật toán nhanh hơn.

Ở trên ta đã chỉ ra rằng nếu một luật không thoả mãn với tập cha a thì cũngkhông thoả mãn với tập con của nó Ví dụ như trên đã xét: nếu ABCD không

đủ độ tin cậy thì luật ABCD cũng không đủ độ tin cậy Điều đó cũng có thể

áp dụng theo hướng ngược lại như sau: nếu xảy ra luật với tập con thì cũng

Trang 35

xảy ra luật với tập cha Ví dụ: nếu luật ABCD có đủ độ tin cậy thì luậtABCD cũng đủ độ tin cậy.

Conf = support(lk)/support(lk-hm+1);

If (conf minconf) then

Output the rule(lk-hm+1)hm+1

//với độ tin cậy là conf và độ hỗ trợ là support (lk)

Ví dụ, ta xét tập mục ABCDE: Giả sử rằng ACDEB, ADECB là các luật

có l-mục ở phần kết luận thoả mãn độ hỗ trợ cực tiểu minconf

Trong thuật toán đơn giản trên, gọi đệ quy genrules(ABCDE, ACD) sẽ kiểmtra các luật với 2-mục ở phần kết luận là: ACDBE, ADEBC, CDEAB vàACEBD

Luật thứ nhất không xảy ra vì E  BE và ABCD E không thoả mãn độ tincậy Các luật thứ hai và thứ ba cũng không thoả mãn độ tin cậy với lý dotương tự

Trang 36

Chỉ có một luật với 2 - mục ở phần kết luận nhận được là ACEBD, ở đó B

và D là các kết luận của các luật kết hợp có 1- mục ở phần kết luận Thuậttoán nhanh hơn mô tả ở trên chỉ kiểm tra một luật này

2 Thuật toán khắc phục nhược điểm thuật toán Apriori - Thuật toán growth.

FP-2.1 Ý tưởng thuật toán

Thuật toán kinh điển Apriori tìm tập mục phổ biến thực hiện tốt bởi rútgọn kích thước các tập ứng cử nhờ kỹ thuật tỉa Tuy nhiên, trong tình huống

mà số các mẫu nhiều, mẫu dài hoặc độ hỗ trợ cực tiểu thấp, các thuật toánApriori gặp phải 2 chi phí lớn:

Chi phí cho số lượng khổng lồ các tập ứng cử Ví dụ: nếu có 104 tập mục phổ biến thì thuật toán Apriori sẽ cần sinh ra hơn 107 các ứng cử 2-mục

1-và thực hiện kiểm tra sư xuất hiện của chúng Hơn nữa, để khám phá đượcmột số mẫu phổ biến kích thước (độ dài) là l, thuật toán phải kiểm tra (2l-2 )các mẫu phổ biến tiềm năng Ví dụ l=100, chẳng hạn là {a1,a2, ,a100}, nó phảisinh ra tổng số 2100

 1030 các ứng cử (đây chính là số tập con của tập có 100phần tử)

Đòi hỏi lặp lại nhiều lần duyệt CSDL để kiểm tra tập rất lớn các ứng cử

Số lần duyệt CSDL của thuật toán Apriori bằng độ dài của mẫu phổ biến dàinhất tìm được Trong trường hợp mẫu phổ biến dài hơn và CSDL lớn, có

nhiều bản ghi, điều này là không thể thực hiện được Thuật toán Apriori chỉ thích hợp cho các CSDL thưa (sparse), với các CSDL dày (dense) thì thuật toán thực hiện kém hiệu quả hơn.

Thuật toán mới xuất hiện gần đây có tên là FP-growth được giới thiệu bởi Jiawei Hai Jian Pei và Yiwen Yin năm 2000, sẽ khắc phục được các nhược điểm nêu trên Thuật toán tìm các tập phổ biến hiệu qủa hơn

thuật toán Apriori bằng việc sử dụng một kỹ thuật khác không cần sinh các ứng cử Sự hiệu quả của khai phá nhận được với 3 kỹ thuật chính:

Thứ nhất nó mở rộng của cấu trúc cây prefix (prefix tree), được gọi là

cây mẫu phổ biến (frequent pattern tree hoặc gọi tắt là FP- tree) dùng để nén

Trang 37

dữ liệu thích hợp Chỉ có các mục độ dài l (l-item) ở trong cây và các nút củacây được sắp đặt để các nút xuất hiện thường xuyên hơn có thể dễ dàng chia

sẻ với các nút xuất hiện ít hơn CSDL lớn được nén chặt tới cấu trúc dữ liệunhỏ hơn (FP-tree), tránh được chi phí lặp lại duyệt qua CSDL

Thứ hai, phương pháp khai phá phát triển (growth) từng đoạn dựa trên

Fp-tree gọi là phương pháp FP – growth đã được thực hiện Bắt đầu từ mẫu

phổ biến độ dài 1, FP-growth chỉ xem xét cơ sở mẫu phụ thuộc của nó(condition pattern base) như là CSDL con (sub-database) bao gồm tập cácmục phổ biến cùng xuất hiện với mẫu hậu tố (suffix pattern), xây dựngcondition FP-tree tương ứng của nó và thực hiện khai phá đệ qui trên cây này.Mẫu phát triển là nhận được qua việc nối mẫu hậu tố (suffix pattern) với mộtđoạn mẫu được sinh ra từ condition FP-tree Khai phá dựa trên FP-tree đượcthực hiện theo cách phát triển (growth) các đoạn mẫu để tránh chi phí cho việcsinh ra số lượng lớn các tập ứng cử

Thứ ba, kỹ thuật tìm kiếm được dùng ở đây là dựa vào sự phân chia và chế ngự (divide-and-conquer method) để phân rã nhiệm vụ khai phá thành tập

các nhiệm vụ nhỏ hơn với giới hạn các mẫu trong các CSDL nhằm thu gọnkhông gian tìm kiếm

Phương pháp FP-growth đã chứng tỏ được tính hiệu quả của nó

và thể hiện khai phá cho cả các mẫu ngắn và dài, nhanh hơn thuật toán Apriori, luôn chỉ cần duyệt CSDL 2 lần

2.2 Thuật toán FP-growth.

Đầu tiên, thuật toán duyệt CSDL lần thứ nhất để tính độ hỗ trợ của các tậpmục (đếm số lần xuất hiện của từng mục)

Tiếp đến, những mục không đủ độ hỗ trợ bị loại Các mục còn lại được sắptheo thứ tự giảm dần của độ hỗ trợ (cũng tức là giảm dần theo số lần xuấthiện trong CSDL), ta nhận được danh sách L các mục đã sắp

Duyệt CSDL lần thứ 2, với mỗi tác vụ t, loại các mục không đủ độ hỗ trợ,các mục còn lại theo thứ tự giống như xuất hiện trong L (tức là thứ tự giảmdần theo độ hỗ trợ) được đưa vào cây FP-tree

Trang 38

Phần tiếp theo thuật toán khai phá tìm các mẫu phổ biến trên cây FP-tree

đã xây dựng mà không cần duyệt lại CSDL nữa

Cấu trúc cây FP-tree như sau:

Gốc của cây nhãn null, các đường đi trên cây biểu diễn item prefixsCác liên kết trên cây: liên kết các mục xuất hiện có tên giống nhau

Mỗi nút, (trừ nút gốc) bao gồm:

Tên mục (item identifier)

Count: số đếm

Node link: liên kết đến nút tiếp theo trên cây có cùng tên

Bảng các đầu mục phổ biến (header table): bắt đầu cho các liên kết

Thủ tục thêm một dãy các mục (đã sắp giảm dần theo độ hỗ trợ) của mộttác vụ vào cây thực hiện đệ quy như sau:

Procedure insert_tree(string [p|P], tree có gốc T)

(Ở đó p là mục thứ nhất của dãy các mục và P là phần còn lại Trong lần duyệt thứ hai, với mỗi tác vụ t, gọi thủ tục insert_tree(t’,T), ở đó t’ là nội dung của tác vụ t sau khi đã bỏ các mục không phổ biến và sắp theo thứ tự giảm dần của độ hỗ trợ, T là gốc của cây)

Ngày đăng: 09/04/2015, 22:51

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

w