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

Tiểu luận Công nghệ tri thức

35 298 0

Đ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 35
Dung lượng 531,5 KB

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

Nội dung

Tiểu luận Công nghệ tri thức

Trang 1

A – LÝ THUYẾT

I TÌM HIỂU TỔNG QUAN VỀ DATA MINING

II CÁC PHƯƠNG PHÁP MÁY HỌC ỨNG DỤNG TRONG DATA MINING

1 Tìm luật kết hợp (Mining Association Rules)

2 Phân lớp (Classification)

3 Gom nhóm (Clustering)

III THUẬT TOÁN TÌM LUẬT KẾT HỢP ỨNG DỤNG TRONG DATA MINING

1 Giới thiệu – các định nghĩa liên quan

Các vấn đề về luật kết hợp

Support

Confidence

2 Tổng quan về các thuật toán tìm luật kết hợp

2.1 Thuật toán cơ sở

2.2 Các thuật toán tuần tự (Sequential)

Thuật toán AIS Thuật toán SETM Thuật toán Apriori Thuật toán Apriori-TID Thuật toán Apriori-Hybrid Một số thuật toán khác:

 Off-line Candidate Determination (OCD)

 Partitioning

 Sampling

 Dynamic Itemset Counting (Brin1997a)

 CARMA (Continuous Association Rule Mining Algorithm)2.2 Các thuật toán song song và phân tán

Các thuật toán song song dữ liệu (Data Parallelism)

Nhóm 4

Trang 2

 CD

 PDM

 DMA

 CCPD Các thuật toán song song tác vụ (Task Parallelism)

 DD

 IDD

 HPA

 PAR Các thuật toán khác

B – BÀI TẬP HỆ CHUYÊN GIA

XÂY DỰNG HỆ CHUYÊN GIA “HỆ HỖ TRỢ CHẨN ĐOÁN MỘT SỐ

BỆNH THÔNG THƯỜNG Ở TRẺ EM”

I Xây dựng cơ sở trí thức cho bài toán

II Cài đặt chương trình DEMO

Tài liệu tham khảo

Nhóm 4

Trang 3

LỜI CẢM ƠN

Nhóm sinh viên thực hiện xin gửi lời cảm ơn chân thành đến Thầy Phan Huy Khánh,Thầy đã tận tình truyền đạt những kiến thức cần thiết cho chúng em trong suốt thờigian môn học Tuy đây là môn học mang tính trừu tượng cao nhưng qua các bài giảng

cụ thể và ví dụ thực tiễn sinh động của Thầy, chúng em đã nắm bắt tốt nội dung mônhọc và đã có những định hướng chính xác hơn cho tương lai

Do thời gian và trình độ còn nhiều hạn chế cũng như số lượng lớn các thuật toán cầntrình bày, chắc chắn khóa luận còn có chỗ sai sót Nhóm chúng em rất mong nhậnđược ý kiến góp ý và động viên của Thầy cũng như tất cả các Anh/Chị và các bạn đểtiểu luận được hoàn thiện hơn nữa

Xin chân thành cảm ơn!

Nhóm 4

Trang 4

A – LÝ THUYẾT

I TÌM HIỂU TỔNG QUAN VỀ DATA MINING

1 Data Mining là gì?

Data Mining (khai phá dữ liệu) là việc sử dụng những công cụ phân tích dữ liệu phứctạp để tìm ra những tri thức chưa được biết đến, những mô hình thích hợp, những mốiquan hệ trong những cơ sở dữ liệu lớn Về bản chất, khai phá dữ liệu liên quan đếnviệ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ínhquy (regularities) trong tập dữ liệu Vì vậy, Data Mining không những tập hợp, quản lý

dữ liệu mà còn phân tích, tiên đoán dữ liệu

Năm 1989, Fayyad, Piatestsky-Shapiro và Smyth đã dùng khái niệm Phát hiện tri thứctrong cơ sở dữ liệu (Knowledge Discovery in Database – KDD) để chỉ toàn bộ quátrình phát hiện các tri thức có ích từ các tập dữ liệu lớn Trong đó, khai phá dữ liệu làmột bước đặc biệt trong toàn bộ quá trình, sử dụng các giải thuật đặc biệt để chiết xuất

ra các mẫu (pattern) (hay các mô hình) từ dữ liệu

Data Mining có thể thao tác trên dữ liệu ở dạng định lượng, có cấu trúc hoặc đaphương tiện Những ứng dụng Data Mining có thể sử dụng các phương pháp khácnhau để khảo sát dữ liệu như:

- Mô hình kết hợp: một sự kiện này được kết hợp với một sự kiện khác, ví dụ:mua bút và mua giấy

- Mô hình phân tích đường đi: một sự kiện này dẫn đến một sự kiện khác, ví dụ:đứa trẻ ra đời dẫn đến việc mua tã lót

- Mô hình phân lớp: xác định những mô hình mới

- Mô hình gom nhóm: tìm kiếm và ghi lại thành nhóm những sự kiện chưa khámphá trước đây, như vị trí địa lý, mức độ ưu tiên

- Mô hình dự báo: khám phá những mô hình mà con người có thể tiên đoán đúng

về những sự kiện tương lai

Data Mining được xem là một tiến trình của phát hiện tri thức (Knowledge

Discovery) trong cơ sở dữ liệu.

2 Hạn chế của Data Mining

Data Mining được xem là những công cụ rất mạnh nhưng bản thân nó cũng không thể

là ứng dụng độc lập Data Mining đòi hỏi những chuyên gia phân tích và chuyên gia

kỹ thuật có kỹ năng để phân tích và minh họa đầu ra dữ liệu Vì vậy, những hạn chếcủa Data Mining liên quan đến dữ liệu hoặc con người hơn là về mặt công nghệ

Mặc dầu Data Mining có thể khám phá ra những mô hình và quan hệ trong cơ sở dữliệu, nó không thể cho người dùng biết được giá trị và ý nghĩa của những mô hình đó,

mà đòi hỏi người sử dụng phải tự xác định nó Tương tự, giá trị của những mô hìnhđược khám phá tùy thuộc vào nó được so sánh với “thế giới thực” như thế nào

Một hạn chế khác của Data Mining là khi nó xác định sự liên quan giữa hành vi vàbiến, nó không cần thiết phải xác định nguyên nhân của quan hệ

Nhóm 4

Trang 5

3 Ứng dụng của Data Mining

Data Mining được ứng dụng cho nhiều mục đích khác nhau trong cả hai lĩnh vựcchung và riêng Những ngành như ngân hàng, bảo hiểm, y tế và buôn bán lẻ, DataMining được sử dụng để giảm chi phí, nâng cao việc tìm kiếm thị trường và tăngcường khả năng buôn bán Ví dụ, ngành bảo hiểm và ngân hàng sử dụng Data Mining

để kiểm tra sự gian lận và giúp đỡ trong việc đánh giá những rủi ro Sử dụng những dữliệu của khách hàng qua nhiều năm, công ty có thể phát triển những mô hình để tiênđoán một khách hàng là có đáng tin cậy hay không hoặc một báo cáo về tai nạn có thể

là gian lận và nên được điều tra nghiên cứu lại

Trong lĩnh vực chung, những ứng dụng Data Mining không những được dùng như làmột phương tiện để kiểm tra sự gian lận và lãng phí mà còn được dùng cho nhữngmục đích như đo lường và cải tiến việc thực hiện chương trình Data Mining cũng giúp

đỡ chính phủ liên bang thu hồi hàng triệu đôla bị gian lận trong quĩ hỗ trợ chăm sócngười già, giúp đỡ bộ tư pháp đưa ra những mô hình tội phạm và phân phối nguồn lựcthích hợp, trợ giúp tiên đoán sự thay đổi nhân khẩu và ước lượng tốt hơn về nhu cầungân sách,

Gần đây, Data Mining được xem là công cụ quan trọng trong vấn đề an ninh quốc gia.Một số người đề nghị rằng Data Mining nên được sử dụng như là phương tiện xácđịnh những hoạt động khủng bố như chuyển tiền và thông tin, và xác định định, đánhdấu những người khủng bố qua hồ sơ du lịch, di cư Hai ứng dụng Data Mining đầutiên gây được sự chú ý mạnh mẽ là dự án nhận biết thông tin khủng bố (TerrorismInformation Awareness-TIA) và hệ quan sát hành khách trước màn hình được máytính trợ giúp (Computer Assisted-Passenger Prescreening System II-CAPPS II) Cả 2

hệ thống này ra đời sau sự kiện 11-09-2001, ngày nước Mỹ bị bọn khủng bố tấn công,nhằm đảm bảo an toàn cho các chuyến bay trước nguy cơ khủng bố Hiện tại, dự ánTIA không được tiếp tục và CAPPS II được thay thế bởi hệ thống Chuyến bay an toàn(Security Flight)

4 Một số vấn đề về Data Mining

a Chất lượng dữ liệu

Chất lượng dữ liệu là một thách thức lớn đối với Data Mining Chất lượng dữ liệuđược biết như là độ chính xác và toàn vẹn dữ liệu Chất lượng dữ liệu cũng có thể bịảnh hưởng bởi cấu trúc và sự nhất quán của dữ liệu đang được phân tích

Sự hiện diện của những bản ghi trùng nhau, sự thiếu dữ liệu chuẩn, dữ liệu được cậpnhật cùng một lúc và lỗi do con người có thể tác động đáng kể đến hiệu quả của những

kỹ thuật Data Mining, cụ thể là sự khác nhau tinh vi có thể tồn tại trên dữ liệu

Để cải tiến chất lượng dữ liệu, đôi khi phải tinh chế dữ liệu như loại bỏ các bản ghitrùng nhau, hình thức hóa các giá trị biểu diễn trong cơ sở dữ liệu (ví dụ: “no” đượcthay thế thành 0 hay N ), tính toán những điểm dữ liệu bị thiếu, loại bỏ những trường

dữ liệu không cần thiết,

b Tương tác giữa các thành phần

Đó là sự tương tác giữa các thành phần cơ sở dữ liệu và phần mềm Data Mining Sựtương tác ám chỉ khả năng của một hệ thống máy tính và/hoặc dữ liệu để làm việc vớinhững hệ thống khác, hoặc dữ liệu sử dụng những tiến trình hoặc tiêu chuẩn chung

Nhóm 4

Trang 6

Đối với Data Mining, sự tương tác giữa các thành phần cơ sở dữ liệu và phần mềmData Mining là quan trọng để cho phép việc tìm kiếm và phân tích nhiều cơ sở dữ liệucùng một lúc, và đảm bảo cho sự tương thích của Data Mining với các hoạt động củanhững trạm làm việc khác nhau.

c Sứ mệnh cao cả (Mission Creep)

Mission Creep là một trong những rủi ro hàng đầu của Data Mining Mission creepđược biết như là việc sử dụng dữ liệu cho những mục đích khác hơn là thu thập dữ liệugốc, không quan tâm dữ liệu được cung cập là tùy chọn hay được thu thập qua nhữngphương tiện khác nhau

d Tính bảo mật (Privacy)

Khái niệm vấn đề bảo mật liên quan đến mục đích thực sự của dự án và tiềm năng củaứng dụng Data Mining để phát triển xa hơn mục đích ban đầu của nó Ví dụ, vàichuyên gia đề nghị ứng dụng Data Mining chống khủng bố cũng có thể ứng dụng đểkết hợp với những loại tội phạm khác

Nhóm 4

Trang 7

II CÁC PHƯƠNG PHÁP MÁY HỌC

ỨNG DỤNG TRONG DATA MINING

1 Tìm luật kết hợp (Mining Association Rules)

Nhiệm vụ của tìm luật kết hợp là tìm các mối quan hệ giữa tập các đối tượng (còn gọi

là các phần tử ) trong một CSDL Các mối quan hệ này được diễn tả bởi luật kết hợp

và mỗi luật có hai phép đo: độ hỗ trợ (support) và độ tin cậy (Confidence) Tìm luật

kết hợp rất thích hợp cho các các ứng dụng như crossing-marketing và attachedmailing Ngoài ra nó còn được áp dụng trong thiết kế catalog, add-on sale, store layout

và phân đoạn khách hàng dựa trên đơn mua hàng Bên cạnh lĩnh vực kinh doanh, tìmluật kết hợp còn được áp dụng trong các lĩnh vực khác như chẩn đoán y học,

2 Phân lớp (Classification)

Phân lớp trong Data Mining đã được công nhận là một phương pháp máy học hiệu quảhiện đang áp dụng trong nhiều mặt của khoa học thống kê, ghi nhận mẫu, lý thuếtquyết định, máy học, mạng nơ-ron,…

Ba bước xử lý chính của phân lớp:

» Bước 1: xây dựng một mô hình sử dụng tập dữ liệu đã biết, được gọi là dữ liệu tập huấn (Training data) hay các mẫu (Sample).

» Bước 2: đánh giá độ chính xác ước đoán của mô hình sử dụng dữ liệu thử (test data).

» Bước 3: sử dụng mô hình để dự đoán dữ liệu chưa biết (nếu độ chính xác đãđược chấp nhận)

Chuẩn bị dữ liệu để phân lớp:

» Làm sạch dữ liệu: xóa nhiễu và các giá trị thất lạc

» Kiểm tra không thích hợp: loại bỏ các thuộc tính dư thừa hoặc không thíchhợp

» Chuyển đổi dữ liệu: dữ liệu được tổng quát hóa lên mức khái niệm cao hơnhoặc được chuẩn hóa

3 Gom nhóm (Clustering)

Gom nhóm là nhóm tập các đối tượng vào những nhóm tương đồng nhau,đích nhắm làlớp có tính tương tự cao ở ngoài lớp và có tính tương tự thấp ở trong lớp Ví dụ khámphá các nhóm khách hàng khác biệt, phân loại gen theo chức năng tương tự nhau, nhậndiện nhóm người mua bảo hiểm xe ô-tô có tỉ lệ yêu cầu trung bình cao,

Gom nhóm khác phân lớp (Classification) ở chỗ nó không xác định trước các lớp vàcũng không đánh nhãn lớp cho tập mẫu tập huấn

Phân lớp là phương pháp học theo mẫu, học có giáo viên còn gom nhóm là học theo sựquan sát, không có giáo viên

Nhóm 4

Trang 8

III THUẬT TOÁN TÌM LUẬT KẾT HỢP ỨNG DỤNG TRONG DATA MINING

III.1 Giới thiệu – các định nghĩa liên quan

Một cơ sở dữ liệu (CSDL) giao tác D trên là tập các giao tác trên

Một luật kết hợp là một thể hiện có dạng X Y, trong đó X,Y I là itemset và X Y

= X được gọi là số hạng đứng trước trong khi Y được gọi là vế thứ hai Luật ở đây nghĩa là X xác định Y.

Phủ của một tập X trong D gồm tập các định danh của giao tác trong D hố trợ X:

cover(X,D) := {tid | (tid,I) D, X I}.

Độ hỗ trợ (support) của một tập X trong D là số giao tác có trong phủ của X trong D:

support(X,D) := | cover(X,D) |

Hay nói cách khác, độ hỗ trợ của X là tỷ số các giao tác T hỗ trợ tập phần tử X trong

cơ sở dữ liệu D:

support(X) = |{TD | X T}| / |D|.

Trong [Agrawal1993] [Cheung1996c], support(s) của một luật kết hợp là tỉ số (tính

theo phần trăm) của các bản ghi có chứa X ∪ Y trên tổng số bản ghi của CSDL

Như vậy nếu ta nói, độ hỗ trợ của một luật là 5% thì có nghĩa là có 5% trên tổng sốbản ghi có chứa X ∪ Y

Độ hỗ trợ của luật X Y được định nghĩa như sau: support(XY) = support(XY) Tính phổ biến của tập X trong D là khả năng xuất hiện của X trong một giao tác T ∈ D:

Trang 9

Độ tin cậy (confidence) hay độ chính xác (accuracy) của luật kết hợp X Y trong D

được định nghĩa như sau:

confidence(X Y ,D):=P(Y|X) = support(X Y,D) / support(X,D)

Một luật được gọi là tin cậy (confident) nếu P(Y|X) vượt quá ngưỡng tin cậy tối thiểu

γ với 0 γ 1.

Trong [Agrawal1993] [Cheung1996c], confidence(α) là tỉ số (tính theo phần trăm) của

số bản ghi có chứa X ∪ Y trên tổng số bản ghi của CSDL có chứa X

Nghĩa là nếu nói độ tin cậy là 85% thì 85% số bản ghi chứa X cũng chứa Y

Tiên đề:

Cho CSDL giao tác D trên , X,Y là hai itemset, khi đó:

X Y support(Y) ≤ support(X)

Chứng minh:

Điều này có được ngay từ cover(Y) cover(X) (ĐPCM) 

III.2 Tổng quan về các thuật toán tìm luật kết hợp

1 Thuật toán cơ sở

Tìm các luật kết hợp từ một cơ sở dữ liệu bao gồm quá trình tìm tất cả các luật phù

hợp với ngưỡng support và confidence do người dùng ấn định Vấn đề này có thể được

phân thành 2 vấn đề nhỏ hơn [Agrawal1994] như được trình bày trong thuật toán 1.

Thuật toán 1 Thuật toán cơ sở.

 Phát sinh các luật thoả mãn độ tin cậy confidence α.

Bước thứ nhất của thuật toán sẽ tìm các mục dữ liệu thường xuyên xuất hiện trong cơ

sở dữ liệu thoả ngưỡng minsupp (các tập phổ biến) Các mục dữ liệu khác được gọi là small itemset – không phổ biến.

Một nhận xét đáng chú ý là: nếu một tập các mục dữ liệu X không thoả support s thì các tập lớn hơn của nó (superset) cũng sẽ không thoả s và ngược lại, nếu X thoả s thì superset của X cũng thoả s.

Bước thứ hai của thuật toán 1 sẽ tìm các luật kết hợp sử dụng tập phổ biến đã tìm được

ở bước 1

Nhóm 4

Trang 10

Xem xét ví dụ sau.

Ví dụ 1:

Giả sử có một cơ sở dữ liệu nhỏ với bốn mục dữ liệu I={Bánh mì, Bơ, Trứng, Sữa} và

có bốn giao dịch như trong bảng 1 Bảng 2 là các tập dữ liệu có thể có của I Giả sử rằng minsupp và minconf lần lượt là 40% và 60% Hãy xem bảng 3: đầu tiên ta phải tìm các luật thoả minsupp, sau đó phải xem xét các luật có độ tin cậy minconf tối thiểu

là 60% Các mục dữ liệu thoả mãn hai điều kiện trên là {Bánh mì, Bơ} và {Bơ, Trứng} Minsupp cho mỗi mục dữ liệu đơn tối thiểu là 40% (xem bảng 2), vì thế các mục dữ

liệu này là phổ biến Độ tin cậy của các luật được trình bày trong bảng 3, dễ dàng thấy

rằng luật (Bánh mì Bơ) là hiển nhiên thoả Tuy nhiên luật thứ hai (Bơ Trứng) thì không thoả vì có minconf nhỏ hơn 60%.

Bảng 1: cơ sở dữ liệu cho ví dụ 1 Transaction

ID

Mục dữ liệu

T1 Bánh mì, Bơ, Trứng T2 Bơ, Trứng, Sữa

T4 Bánh mì, Bơ

Bảng 2: minsupp cho các tập phần tử của bảng 1

Ghi chú: Large: phổ biến

Small: không phổ biến

Mục dữ liệu Support, s (%) Large/Small

Bảng 3: các luật thoả minconf ≥ 60%

Trang 11

Việc tính toán các mục dữ liệu phổ biến rất tốn kém [Agrawal 1994] Tuy nhiên, có

một thuật toán trực tiếp tìm các luật kết hợp như thuật toán 2 sau đây (thuật toán này

đã được trình bày trong [Agrawal1994])

Thuật toán 2 – Tìm các luật kết hợp dựa vào tập phổ biến

(l-Ví dụ, giả sử ta cần xác định luật (Bánh mì Bơ) có được chọn trong ví dụ 1 Ở đây, l={Bánh mì, Bơ} và x={Bánh mì}, như vậy (l-x)={Bơ} Khi đó support(Bánh mì, Bơ) với support(Bánh mì) là 100%, lớn hơn ngưỡng tin cậy đã cho, vậy luật này được chọn Để làm rõ thêm ta xét luật thứ 3 (Bơ Trứng), trong đó x = {Bơ} và (l-x) = {Trứng} Tỷ lệ support(Bơ, Trứng) và support(Bơ) là 50%, nhỏ hơn ngưỡng tin cậy tối thiểu là 60% Như vậy ta nói không đủ cơ sở để kết luận rằng luật (Bơ Trứng) đạt

độ tin cậy 60%

Quá trình tìm các luật kết hợp trong các cơ sở dữ liệu cực lớn là rất tốn kém và đạthiệu suất thấp Vì vậy hầu hết các cải tiến sau này đều theo hướng tìm những thuậttoán hiệu quả hơn cho bước thứ nhất [Algrawal1994] [Cheung1996c][Klemettien1994] Phần tiếp theo sẽ trình bày các thuật toán này

2 Các thuật toán tuần tự (Sequential Algorithm)

Phần này sẽ trình bày một cách tổng quát về các thuật toán đã có để tìm luật kết hợp.Hầu hết các thuật toán được dùng để nhận dạng các tập phổ biến được phân thành 2lớp: tuần tự và song song Trong hầu hết các trường hợp, các thuật toán này giả thiếtrằng các tập phần tử được nhận dạng và sắp xếp theo thứ tự đồ thị lexico(lexicographic – đồ thị dựa trên tên của mục dữ liệu) Kiểu sắp xếp này cung cấp mộtcách quản lý logic mà theo đó các tập phần tử có thể được phát sinh và thống kê Đây

là hướng tiếp cận tiêu chuẩn với các thuật toán tuần tự On the other hand, các thuậttoán song song tập trung vào phương pháp sao cho xử lý song song tác vụ khi tìmkiếm các tập phổ biến Sau đây chúng ta sẽ thảo luận về các thuật toán loại này

2.1 Thuật toán AIS

AIS là thuật toán được công bố đầu tiên để nhận dạng tất cả các tập phổ biến trong một

cơ sở dữ liệu giao tác [Agrawal1993] Nó tập trung vào sự nâng cao các CSDL để xử

lý các câu hỏi hỗ trợ ra quyết định Thuật toán này là đích nhắm để khám phá các luậtkết hợp chất lượng (qualitative rule)

Nhóm 4

Trang 12

Thuật toán AIS duyệt cơ sở dữ liệu đầu vào nhiều lần và ở mỗi lần duyệt, AIS quét

qua mọi giao tác Trong lần duyệt đầu tiên, AIS đếm support của các mục dữ liệu

riêng biệt và xác định chúng thuộc tập phổ biến hay không Tập phổ biến của mỗi lầnduyệt được mở rộng để phát sinh tổ hợp các tập phần tử Sau khi quét một giao tác, cáctập phần tử chung của lần quét trước và các phần tử của giao tác hiện tại được xácđịnh Tập phần tử chung này được mở rộng với những phần tử khác trong giao tác

nhằm tạo ra tổ hợp mới Một tập mục dữ liệu phổ biến l được mở rộng chỉ với những

mục dữ liệu là phổ biến và xuất hiện trễ hơn trong thứ tự sắp xếp lexicographic của bất

kỳ mục dữ liệu nào có trong l Để đạt được hiệu quả trong tác vụ này, AIS sử dụng

công cụ ước lượng và kỹ thuật cắt tỉa (pruning) Các kỹ thuật ước lượng và cắt tỉa xácđịnh các tổ hợp bằng cách bỏ qua các tập phần tử không cần thiết từ tập tổ hợp Sau

đó, support của mỗi tổ hợp sẽ được tính toán Các tổ hợp có support lớn hơn hoặc bằng minsupp được chọn là tập phổ biến Tập mục dữ liệu này được mở rộng để tạo

các tổ hợp ở lần duyệt kế tiếp Quá trình này sẽ dừng khi không có tập mục dữ liệu nàođược tìm thấy

Thuật toán này bảo đảm rằng nếu tập phần tử nào không tồn tại trong toàn thể CSDLthì nó không bao giờ trở thành một tổ hợp cho tập phổ biến trong lần duyệt tiếp theo.Việc phát sinh số lượng lớn các tập tổ hợp thường là nguyên nhân dẫn đến tràn bộ nhớđệm Bởi vậy một sự phối hợp việc quản lý bộ nhớ đệm là cần thiết Thuật toán AIS đềxuất hướng giải quyết rằng các tập phổ biến không cần thiết phải lưu trong bộ nhớtrong suốt quá trình duyệt CSDL mà có thể được lưu trên đĩa Thuật toán quản lý bộnhớ đệm cho các tập tổ hợp được cung cấp trong [Agrawal1993]

Vấn đề chính của AIS là nó phát sinh quá nhiều tổ hợp mà sau này sẽ không thoảngưỡng cho phép [Agrawal1994] Nếu một cơ sở dữ liệu có m mục dữ liệu và mọimục dữ liệu đều xuất hiện trong mỗi giao tác thì sẽ có 2m trường hợp cần xét Nhưvậy,trong trường hợp xấu nhất, độ phức tạp của thuật toán này là hàm mũ theo m

2.2 Thuật toán SETM

Thuật toán SETM được đề xuất trong [Houtsma1995] và thích hợp cho SQL nhằm tínhtoán các tập phổ biến [Srikant1996] Trong thuật toán này, mỗi thành phần của tập phổbiến, L k , đều có khuôn dạng <TID, itemset> trong đó TID là định danh duy nhất của

giao tác Tương tự, mỗi thành phần của tập các tập tổ hợp, C k , cũng có dạng <TID, itemset>.

Tương tự như AIS, SETM tiến hành duyệt nhiều lần trên cơ sở dữ liệu Trong lần

duyệt đầu tiên, nó đến support của các mục dữ liệu riêng lẻ và xác định xem chúng có

thoả ngưỡng đã đặt hay không Sau đó SETM sẽ phát sinh các tổ hợp bằng cách mở

rộng tập phổ biến của lần duyệt trước Thêm vào đo, SETM sẽ ghi nhớ các TID của

các giao tác đang phát sinh cùng các tập tổ hợp Trong quá trình phát sinh tổ hợp,

SETM lưu một bản sao của tập phổ biến cùng với TID quá trình phát sinh giao tác theo

dạng tuần tự (sequential manner) Sau này, các tổ hợp sẽ được lưu dưới dạng các tậpphần tử và các tập không thoả ngưỡng sẽ bị xoá bằng hàm kết hợp (aggregation

function) Nếu cơ sở dữ liệu được sắp xếp theo TID, tập phổ biến chứa trong một giao

tác ở bước kế tiếp sẽ được thu nhận bằng cách sắp xếp L k theo TID Theo cách này,

Nhóm 4

Trang 13

có nhiều lần duyệt CSDL sẽ được tạo ra và khi không còn tập phổ biến nào được tìmthấy, thuật toán sẽ dừng.

Điểm bất lợi chính của SETM là chi phí phải trả cho số lượng các tập tổ hợp

[Agrawal1994] Vì mỗi tổ hợp có một TID tương ứng nên nó yêu cầu thêm không gian nhằm có thể lưu trữ được một số lượng lớn các TID Hơn nữa, khi support của một tổ

hợp được thống kê tại điểm cuối của lần duyệt, C k lại không được sắp theo thứ tự, bởivậy cần phải có một lần sắp xếp nữa trên các tập phần tử Sau đó, các tổ hợp được tách

(pruned) bằng cách loại bỏ các tập không thoả ngưỡng support Có một cách sắp xếp khác trên TID là cần thiết cho tập kết quả L k Sau này, L k có thể được dùng để phátsinh các tổ hợp cho lần duyệt kế tiếp Trong thuật toán SETM [Agrawal1994], giả thiếtrằng C k có thể chứa được trong bộ nhớ chính, vì vậy không cần phải quản lý bộ đệm.Hơn nữa, theo [Sarawagi1998], SETM là không có hiệu quả và mỗi khi thực hiện trênCSDL quan hệ sẽ không thấy phần báo cáo kết quả

2.3 Thuật toán Apriori

Thuật toán Apriori được phát triển bởi [Agrawal1994] là thành tựu lớn nhất trong lịch

sử khi phá luật kết hợp [Cheung1996c] Chi tiết của thuật toán sẽ được trình bày trong[IV.1] Điểm khác biệt cơ bản giữa Apriori với AIS và SETM là cách thức tạo và chọn

tổ hợp để thống kê thoả ngưỡng hay không Như đã trình bày, cả trong AIS và SETM,các tập phần tử chung giữa tập phổ biến của lần duyệt trước và các phần tử của giaotác được xác định Các tập chung này được mở rộng với các phần tử riêng biệt tronggiao tác để tạo các tổ hợp Tuy nhiên, các phần tử riêng biệt này có thể là không phổbiến Ta đã biết rằng sự kết hợp của tập phổ biến và tập không phổ biến có thể lại tạo

ra tập không phổ biến nên kỹ thuật này phát sinh quá nhiều tổ hợp có thể không thoảngưỡng Thuật toán Apriori tạo các tổ hợp bằng cách kết nối các tập phổ biến của lầnduyệt trước và xoá các tập con không thoả trong lần duyệt trước mà không xét đến cácgiao tác trong CSDL Bằng cách chỉ xét đến tập phổ biến của lần duyệt trước, số lượng

tổ hợp giảm đi dáng kể

2.4 Thuật toán Apriori-TID

Apriori quét dữ liệu đầu vào cho mỗi lần duyệt nhằm thống kê support nhưng việc

quét dữ liệu đầu vào này không cần thiết phải thực hiện ở tất cả các lần duyệt Dựa vàođiều này, [Agrawal1994] đề xuất thuật toán khác gọi là Apriori-TID Tương tự nhưApriori, Apriori sử dụng hàm tạo tổ hợp của Apriori để xác định tập tổ hợp phần tửtrước mỗi lần duyệt Sự khác biệt chính so với Apriori là thuật toán này không dùng

CSDL để thống kê support sau lần duyệt đầu tiên Đúng hơn là nó dùng một bảng mã

của tập tổ hợp các phần tử, ký hiệu là C k, đã dùng trong lần duyệt trước Như trongSETM, mỗi phần tử trong C k có dạng <TID, X k > với X k là khả năng hiện diện của tập

k phần tử trong giao tác có định danh TID Tại lần duyệt đầu tiên, C 1 tương ứng với

CSDL, tuy nhiên mỗi phần tử được thay bằng tập phần tử Trong các lần duyệt khác,thành phần của C k tương ứng với giao tác T là <TID, c> với c là một tổ hợp thuộc C

k chứa trong T Bởi vậy kích thước của C k có thể nhỏ hơn số lượng giao tác trongCSDL Hơn nữa, mỗi dòng vào trong C k có thể nhỏ hơn giao tác tương ứng khi giá trị

Nhóm 4

Trang 14

k đủ lớn Có điều này bởi vì rất ít tổ hợp có thể được chứa trong giao tác Chi tiết thuật

toán được trình bày trong [IV.3]

Điểm tiện lợi khi sử dụng hàm mã hoá trên là trong các lần duyệt tiếp sau, kích thướchàm sẽ trở nên nhỏ hơn so với CSDL, theo đó sẽ tiết kiệm được nhiều lần đọc dữ liệu.Apriori-TID cũng thực hiện tốt hơn hai thuật toán AIS và SETM

Trong Apriori-TID, tập tổ hợp các phần tử trong Ck được lưu trữ trong một mảng sắpxếp theo các TID Mỗi Ck lại được lưu theo cấu trúc tuần tự Tại lần duyệt thứ k,Apriori-TID cần có không gian bộ nhớ dành cho Lk-1 và Ck trong quá trình tạo tổ hợp.Không gian bộ nhớ là cần thiết cho Ck-1, Ck, C kC k -1 ở tại pha thống kê Tại thờiđiểm phát sinh tổ hợp, phân nửa bộ đệm được lấp đầy bằng các tổ hợp và điều này chophép các phần của Ck và Ck-1 được lưu trong bộ nhớ suốt trong pha tính toán Nếu bộnhớ không còn đủ để lưu trữ Lk, thuật toán khuyến cáo nên sắp xếp Lk ở thiết bị lưu trữngoài

Apriori-TID sử dụng C k thay cho CSDL đầu vào sau lần duyệt đầu tiên nên nên nó đạthiệu quả cao ở các lần duyệt sau khi tập C k đã trở nên nhỏ hơn Tuy nhiên Apriori-TID có cùng rắc rối với SETM khi C k có khuynh hướng lớn dần, nhưng Apriori-TIDthì phát sinh tập tổ hợp ít hơn đáng kể so với SETM Khi k lớn dần, một vấn đề nữaphát sinh là việc quản lý bộ đệm (buffer management) Đây là căn cứ chứng tỏ Apriori–TID thực hiện tốt hơn Apriori khi số tập C k là đủ nhỏ để có thể đưa vào bộ nhớ và

sự phân bố các tập phổ biến là đủ lớn [Srikant1996b] Sự phân bổ này sẽ trở nên nhỏhơn ngay sau khi vươn đến tột đỉnh và cứ tiếp tục trong một thời gian dài Điều nàycho thấy hiệu suất của Apriori tốt hơn Apriori-TID đối với các tập dữ liệu lớn[Agrawal1994] nhưng mặt khác Apriori-TID lại tốt hơn Apriori khi các tập C k làtương đối nhỏ (vừa đủ trong bộ nhớ) Vì vậy xuất hiện kỹ thuật “Apriori-Lai” được đềcập bởi [Agrawal994]

2.5 Thuật toán Apriori-Hybrid

Tư tưởng của thuật toán này là không nhất thiết phải sử dụng cùng một thuật toántrong tất cả các lần duyệt trên dữ liệu Như đã được đề cập trong [Agrawal1994],Apriori đạt hiệu suất tốt hơn trong những lần duyệt đầu tiên, và Apriori-TID thực hiệntốt hơn Apriori ở những lần duyệt sau Dựa trên những thí nghiệm quan sát được, kỹthuật Apriori-Hybrid đã được phát triển nhằm sử dụng Apriori ở những lần duyệt khởiđộng và chuyển sang Apriori-TID một khi cho rằng tập C k ở cuối lần duyệt sẽ lấp vừa

bộ nhớ Bởi vậy, sự tính toán C k khi nào đạt được trạng thái trên là cần thiết Mặtkhác, việc chuyển từ Apriori sang Apriori-TID cũng phải mất một lượng chí phí nhấtđịnh Hiệu năng của kỹ thuật này có thể đánh giá được bằng các thí nghiệm trên cáctập dữ liệu lớn Thuật toán này là tốt hơn Apriori ngoại trừ trường hợp việc chuyểntrạng thái (từ thuật toán này sang thuật toán kia) xảy ra tại thời điểm cuối cùng củamỗi lần duyệt [Srikant1996b]

2.6 Một số thuật toán khác

Nhóm 4

Trang 15

 Off-line Candidate Determination (OCD)

Kỹ thuật này được đề xuất trong [Mannila1994] dựa trên ý tưởng là các mẫu khôngphổ biến thường rất tốt để tìm các tập phổ biến Kỹ thuật OCD sử dụng kết quả phântích tổ hợp các thông tin nhận được từ lần duyệt trước nhằm loại ra các tập không cần

thiết Nếu một tập Y l là không phổ biến, có ít nhất (1-s) giao tác phải được duyệt với s là ngưỡng support Bởi vậy khi s đủ nhỏ, gần như toàn bộ quan hệ đưa vào được

đọc Rõ ràng là đối với các CSDL rất lớn, điều này rất quan trọng để có thể tiến hànhduyệt CSDL ít hơn

OCD là một cách tiếp cận khác từ AIS để xác định các tổ hợp OCD sử dụng tất cả cácthông tin sẵn có từ lần duyệt trước để chia tách các tập tổ hợp giữa các lần duyệt bằngcách giữ lại lần duyệt đơn giản nhất có thể Kết quả của OCD là tập Lk, là tập các phần

tử phổ biến có độ lớn k Tập tổ hợp Ck+1, chứa các tập có độ lớn (k+1), có thể có mặttrong Lk+1, nhận được từ tập Lk Chú ý rằng nếu X ∈ L k+e với e≥0 thì X bao gồm

tập từ L k Điều này có nghĩa rằng nếu e=1, k=2 và X L 3 thì X gồm có

từ L 2 Tương tự, mỗi mục của L 4 gồm 4 tập của L 3 và cứ thế tiếp tục

Ví dụ, với L 2 ={Táo, Chuối}, {Chuối, Cải bắp}, {Táo, Cải bắp}, {Táo, Trứng}, {Chuối, Trứng}, {Táo, Kem}, {Cải bắp, Sirô}} ta kết luận rằng {Táo, Chuối, Cải bắp} và {Táo, Chuối, Trứng} chỉ có thể là các thành phần thuộc L 3 Bởi vì chúng là các tập có kích

thước 3 của tất cả các tập con có kích thước 2 trong L 2 L 4 là rỗng vì bất kỳ thành phần

nào của L 4 đều phải có 4 phần tử thuộc L 3 , nhưng trong L 3 chỉ có 2 phần tử

Từ đó C k+1 được tính theo công thức sau:

C k+1 = {Y I với |Y|=k+1 và Y bao gồm (k+1) phần tử của L k } (1)

Để tìm C k+1 ta cần phải xét đến mọi khía cạnh, ở đó mọi tập con có kích thước k+1 đềuphải được xét đến Thủ tục này xét một tập rất lớn các tổ hợp không cần thiết, vì thếrất lãng phí Để giải quyết, OCD đề nghị hai hướng đi khác thay thế Một trong số đó

là tính tập C’ k+1 bằng cách tạo các hợp của L k có (k-1) phần tử theo công thức sau:

C’ k+1 = {YY’ với Y, Y’ L k và |YY’|=k+1} (2)

Như vậy C k+1 C’ k+1 và C k+1 có thể được tính bằng cách kiểm tra mỗi một tập trong

C’ k+1 mà các điều kiện định nghĩa C k+1 thoả mãn

Hướng đi thứ hai là xây dựng hợp của các tập từ L k và L 1 như trong (3)

Sau đó tính C k+1 bằng cách kiểm tra cả những điều kiện nằm trong công thức (1)

Nhóm 4

Trang 16

Ở đây, độ phức tạp tính toán C k+1 không phụ thuộc vào kích thước của CSDL, hay

đúng hơn là không phụ thuộc vào kích thước của L k Ngoài ra có thể tính được C k+1 ,

C k+2 ,…,C k+e với e>1 trực tiếp từ L k

Độ phức tạp thời gian tính C k+1 từ C’ k+1 là O(k|Lk|3) Nói cách khác, thời gian tính C k+1

từ C’’ k+1 là tuyến tính theo kích thước của cơ sở dữ liệu (n) và hàm mũ theo kích thước

của tập phổ biến lớn nhất Bởi vậy thuật toán có thể rất chậm với giá trị n rất lớn Tập

phổ biến có thể được tính xấp xỉ bằng cách phân tích các mẫu nhỏ hơn của một CSDLlớn [Lee1998; Mannila1994] Lý thuyết phân tích này đã được [Mannila1994] trìnhbày và chứng tỏ rằng các mẫu nhỏ này rất tốt để tìm các tập phổ biến Theo

[Mannila1994], thậm chí khi ấn định giá trị thấp cho support, một cơ sở dữ liệu mẫu

mang lại là khả năng ấn định ngưỡng support thấp [Mannila1994] Các tổ hợp được

phát sinh trong AIS là cao hơn đáng kể so với OCD AIS có thể tạo ra các tổ hợp trùnglặp trong khi duyệt, còn OCD phát sinh bất kỳ tổ hợp nào cũng chỉ một lần và kiểm tra

nếu các tập con của nó là phổ biến hay không trước khi đánh giá trong cơ sở dữ liệu.

Partitioning

Kỹ thuật này [Savasere1995] quy số lượng cơ sở dữ liệu cần phải duyệt chỉ còn 2 Nóchia CSDL thành những phần nhỏ hơn sao cho mỗi phần chia có thể lưu vừa đủ trong

bộ nhớ chính

Giả sử có một CSDL được chia thành các phần nhỏ như sau: D 1 , D 2 ,…, D p Trong lần

duyệt đầu tiên, thuật toán tìm các tập phổ biến cục bộ L i (local large itemset) trong mỗi phần chia D i (1 ≤ i ≤ p) nghĩa là {X | X.count ≥ s x |D i |}.

Tập phổ biến cục bộ, L i, có thể được xác định bằng thuật toán level-wise như Apriori.Một khi mỗi phần chia đều được lưu trữ vừa đủ trong bộ nhớ thì không cần thiết cầnthêm đọc/ghi đĩa cho nó sau khi nạp phần chia vào bộ nhớ chính Ở lần quét thứ hai,thuật toán sử dụng một đặc tính là một tập phổ biến trên toàn bộ CSDL thì cũng phảiphổ biến cục bộ trên ít nhất một phân vùng của CSDL Khi đó hợp của các tập phần tửphổ biến cục bộ tìm thấy trên mỗi phần chia được dùng như là các tổ hợp và đượcthống kê trên toàn CSDL nhằm tìm tất cả các tập phổ biến

Duyệt D để thống

kê support

Hình 1: Tìm các tập phổ biến dùng thuật toán PARTITION

Trang 17

Nếu CSDL được chia thành hai phần, phần thứ nhất chứa hai giao dich đầu tiên và

phần thứ hai là hai giao dịch còn lại Khi minsupp là 40% và chỉ có hai giao tác trong

mỗi phần chia thì một tập phần tử xuất hiện chỉ một lần sẽ thỏa ngưỡng Khi đó cáctập phổ biến cục bộ trên hai phân vùng vừa đúng bằng tất cả các tập con của các giaotác Hợp của chúng là tập tổ hợp các phần tử cho lần duyệt thứ hai

Thuật toán Partition làm đồng nhất dữ liệu phân tán Có nghĩa rằng, thậm chí nếu sự

xuất hiện của một tập phần tử bị phân bố trên mỗi phân vùng thì hầu hết các tập phần

tử được thống kê ở lần quét thứ hai là phổ biến Tuy nhiên, đối với dữ liệu phân tán

lệch (skewed data distribution), hầu hết các tập phần tử trong lần quét thứ hai có thể

thành không phổ biến, do đó sẽ hao tổn rất nhiều thời gian của CPU để thống kê cáctập trên AS-CPA (Anti-Skew Counting Partition Algorithm) [Lin1998] là dòng thuậttoán anti-skew, đề xuất phương pháp cải tiển Partition khi dữ liệu là phân tán như sau:trong lần duyệt đầu tiên, số lượng các tập phần tử được tìm thấy trong các phần chiatrước đó sẽ được tích luỹ lại và được tăng lên ở phần chia tiếp theo Số tích luỹ này

được dùng để lược bớt những tập phần tử không phổ biến Nhờ sử dụng kỹ thuật lược

bỏ những tập phần tử không phổ biến trước mà số lượng các tập không thoả được đếm

sẽ giảm đi trong những lần duyệt tiếp theo

 Sampling

Sampling[Toivonen1996] giảm thiểu số lượng CSDL cần được duyệt trong trường hợptốt nhất còn một và xấu nhất là hai CSDL Đầu tiên, một phần cơ sở dữ liệu có thể lưutrữ vừa đủ trong bộ nhớ chính được trích ra Sử dụng các thuật toán level-wise như

Apriori để tìm tập phổ biến PL của phần mẫu này Tập PL này được xem như là một

tập phổ biến và được dùng để phát sinh các tổ hợp mà chúng sẽ được kiểm tra lại trêntoàn CSDL

Các tổ hợp được phát sinh bằng hàm phủ định biên BD ¯ (Negative Border Function) trên PL Như vậy các tổ hợp là BD ¯ (PL) PL Phủ định biên của tập các phần tử PL

là tập tối thiểu của tập các phần tử không chứa trong PL nhưng mọi tập con của chúng lại thuộc PL Hàm phủ định biên là sự tổng quát hoá của hàm apriori_gen trong

Apriori Khi mọi tập phần tử trong PL có cùng kích thước, BD ¯ (PL)

=Apriori_gen(PL) Sự khác biệt ở đây là phủ định biên có thể được áp dụng cho các

tập phần tử có kích thước khác nhau, trong khi hàm apriori_gen () chỉ áp dụng khi kíchthước tập phần tử là một

Sau khi các tổ hợp được phát sinh, toàn bộ CSDL được quét một lần để xác định số

lượng các tổ hợp Nếu tất cả các tập phổ biến đều nằm trong PL, nghĩa là không có tập phần tử nào trong BD ¯ (PL) trở thành phổ biến, thì mọi tập phổ biến đã được tìm thấy

và thuật toán dừng Điều này được đảm bảo bởi vì BD ¯ (PL) PL thực tế chứa mọi tổ hợp các tập phần tử của Apriori nếu PL bao hàm tất cả tập các phần tử L, nghĩa là L

PL

 Dynamic Itemset Counting (Brin1997a)

Nhóm 4

Ngày đăng: 17/07/2015, 12:32

HÌNH ẢNH LIÊN QUAN

Bảng 1: cơ sở dữ liệu cho ví dụ 1 Transaction - Tiểu luận Công nghệ tri thức
Bảng 1 cơ sở dữ liệu cho ví dụ 1 Transaction (Trang 10)
Có bốn giao dịch như trong bảng 1. Bảng 2 là các tập dữ liệu có thể có của  I. Giả sử - Tiểu luận Công nghệ tri thức
b ốn giao dịch như trong bảng 1. Bảng 2 là các tập dữ liệu có thể có của I. Giả sử (Trang 10)
Bảng 4: So sánh các thuật toán đã trình bày - Tiểu luận Công nghệ tri thức
Bảng 4 So sánh các thuật toán đã trình bày (Trang 27)
Bảng 4 tổng hợp và cung cấp một sự so sánh ngắn gọn các thuật toán đã được trình bày trong khóa luận này - Tiểu luận Công nghệ tri thức
Bảng 4 tổng hợp và cung cấp một sự so sánh ngắn gọn các thuật toán đã được trình bày trong khóa luận này (Trang 28)

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