MỞ ĐẦU Khai thác luật kết hợp được giới thiệu từ năm 1993, là một tiến trình quantrọng trong khai thác dữ liệu, mục đích là tìm ra các luật tiềm ẩn trong CSDL.. 5 Data Mining khai phá
Trang 1Bài thu hoạch môn Công nghệ tri thức
MỤC LỤC
MỤC LỤC 1
MỞ ĐẦU 2
CHƯƠNG I 3
TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU 3
3
I KHAI PHÁ TRI THỨC: 3 i Khái niệm khai phá tri thức: 3
ii Quá trình khám phá tri thức: 3
II KHAI PHÁ DỮ LIỆU – DATA MINING: 4 1 Khái niệm khai phá dữ liệu: 4
ii Các tác vụ khai phá dữ liệu: 5
iii Các nhiệm vụ chính của khai phá dữ liệu: 5
iv Các kỹ thuật khai phá dữ liệu: 6
v Ý nghĩa và vai trò của khai phá dữ liệu: 7
vi Ứng dụng của khai phá dữ liệu 7
CHƯƠNG II 9
LUẬT KẾT HỢP 9
9
I LUẬT KẾT HỢP KHẲNG ĐỊNH (LUẬT KẾT HỢP DƯƠNG): 9 1 Định nghĩa: 9
ii Ý tưởng về tìm luật kết hợp: 10
iii Thuật toán Apriori 10
II LUẬT KẾT HỢP PHỦ ĐỊNH (LUẬT KẾT HỢP ÂM) 13 1 Định nghĩa: 13
ii Thuật toán: 14
III THUẬT TOÁN CẢI TIẾN 15 1 Bài toán: 15
ii Thuật toán 16
CHƯƠNG III 19
CÀI ĐẶT ỨNG DỤNG 19
19
I MÔI TRƯỜNG CÀI ĐẶT ỨNG DỤNG: 19 II MÔ TẢ CHƯƠNG TRÌNH 19 TÀI LIỆU THAM KHẢO 22
Trang 2MỞ ĐẦU
Khai thác luật kết hợp được giới thiệu từ năm 1993, là một tiến trình quantrọng trong khai thác dữ liệu, mục đích là tìm ra các luật tiềm ẩn trong CSDL Bàitoán khai thác luật kết hợp nhận được rất nhiều sự quan tâm của nhiều nhà khoahọc
Trong nghiên cứu khai mỏ dữ liệu, khai phá luật kết hợp là một trongnhững chủ đề nghiên cứu quan trọng nhất Hầu hết các thuật toán khai phá luật kếthợp tập trung vào việc tìm kiếm các luật kết hợp khẳng định (hay còn gọi là luậtkết hợp dương) Nhiều đề tài nghiên cứu trong khai mỏ dữ liệu cho thấy rằng cácluật kết hợp phủ định (hay còn gọi là luật kết hợp âm) cũng quan trọng như luậtkết hợp dương
Các luật kết hợp phủ định có thể giúp người dùng nhanh chóng quyết địnhcác mục (items) quan trọng thay vì phải kiểm tra toàn bộ các giao dịch(transaction) Ví dụ, trong sinh học, chúng ta có thể tìm ra các mối quan hệ phủđịnh như nếu protein A xuất hiện thì sẽ không xuất hiện protein B và C Từ mốiquan hệ này, giúp các nhà khoa học nghiên cứu không mất quá nhiều thời gian đểtìm ra một phương thuốc mới Nếu theo phương pháp truyền thống, để tìm ra cácmối quan hệ này có thể tiêu tốn nhiều thời gian và tạo ra nhiều các luật thừa Vìvậy, một thuật toán hiệu quả để tìm ra các luật kết hợp phủ định là khá hữu ích
Luật kết hợp dương và luật kết hợp âm rất quan trọng trong việc khai thácnhững thông tin hữu ích bị ẩn chứa trong kho dữ liệu khổng lồ Đặc biệt, luật kếthợp phủ định có thể tương quan loại trừ lẫn nhau giữa các mặt hàng (items) Mặc
dù đã có rất nhiều nghiên cứu, song vẫn còn tồn tại một số thách thức trong việckhai thác luật kết hợp dương và luật kết hợp âm để giải quyết vấn đề “khó khăntrong việc xác định các tập phần tử thường xuyên”, “làm thế nào để xóa các mâuthuẫn giữa luật kết hợp âm và luật kết hợp dương” Trong bài báo cáo này, chúngtôi tập trung vào một số thuật toán hỗ trợ cho việc khai mỏ các luật kết hợp dương
và luật kết hợp âm
Trang 3Chương I TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU
I Khai phá tri thức:
i Khái niệm khai phá tri thức:
- Khám phá tri thức là tìm ra những tri thức tiềm ẩn, những tri thức mới(không phải là những tri thức kinh điển, kinh nghiệm,…)
ii Quá trình khám phá tri thức:
Hình 1: Quá trình khám phá tri thức
- Quá trình khám phá tri thức là một chuỗi lặp gồm các bước:
(1) Data Cleaning (làm sạch dữ liệu): lọai bỏ nhiễu và các dữ liệu khôngcần thiết
(2) Data Integration (tích hợp dữ liệu): quá trình hợp nhất dữ liệu thànhnhững kho dữ liệu (data warehouses & data marts) sau khi đã làm sạch
và tiền xử lý (data cleaning & preprocessing)
Trang 4(3) Data selection (chọn lựa dữ liệu): chọn lựa dữ liệu từ những kho dữliệu và sau đó chuyển đổi về dạng thích hợp cho quá trình khai thác trithức quá trình này bao gồm cả việc xử lý với dữ liệu nhiễu (noisydata), dữ liệu không đầy đủ (incomplete data),…
(4) Data Transformation (chuyển đổi dữ liệu): các dữ liệu được chuyểnđổi sang các dạng phù hợp cho quá trình xử lý
(5) Data Mining (khai phá dữ liệu): là một trong các bước quan trọngnhất, trong đó sử dụng những phương pháp thông minh để chắc lọc ranhững mẫu dữ liệu
(6) Pattern Evaluation (đánh giá mẫu): quá trình đánh giá các kết quả tìmđược thông qua các độ đo nào đó
(7) Knowledge presentation (biểu diễn tri thức): quá trình này sử dụng các
kỹ thuật để biểu diễn và thể hiện trực quan cho người dùng
- Quá trình khám phá tri thức được thực thi trên các đối tượng:
o Data sources (các nguồn dữ liệu).
o Data warehouse (kho dữ liệu).
o Task-relevant data (dữ liệu cụ thể sẽ được khai phá).
o Patterns (mẫu kết quả từ khai phá dữ liệu).
o Knowledge (tri thức đạt được).
1 Khái niệm khai phá dữ liệu:
- Khai phá dữ liệu là một tập hợp các kỹ thuật được sử dụng để tự động khaithác và tìm ra các mối quan hệ lẫn nhau của dữ liệu trong một tập hợp dữ liệukhổng lồ và phức tạp, đồng thời cũng tìm ra các mẫu tiềm ẩn trong tập dữ liệu đó
Dữ liệu được lưu trữ có thể là:
o Các tập tin truyền thống (flat files)
o Các cơ sở dữ liệu quan hệ (relational databases) hay quan hệ đối tượng(object relational databases)
o Các cơ sở dữ liệu giao tác (transactional databases) hay kho dữ liệu(data warehouses)
o Các cơ sở dữ liệu hướng ứng dụng: cơ sở dữ liệu không gian (spatialdatabases), cơ sở dữ liệu thời gian (temporal databases), cơ sở dữ liệukhông thời gian (spatio-temporal databases), cơ sở dữ liệu chuỗi thờigian (time series databases), cơ sở dữ liệu văn bản (text databases), cơ
sở dữ liệu đa phương tiện (multimedia databases),…
o Các kho thông tin: world wide web,…
Trang 5ii Các tác vụ khai phá dữ liệu:
- Năm thành tố cơ bản để đặc tả một tác vụ khai phá dữ liệu:
o Dữ liệu cụ thể sẽ được khai phá (task-relevant data)
• Phần dữ liệu từ các dữ liệu nguồn được quan tâm
• Tương ứng với các thuộc tính hay chiều dữ liệu được quan tâm
• Bao gồm: tên kho dữ liệu/cơ sở dữ liệu, các bảng dữ liệu hay cáckhối dữ liệu, các điều kiện chọn dữ liệu, các thuộc tính hay chiều dữ liệuđược tâm, các tiêu chí gom nhóm dữ liệu
o Bao gồm: các phân cấp ý niệm, niềm Lọai tri thức sẽ đạt được (kind ofknowledge)
• Bao gồm: đặc trưng hóa dữ liệu, phân biệt hóa dữ liệu, mô hình phântích kết hợp hay tương quan, mô hình phân lớp, mô hình dự đoán, mô hìnhgom cụm, mô hình phân tích phần tử biên, mô hình phân tích tiến hóa
• Tương ứng với tác vụ khai phá dữ liệu cụ thể sẽ được thực thi
o Tri thức nền (background knowledge)
• Tương ứng với lĩnh vực cụ thể sẽ được khai phá
• Hướng dẫn quá trình khám phá tri thức
• Hỗ trợ khai phá dữ liệu ở nhiều mức trừu tượng khác nhau
• Đánh giá các mẫu được tìm thấy
• tin của người sử dụng về các mối quan hệ của dữ liệu
o Các độ đo (interestingness measures)
• Thường đi kèm với các ngưỡng giá trị (threshold)
• Dẫn đường cho quá trình khai phá hoặc đánh giá các mẫu được tìmthấy
• Tương ứng với loại tri thức sẽ đạt được và do đó, tương ứng với tác
vụ khai phá dữ liệu cụ thể sẽ được thực thi
• Kiểm tra: tính đơn giản (simplicity), tính chắc chắn (certainty), tínhhữu dụng (utility), tính mới (novelty)
o Các kỹ thuật biểu diễn tri thức/trực quan hóa mẫu (pattern visualizationand knowledge presentation)
• Xác định dạng các mẫu/tri thức được tìm thấy để thể hiện đến người
Trang 6Hình 2: Nhiệm vụ chính của khai phá dữ liệu
o Xác định các mẫu mô tả DL mà con người có thể hiểu được
• Gôm cụm: tìm ra một tập xác định các nhóm hay các cụm để mô tả
dữ liệu
• Tóm tắt: phát hiện ra một mô tả tóm tắt cho một tập con dữ liệu
• Mô hình hóa phụ thuộc: phát hiện ra một mô hình mà mô tả phụthuộc quan trọng nhất giữa các biến
iv Các kỹ thuật khai phá dữ liệu:
- Khai thác dữ liệu lấy ý tưởng từ các lĩnh vực như:
o Các hệ thống phân tích dữ liệu thống kê (statistical data analysissystems)
o Các hệ thống truy hồi thông tin (information retrieval systems)
Trang 7o Các hệ sơ sở dữ liệu miễn dịch (deductive database systems).
o Các hệ cơ sở dữ liệu (database systems)
- Các kỹ thuật truyền thống có thể không phù hợp do:
o Kích thước lớn của dữ liệu
o Số chiều dữ liệu lớn
o Bản chất dữ liệu không đồng nhất
v Ý nghĩa và vai trò của khai phá dữ liệu:
- Công nghệ hiện đại trong lĩnh vực quãn lý thông tin hiện diện khắp nơi(ubiquitous) và có tính ẩn trong nhiều khía cạnh của đời sống hằng ngày: làm việc,mua sắm, tìm kiếm thông tin, nghỉ ngơi,…
- Được áp dụng trong nhiều ứng dụng thuộc nhiều lĩnh vực khác nhau
- Hỗ trợ các nhà khoa học, giáo dục học, kinh tế học, doanh nghiệp, kháchhàng,…
vi Ứng dụng của khai phá dữ liệu
a Phân tích và quản lý thị trường
- Nguồn của dữ liệu từ đâu?
o Các giao dịch sử dụng thẻ tín dụng, các thẻ khách hang thường xuyên,các phiếu giảm giá, các cuộc gọi phàn nàn của khách hang
- Quảng cáo cá nhân (Target marketing)
o Tìm ra (xác định) những nhóm khách hang “mẫu” có cùng các đặc điểm
về sở thích, mức thu nhập, thói quen chi tiêu, …
o Xác định các mẫu (kiểu) chi trả / mua bán thường xuyên
- Phân tích thị trường (Cross-maket analysis)
o Tìm ra các mối lien kết / tương quan giữa các sản phẩm bán ra (hoặcgiữa các đợt bán hàng), để đưa ra các dự đoán
- Lập hồ sơ khách hàng (Customer profiling)
o Những kiểu khách hàng nào mua những mặt hàng nào (phân nhóm hoặcphân loại)
- Phân tích yêu cầu khách hàng
o Xác định các sản phẩm phù hợp nhất cho các nhóm khách hang khácnhau
o Dự đoán những yếu tố nào sẽ thu hút được các khách hàng mới
- Cung cấp những thông tin tóm tắt
o Các báo cáo tóm tắt theo nhiều chiều (yếu tố)
o Các thông tin thống kê (xu hướng, dịch chuyển)
b Quản lý rủi ro:
Trang 8- Lập kế họach tài chính và đáng giá tài sản
o Phân tích và dự đoán luồng tiền mặt
o Phân tích các tuyên bố tài chính của doanh nghiệp để đánh giá tài sản
o Phân tích các chuỗi dữ liệu tài chính
- Lập kế họach sử dụng tài nguyên
o Tóm tắt và so sánh các tài nguyên và sự khai thác (sử dụng)
- Cạnh tranh trong kinh doanh
o Theo dõi các đối thủ cạnh tranh trong kinh doanh và các xu hướng củathị trường
o Nhóm các khách hang theo từng lớp, và định giá cho từng lớp
o Xây dựng chiến lược giá trong một thị trường cạnh tranh cao
c Phát hiện gian lận:
- Các phương pháp: phân cụm và xây dựng mô hình dự đoán gian lận, phântích ngoại lai (outlier)
- Các ứng dụng: Chăm sóc sức khỏe, bán lẻ, các dịch vụ sử dụng thẻ tíndụng, viễn thông
o Bảo hiểm ô tô: “kịch bản” một chuỗi các va chạm
o Rửa tiền: các giao dịch chuyển tiền đáng ngờ
o Bảo hiểm y tế: sự móc nối giữa bệnh nhân và bác sỹ, các xét nghiệmkhông cần thiết
o Viễn thông: các kiểu cuộc gọi bất thường
o Công nghiệp bán lẻ: phát hiện các người làm thuê gian lận
- Xử lý với dữ liệu có số chiều (số thuộc tính) lớn
- Xử lý với dữ liệu chứa nhiễu (lỗi), không chắc chắn, không hoàn chỉnh
- Đưa (tích hợp) vào quá trình khai phá dữ liệu các ràng buộc, tri thứcchuyên gia, tri thức nền tảng (background knowledge)
- Đánh giá mẫu và tích hợp tri thức
- Khai phá các kiểu dữ liệu rất khác nhau (dữ liệu tin sinh, web, mạng thôngtin,…)
- Tích hợp khai phá dữ liệu vào các thiết bị hoạt động
- Bảo đảm tính an ninh, toàn vẹn, riêng tư trong khai phá dữ liệu
Trang 9Chương II LUẬT KẾT HỢP
1 Định nghĩa:
- Gọi I={i1 , i 2 , …, i n } là tập các items.
- D là tập giao tác, trong đó mỗi giao tác Ti là tập các item T i⊆ I.
- Ta gọi một giao tác T chứa X nếu X ⊆ T (Với X ⊆ I)
- Mỗi giao tác Ti có chỉ danh là TID.
- Luật kết hợp dương là một mối quan hệ điều kiện giữa 2 tập các hạng mục
dữ liệu X và Y theo dạng sau : Nếu X thì Y, và ký hiệu là X=>Y.
phải của luật
Card(D) : Tập tất cả các dòng trên CSDL.
o Độ tin cậy (Confidence): Thể hiện độ chính xác, tính đúng đắn hay khả
năng tin cậy của luật trong phạm vi ảnh hưởng của luật (xác định bởi độ đosupport)
Luật X=>Y có độ tin cậy là c (confidence) nếu có c% số giao tác trong D chứa X ∪ Y so với tổng số giao tác có trong D chỉ chứa X Khi đó ta có:
Confidence(X=>Y) = Card(X ∪ Y) / Card(X)% = c%
phải của luật
Card(X): Tập tất cả các dòng chứa vế trái của luật trên CSDL
Trang 10ii Ý tưởng về tìm luật kết hợp:
- Rất tự nhiên, khi tìm kiếm các luật kết hợp trên cơ sở dữ liệu, người tathường đặt ra một giới hạn về độ support và confidence của các luật tìm được gọi
là minsup và minconf Chỉ những luật nào có độ support lớn hơn minsup và độ
confidence lớn hơn minconf mới được quan tâm Như vậy bài toán tìm luật kếthợp dương sẽ được phát biểu là :
Tìm tất cả các luật R : X → Y sao cho support(R) > minsup và confidence(R)
Với mọi A là tập con của Si & A khác rỗng
if (conf (A ⇒ (Si - A)) >= minconf)
thêm A vào X
return X
iii Thuật toán Apriori
Ý tưởng:
- 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ếntrướ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 baogồm trong giao dịch Sau đó các tập ứng cử này được tìm trong giao dịch đã đượcánh xạ trước đó Trong trường hợp tìm thấy biến đếm được tă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ập mụ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ục cũng được giữ
ở trật tự từ điển Ta sử dụng các ký hiệu sau:
Trang 11o Lk: Tập các tập k-mục phổ biến (với độ hỗ trợ cực tiểu minsup nào đó)
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)
// sinh ứng cử viên mới (**)
Void apriori_gen(L k-1 , minsup )
Trang 124 }
Giải thích:
- Lần duyệt đầu tiên, sẽ tính số lần xuất hiện của mỗi mục để xác định các
o Tập phổ biến L k-1 đã tìm thấy ở lần duyệt thứ k-1 được sử dụng để sinh
ra các tập ứng cử viên C k bằng việc sử dụng hàm Apriori_gen 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:
o Trong giai đoạn 2 (giai đoạn sửa, tỉa): xoá bỏ các tập c ∈ Ck 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
- 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 được chuyể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 đó