Sự tăng trưởng vượt bậc của các cơ sở dữ liệu CSDL trong cuộc sống như: thương mại, quản lý và khoa học đã làm nảy sinh và thúc đẩy sự phát triển của kỹ thuật thu thập, lưu trữ, phân tíc
Trang 1TRƯỜNG ĐẠI HỌC PHENIKAA KHOA CÔNG NGHỆ THÔNG TIN
⸎⸎⸎⸎⸎
BÀI TẬP LỚN KẾT THÚC HỌC PHẦN KHAI PHÁ DỮ LIỆU
Đề tài: "Tìm hiểu về association rules"
HÀ NỘI, THÁNG 4 NĂM 2023
Trang 2MỤC LỤC
Bảng phân công công việc 2
PHẦN MỞ ĐẦU 3
NỘI DUNG 4
I TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU 4
1 Khái niệm: 4
2 Các kỹ thuật khai phá dữ liệu 4
2.1 Các kỹ thuật tiếp cận trong Data mining 4
2.2 Dạng dữ liệu có thể khai phá 5
2.3 Ứng dụng của khai phá dữ liệu 5
II LUẬT KẾT HỢP TRONG KHAI PHÁ DỮ LIỆU 6
1 Khai phá luật kết hợp 6
2 Lý thuyết về luật kết hợp 8
III KHAI PHÁ LUẬT KẾT HỢP BẰNG THUẬT TOÁN FREQUENT PATTERN GROWTH 9
1.Thuật toán sinh các luật kết hợp Apriori 9
2 Thuật toán FP-growth 10
2.1 Ý tưởng thuật toán 11
2.2 Thuật toán FP-growth 12
2.3 Thực hành thuật toán FP-growth 13
2.4 Đánh giá thuật toán FP-growth 19
KẾT LUẬN 21
Trang 3Bảng phân công công việc
Phạm Thành Trung
Nguyễn Thị Tâm
Trang 4PHẦN MỞ ĐẦU
Trong những năm gần đây, việc nắm bắt được thông tin được coi 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 thu thập và hiểu được thông tin và hành động dựa trên các thông tin được kết xuất từ các thông tin đã có sẽ đạt được thành công trong mọi hoạt động Chính vì lý do đó, việc tạo ra thông tin, tổ chức lưu trữ và khai thác ngày càng trở nên quan trọng
và gia tăng không ngừng
Sự tăng trưởng vượt bậc của các cơ sở dữ liệu (CSDL) trong cuộc sống như: thương mại, quản lý và khoa học đã làm nảy sinh và thúc đẩy sự phát triển của kỹ thuật thu thập, lưu trữ, phân tích và khai phá dữ liệu… không chỉ bằng các phép toán đơn giản thông thường như: phép đếm, thống kê… mà đòi hỏi cách xử lý thông minh hơn, hiệu quả hơn Từ đó các nhà quản lý có được thông tin có ích để tác động lại quá trình sản xuất, kinh doanh của mình… đó là tri thức Các kỹ thuật cho phép ta khai thác được tri thức hữu dụng từ CSDL (lớn) được gọi là các kỹ thuật khai phá dữ liệu (DM – Data Mining) Khai phá luật kếthợp là một nội dung quan trọng trong khai phá dữ liệu
Khai phá dữ liệu (Data Mining) được coi là quá trình trích xuất các thông tin có giá trị tiềm ẩn bên trong lượng lớn dữ liệu được lưu trữ trong các CSDL, kho dữ liệu… Hiện nay, ngoài thuật ngữ khai phá dữ liệu, người ta còn dùng một số thuật ngữ khác có ý nghĩa tương tự như: Khám phá tri thức từ cơ sở dữ liệu (Knowledge Discovery in Database-KDD), 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)
Tiểu luận trình bày một số vấn đề về khai phá dữ liệu, và trình bày rõ vấn
đề khai phá luật kết hợp và ứng dụng một số thuật toán khai phá luật kết hợp trong CSDL
Trang 5NỘ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 ở thập kỷ
80 của thế kỷ XX Nó bao hàm một loạt các kỹ thuật nhằm phát hiện ra các thông tin có giá trị tiềm ẩn trong các tập dữ liệu lớn (các kho dữ liệu) Về bản chất, khai phá dữ liệu liên quan đến việc phân tích các dữ liệu và sử dụng các kỹthuật để tìm ra các mẫu hình có tính chính quy trong tập dữ liệu
Năm 1989, Fayyad, Piatestsky-Shapiro và Smyth đã dùng khái niệm khám phá tri thức trong cơ sở dữ liệu, để 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 hay các môhình từ dữ liệu
Ở một mức độ trừu tượng nhất định có thể định nghĩa về khai phá dữ liệu:
Data Mining là một quá trình tìm kiếm, phát hiện các tri thức mới, tiềm ẩn, hữu
dụng trong CSDL lớn
Khám phá tri thức (KDD) là mục tiêu chính của khai phá dữ liệu, do vậy
hai khái niệm đó được xem như hai lĩnh vực tương đương nhau Nhưng, nếu phân chia một cách tách bạch thì khai phá dữ liệu là một bước chính trong quá trình KDD
2 Các kỹ thuật khai phá dữ liệu
2.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ết
trước Ví dụ: phân lớp các bệnh nhân dữ liệu trong hồ sơ bệnh án Hướng tiếp
Trang 6cậ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ữa
cá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ợp như sau: phân tích CSDL bán hàng nhận được thông tin về những khách hàng mua máy tính cũng có khuynh hướng mua phần mềm quản lý tài chính trong cùng lầnmua đượ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”
[Độ hỗ trợ: 4%, độ tin cậy: 70%]
Độ hỗ trợ và độ tin cậy là hai độ đo của sự đáng quan tâm của luật Chúngtương ứng phản ánh sự hữu ích và sự chắc chắn của luật đã khám phá Độ hỗ trợ4% có nghĩa là: 4% của tất cả các tác vụ đã phân tích chỉ ra rằng máy tính và phần mềm quản lý tài chính là đã được mua cùng nhau Còn độ tin cậy 70% có nghĩa là 70% các khách hàng mua máy tính cũng mua phân mềm quản lý tài chính
Phân tích chuỗi theo thời gian: Tượng tự như khai phá luật kết hợp nhưng
có thêm tính thứ tự và tính thời gian Hướng tiếp cận này được ứng dụng nhiều trong lĩnh vực tài chính và thị trường chứng khoán vì nó có tính dự báo cao.Phân cụm: 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
2.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ất nhiều kiểu dữ liệu khác nhau Sau đây là một số dạng dữ liệu điển hình: CSDL quan 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 2.3 Ứng dụng của khai phá dữ liệu
Trang 7Khai 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ê: 1) phân tích dữ liệu và hỗ trợ ra quyết định; 2) điều trị y học; 3) phát hiện văn bản; 4) tin sinh học; 5) tài chính và thị trường chứng khoán; 6) bảo hiểm
II LUẬT KẾT HỢP TRONG KHAI PHÁ DỮ LIỆU
1 Khai phá luật kết hợp
Khai phá luật kết hợp (Association Rule Mining) là một kĩ thuật khai phá
dữ liệu được sử dụng để tìm kiếm các quy luật kết hợp giữa các mục trong một tập dữ liệu lớn Kĩ thuật này thường được áp dụng trong lĩnh vực phân tích dữ liệu và khai thác dữ liệu để giúp phát hiện ra các mối quan hệ ẩn giữa các mục trong tập dữ liệu, từ đó đưa ra những quyết định hoặc đề xuất cho người sử dụng
Quá trình khai phá luật kết hợp:
Dữ liệu gốc (Raw data)
Tiền xử lí dữ liệu
Tìm được các mẫu , loại, phần tử (được quan tâm nhiều)
Khai phá tìm ra các mối quan hệ giữa chúng (gọi là các luật)
Sau đấy xử lý để đưa ra các luật, ứng dụng cho người dùng
Mục đích chính của khai phá luật kết hợp: Tìm các mẫu (hàng) xuất hiện nhiều, các liên quan, tương quan hoặc là các cấu trúc hệ quả trong các tập hợp các mẫu hoặc các đối tượng trong CSDL (chủ yếu về giao dịch)
Trang 8Như 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 Tiếp theo, tiểu luận sẽ đề cập đến luật kết hợp Đây là một hướng nghiên cứu quan trọng trong lĩnh vực khai phá dữ liệu và là nội dung tìm hiểu, nghiên cứu trọng tâm của tiểu luận.
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éo theo 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ỗi luậ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ễn bằng tỉ lệ
% những bản ghi trong D chứa cả S và U
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ện luậ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%
Trang 9Hãy tưởng tượng, một công ty bán hàng qua mạng Internet Các khách hàng được yêu cầu điền vào các mẫu bán hàng để công ty có được một CSDL 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à công nhânđặt mua mặt hàng gì đó, ví dụ áo dài chẳng hạn là nhiều nhất, thoả mãn một ngưỡng nào đó ?
2 Lý thuyết về luật kết hợp
Luật kết hợp là một biểu thức có dạng: X Y, trong đó X và Y là tập các trườ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ước một cơ sở dữ liệu có D là tập các giao tác - trong đó mỗi giao tác TD là tập cácitem - khi đó X Y diễ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ện p(YT XT) Ý tưởng của việc khai thá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ủa khách và nhận ra rằng “Một khách hàng mua mặt hàng X1 và X2 thì sẽ mua mặt hàng Y với xác suất là c%” Ứ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
Một số khái niệm về luật kết hợp:
- Item: Phần tử, mẫu, loại
Trang 10hay nhiều giao dịch Thể hiện mối
liên hệ giữa các phần tử/các tập phần
tử
- Association rules(Luật kết hợp) : qui tắc kết hợp có điều kiện giữa các tập phần
tử Thể hiện mối liên hệ (có điều kiện) giữa các tập phần tử
- Support (độ hỗ trợ/ Ủng hộ): trong bao nhiêu phần trăm dữ liệu thì những điều
ở vế trái và vế phải cùng xảy ra
Chú ý : I có thể là 1 hoặc nhiều items
Ví dụ: I = A; Hoặc I là A và B
- Confidence (độ tin cậy): Nếu vế trái xảy ra thì có bao nhiêu khả năng vế phải xảy ra
- Frequent itemset (tập phần tử phổ biến – thường xuyên):
Tìm một tập các mẫu (loại) - itemsets: Những itemset xuất hiện nhiều hơn
ngưỡng Một tập con của một tập mẫu xuất hiện nhiều ( frequent itemset) cũng
là một tập mẫu xuất hiện nhiều ( frequent itemset) vd: Nếu {A, B} là một tập frequent itemsets thì {A} và {B} cũng là những tập itemsets Lặp lại tìm kiếm các tập mẫu xuất hiện nhiều lặp lại từ 1 K (K- itemset) Sử dụng mẫu này để
Trang 11Apriori được giới thiệu lần đầu tiên bởi Agrawal vào năm 1993 Tư tưởng
chính của thuật toán Apriori là: Tìm tất cả frequent itemsets, k-itemset (itemsets
gồm k items) được dùng để tìm (k+1)-itemset
Từ frequent itemsets sinh ra các luật kết hợp mạnh (các luật kết hợp thỏa mãn 2 tham số min_sup và min_conf)
Bước 3: Lặp lại từ bước 2 cho đến khi không tìm thấy frequent itemsets
Bước 4: Với mỗi frequent itemset I, sinh tất cả các tập con s không rỗng của I
Bước 5: Với mỗi tập con s không rỗng của I, sinh ra các luật s => (I-s) nếu độ tin cậy
(Confidence) của nó >= min_conf
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ẽ scan database 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 itemset thì độ phức tạp của thuật toán Apriori là
O(n*L) trong đó L là kích thước CSDL còn n là độ dài cần đạt được của các
Trang 122.1 Ý tưởng thuật toán
Trong tình huống mà số lượng các mẫu nhiều, mẫu dài hoặc min_sup và min_conf thấp, các thuật toán Apriori 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 1-itemset thì thuật toán Apriori sẽ cần sinh ra hơn 107 các ứng cử 2-itemset và kiểm tra sự xuất hiện của chúng Hơn nữa, để khám phá được một frequent itemset kích thước L, thuật toán phải kiểm tra (2L - 2 ) các frequent itemset tiềm năng Ví dụ
L = 100, chẳng hạn là {a1,a2, ,a100}, nó phải sinh ra tổng số 2100 1030 các ứng
cử (đây chính là số tập con của tập có 100 phần tử)
Duyệt CSDL quá nhiều lần để 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 frequent itemset dài nhấ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 Ngoài ra chi phí để lưu trữ cũng là rất lớ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ểmnêu trên Thuật toán tìm các frequent itemset 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, cây mẫu phổ biến (frequent pattern tree hoặc gọi tắt là tree) dùng để nén dữ liệu thích hợp Chỉ có các l-item ở trong cây và các nút của
FP-câ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ệu nhỏ 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ác mục phổ biến
Trang 13cùng xuất hiện với mẫu hậu tố (suffix pattern), xây dựng condition 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 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 được thực hiện theo cách phát triển(growth) các đoạn mẫu để tránh chi phí cho việc sinh 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ọn khô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
Bước 3: Duyệt CSDL lần thứ 2, với mỗi giao dịch T, giữ lại các item có trong danh sách L, sắp xếp các item theo thứ tự giảm dần theo độ hỗ trợ.
Bước 4: Xây dựng cây FP-tree bằng cách đưa từng giao dịch T vào trong cây.
Phần tiếp theo thuật toán khai phá tìm các frenquent itemset 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:
Root của cây
Header_table: một bảng băm lưu lại các node cuối cùng trên mỗi đường đi
từ root đến nút có tên bằng item
Mỗi nút của cây bao gồm: