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

Nghiên cứu luật kết hợp và ứng dụng trong bài toán xây dựng hệ hỗ trợ học sinh trung học phổ thông

76 12 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 76
Dung lượng 1,47 MB

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

Nội dung

Để lấy thông tin có tính “tri thức” trong khối dữ liệu khổng lồ này, người ta đã tìm ra những kỹ thuật có khả năng hợp nhất các dữ liệu từ các hệ thống giao dịch khác nhau, chuyển đổi th

Trang 1

LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH

Thái Nguyên - 2015

Trang 2

LỜI CẢM ƠN

Đầu tiên cho tôi gửi lời cảm ơn chân thành và sâu sắc nhất đến thầy

PGS.TS Lê Bá Dũng - Viện CNTT - Viện KH và CN Việt nam đã tận tình hướng dẫn, chỉ bảo cho tôi trong suốt quá trình làm luận văn

Tôi cũng gửi lời cảm ơn đến các thầy cô trường Đại học Công nghệ

thông tin và Truyền thông – Đại học Thái Nguyên, các thầy cô Viện ÂNCông nghệ thông tin đã truyền đạt những kiến thức và giúp đỡ tôi trong suốt quá trình học của mình

Tôi cũng xin gửi lời cảm ơn tới các đồng nghiệp, gia đình và bạn bè

những người đã động viên tạo mọi điều kiện giúp đỡ tôi trong suốt hai năm học.

ĐẠI HỌC THÁI NGUYÊN

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

TRẦN NAM NGỌC

NGHIÊN CỨU LUẬT KẾT HỢP VÀ ỨNG DỤNG TRONG BÀI TOÁN XÂY DỰNG HỆ HỖ TRỢ HỌC SINH TRUNG HỌC PHỔ THÔNG

Chuyên ngành: Khoa học máy tính

Mã số : 60 48 01 01

LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH

NGƯỜI HƯỚNG DẪN KHOA HỌC: TS ĐẶNG THỊ THU HIỀN

Thái Nguyên - 2015

Trang 3

MỤC LỤC

DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT 4

DANH MỤC CÁC BẢNG 5

MỞ ĐẦU 1

CHƯƠNG I TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU 2

1.1 Tổ chức và khai thác cơ sở dữ liệu truyền thống 2

1.2 Tổng quan về kỹ thuật phát hiện tri thức và khai phá dữ liệu 3

1.2.1 Qui trình khai phá dữ liệu và phát hiện tri thức 4

1.2.2 Các lĩnh vực liên quan đến khai phá dữ liệu và phát hiện tri thức 5

1.3 Các nhiệm vụ trong khai phá dữ liệu và phát hiện tri thức 6

CHƯƠNG II: MỘT SỐ KỸ THUẬT KHAI PHÁ LUẬT KẾT HỢP 15

2.1 Lý thuyết về luật kết hợp 15

2.2 Thuật toán kinh điển 16

2.2.1 Thuật toán Apriori 16

2.2.2 Ý tưởng 16

2.2.3 Thuật toán 16

2.3 Một số thuật toán luật kết hợp 19

2.3.1 Thuật toán Fp_Growth 19

2.3.2 Thuật toán Fp_Tree 20

2.3.3 Thuật toán Fast Algorithm for Discovering Frequent Itemsets (FIT) 21

2.3.4 Thuật toán NSFI ALGORITHM 22

2.3.5 Thuật toán NSFI ALGORITH 25

2.4 Thuật toán FSM 26

2.4.1 Cơ sở lý thuyết của thuật toán FSM 27

2.4.2 Nội dung cơ bản của thuật toán FSM 27

2.4.3 Một số khái niệm của thuật toán 28

2.4.4 Nội dung bài toán: 31

CHƯƠNG III: ÁP DỤNG KHAI PHÁ TRÊN CƠ SỞ DỮ LIỆU BẢNG ĐIỂM CỦA HỌC SINH THPT TÂN LẬP - ĐAN PHƯỢNG 34

3.1 Phát biểu bài toán: 34

3.2 Lựa chọn phương pháp 35

3.3 Cài đặt và thử nghiệm 35

3.3.1 Môi trường cài đặt và thử nghiệm 35

3.3.2 Cài đặt thuật toán tìm luật kết hợp 36

3.3.3 Một số giao diện chương trình 37

3.4 Đánh giá: 38

TÀI LIỆU THAM KHẢO 47

PHỤ LỤC 49

Trang 4

Tác giả xin chân thành cảm ơn các thầy giáo, cô giáo Trường Đại học Công nghệ thông tin và Truyền thông Thái Nguyên và các thầy Viện Công nghệ thông tin – Viện khoa học Công nghệ Việt Nam, đã tận tâm giảng dạy các kiến thức trong hai năm học qua cùng với sự cố gắng hết mực của bản thân

Đặc biệt tôi xin bày tỏ sự biết ơn sâu sắc đến thầy giáo Tiến sĩ Đặng Thị Thu Hiền, PGS TS Ngô Quốc Tạo người đã tận tình giảng dạy và hướng dẫn tôi thực hiện luận văn này

Tác giả cũng xin chân thành cảm ơn các thầy cô giáo trường THPT Tân Lập, các bạn đồng nghiệp, các bạn trong lớp cao học CK12H đã tạo điều kiện, giúp đỡ tôi trong suốt thời gian qua

Rất mong nhận được sự góp ý của các thầy, cô, bạn bè, đồng nghiệp để luận văn có thể phát triển và hoàn thiện hơn

Trang 5

LỜI CAM ĐOAN

Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi

Các số liệu, kết quả nêu trong luận văn và chƣa từng đƣợc ai công bố

trong bất kỳ công trình nào khác

Thái Nguyên, tháng 12 năm 2015

TÁC GIẢ

Trần Nam Ngọc

Trang 6

DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT

Processing

Phân tích trực tuyến

MOLAP Multidimensional OLAP Phân tích đa chiều trực tuyến

TID Transaction Indentification Định danh giao tác

SQL Structured Query Language Ngôn ngữ truy vấn có cấu trúc SQO Semantic Query Optimization Tối ưu truy vấn ngữ nghĩa

DBSCAN Density Based Spatial

Clustering of Application with Noise

Thuật toán phân lớp dựa vào vị trí địa phương

Trang 7

DENCLUE DENsity Based CLUstEring Thuật toán phân lớp cơ bản (tổng

quát)

DHP Direct Hashing and Pruning Bảng băm trực tiếp và sự cắt tỉa PHP Perfect Hashing and Pruning Bảng băm lý tưởng và sự cắt tỉa

Itemset

DANH MỤC CÁC BẢNG

Bảng 1.1 So sánh các nhiệm vụ phát hiện tri thức 12

Bảng 2.1 Cơ sở dữ liệu 29

Bảng 2.2 Giá trị lmv và cổ phần của các mục dữ liệu trong CSDL bảng 2.1 30

Bảng 2.3 Các tập mục cổ phần cao của CSDL bảng 2.1 31

Bảng 2.4 CSDL minh họa ngữ nghĩa của tập mục cổ phần cao 33

Trang 8

DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ

Hình 1.1 Quy trình phát hiện tri thức 4

Hình 2.1 CSDL giao dịch 17

Hình 2.2 Minh họa các bước khai phá 18

Hình 2.3 Kết quả tìm luật kết hợp 18

Hình 3.1 Ví dụ về dữ liệu đầu vào cho thực nghiệm 37

Hình 3.2 Giao diện chương trình thực hiện 37

Hình 3.3 Kết quả 38

Trang 9

MỞ ĐẦU

Ngày nay, thông tin được coi là tài sản quan trọng của các tổ chức, doanh nghiệp và các cá nhân Cá nhân hoặc tổ chức nào thu thập và hiểu được thông tin, và hành động kịp thời dựa trên các thông tin đó sẽ đạt được kết quả tốt Chính vì lý do đó, việc tạo ra thông tin, tổ chức lưu trữ và khai thác thông tin 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 các hoạt động như: sản xuất kinh doanh, thương mại, quản lý đã 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ương pháp thông thường như: 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 hữu í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ết hợp là một nội dung quan trọng trong khai phá dữ liệu

Luận văn tìm hiểu về luật kết hợp và ứng dụng thử nghiệm khai phá cơ sở

dữ liệu bảng điểm học tập của học sinh trường THPT Tân Lập – Đan Phương nhằm hỗ trợ cho công tác quản lý, định hướng học tập cho học sinh phổ thông Nhằm hỗ trợ học sinh chọn trường đại học, cao đẳng phù hợp với khả năng của bản thân hoặc đi học trường nghề chuyên nghiệp Giúp cho học sinh tập chung vào đúng khối mà mình có khả năng cũng như có thế mạnh Đồng thời cũng giúp nhà trường và giáo viên thấy được điểm mạnh, điểm chưa mạnh về chuyên môn của mình Đưa ra những hướng đi đúng nhằm xây dựng nhà trường thành nhà trường có chuyên môn tốt, môi trường thân thiện

Trang 10

CHƯƠNG I TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU

1.1 Tổ chức và khai thác cơ sở dữ liệu truyền thống

Việc dùng các phương tiện tin học để tổ chức và khai thác cơ sở dữ liệu (CSDL) đã được phát triển từ những năm 60 của thế kỉ trước Từ đó cho đến nay, rất nhiều CSDL đã được tổ chức, phát triển và khai thác ở mọi quy mô và các lĩnh vực hoạt động của con người và xã hội Cho đến nay, số lượng CSDL

đã trở nên khổng lồ bao gồm các CSDL cực lớn cỡ gigabytes và thậm chí terabytes lưu trữ các dữ liệu kinh doanh ví dụ như dữ liệu thông tin khác hàng,

dữ liệu bán hàng, dữ liệu các tài khoản, Nhiều hệ quản trị CSDL mạnh với các công cụ phong phú và thuận tiện đã giúp con người khai thác có hiệu quả nguồn tài nguyên dữ liệu Mô hình CSDL quan hệ và ngôn ngữ vấn đáp chuẩn (SQL) đã có vai trò hết sức quan trọng trong việc tổ chức và khai thác CSDL Tuy nhiên bên cạnh chức năng khai thác dữ liệu có tính chất tác nghiệp,

sự thành công trong công việc không còn là năng suất của các hệ thống thông tin nữa mà là tính linh hoạt và sẵn sàng đáp ứng những yêu cầu trong thực tế, CSDL cần đem lại những “tri thức” hơn là chính những dữ liệu trong đó Lúc này, các mô hình CSDL truyền thống và ngôn ngữ SQL đã cho thấy không có khả năng thực hiện công việc này Để lấy thông tin có tính “tri thức” trong khối dữ liệu khổng lồ này, người ta đã tìm ra những kỹ thuật có khả năng hợp nhất các dữ liệu từ các hệ thống giao dịch khác nhau, chuyển đổi thành một tập hợp các CSDL ổn định, có chất lượng được sử dụng chỉ cho riêng một vài mục đích nào đó Các kỹ thuật đó gọi chung là kỹ thuật tạo kho dữ liệu (data warehousing) và môi trường các dữ liệu có được gọi là các kho dữ liệu (data warehouse)

Đồng thời, Công nghệ khai phá dữ liệu (data mining) ra đời đáp ứng những đòi hỏi trong khoa học cũng như trong hoạt động thực tiễn Đây chính

là một ứng dụng chính để khai phá kho dữ liệu nhằm phát hiện tri thức (Knowledge Discovery) phục vụ công tác quản lý, kinh doanh,…

Trang 11

1.2 Tổng quan về kỹ thuật phát hiện tri thức và khai phá dữ liệu

Chúng ta có thể xem tri thức như là các thông tin tích hợp, bao gồm các

sự kiện và các mối quan hệ giữa chúng Các mối quan hệ này có thể được hiểu

ra, có thể được phát hiện, hoặc có thể được học Nói cách khác, tri thức có thể được coi là dữ liệu có độ trừu tượng và tổ chức cao

Phát hiện tri thức trong các cơ sở dữ liệu là một qui trình nhận biết các mẫu hoặc các mô hình trong dữ liệu với các tính năng: hợp thức, mới, khả ích,

và có thể hiểu được Còn khai phá dữ liệu là một bước trong qui trình phát hiện tri thức gồm có các thuật toán khai thác dữ liệu chuyên dùng dưới một số qui định về hiệu quả tính toán chấp nhận được để tìm ra các mẫu hoặc các mô hình trong dữ liệu Nói một cách khác, mục đích của phát hiện tri thức và khai phá dữ liệu chính là tìm ra các mẫu và/hoặc các mô hình đang tồn tại trong các

cơ sở dữ liệu nhưng vẫn còn bị che khuất bởi hàng núi dữ liệu

Định nghĩa: Phát hiện tri thức và khai phá dữ liệu (KDD: Knowledge Discovery and Data Mining) là quá trình không tầm thường nhận ra những mẫu có giá trị, mới, hữu ích tiềm năng và hiểu được trong dữ liệu [7]

Còn các nhà thống kê thì xem Khai phá dữ liệu như là một qui trình phân tích được thiết kế để thăm dò một lượng cực lớn các dữ liệu nhằm phát hiện ra các mẫu thích hợp và/hoặc các mối quan hệ mang tính hệ thống giữa các biến

và sau đó sẽ hợp thức hoá các kết quả tìm được bằng cách áp dụng các mẫu đã phát hiện được cho các tập con mới của dữ liệu Qui trình này bao gồm ba giai đoạn cơ bản: thăm dò, xây dựng mô hình hoặc định nghĩa mẫu, hợp thức/kiểm chứng

Trang 12

1.2.1 Qui trình khai phá dữ liệu và phát hiện tri thức

Qui trình phát hiện tri thức được mô tả tóm tắt trên Hình 1:

Hình 1.1 Quy trình phát hiện tri thức

Bước thứ nhất: Hình thành, xác định và định nghĩa bài toán Là tìm hiể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ần phả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 Là 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, xử lý việc thiếu dữ liệu, biến đổi dữ liệu và rút gọn dữ liệu nếu cần thiết, bước này thường chiếm nhiều thời gian nhất trong toàn bộ qui trình phát hiện tri thức

Bước thứ ba: Khai phá dữ liệu, rút ra các tri thức Là trích ra các mẫu và/hoặc 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?

Bước thứ tư: Sử dụng các tri thức phát hiện được Là 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ể 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

Trang 13

Tóm lại: KDD là một quá trình chiế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

1.2.2 Các lĩnh vực liên quan đến khai phá dữ liệu và phát hiện tri thức

Khai phá dữ liệu và phát hiện tri thức liên quan đến nhiều ngành, nhiều lĩnh vực: thống kê, trí tuệ nhân tạo, cơ sở dữ liệu, thuật toán học, tính toán song song và tốc độ cao, thu thập tri thức cho các hệ chuyên gia, quan sát dữ liệu Đặc biệt Phát hiện tri thức và khai phá dữ liệu rất gần gũi với lĩnh vực thống kê,

sử dụng các phương pháp thống kê để mô hình dữ liệu và phát hiện các mẫu, luật Kho dữ liệu (Data Warehousing) và các công cụ phân tích trực tuyến (OLAP) cũng liên quan rất chặt chẽ với Phát hiện tri thức và khai phá dữ liệu Khai phá dữ liệu có nhiều ứng dụng trong thực tế Một số ứng dụng điển hình như:

- Bảo hiểm, tài chính và thị trường chứng khoán: Phân tích tình hình tài chính và dự báo giá của các loại cổ phiếu trong thị trường chứng khoán Danh mục vốn và giá, lãi suất, dữ liệu thẻ tín dụng, phát hiện gian lận,

- Điều trị y học và chăm sóc y tế: Một số thông tin về chuẩn đoán bệnh lưu trong các hệ thống quản lý bệnh viện Phân tích mối liên hệ giữa các triệu chứng bệnh, chuẩn đoán và phương pháp điều trị (chế độ dinh dưỡng, thuốc, )

- Text mining và Web mining: Phân lớp văn bản và các trang Web, tóm tắt văn bản,

- Lĩnh vực khoa học: Quan sát thiên văn, dữ liệu gene, dữ liệu sinh vật học, tìm kiếm, so sánh các hệ gene và thông tin di truyền, mối liên hệ gene và một số bệnh di truyền,

- Mạng viễn thông: Phân tích các cuộc gọi điện thoại và hệ thống giám sát lỗi, sự cố, chất lượng dịch vụ,

Trang 14

1.3 Các nhiệm vụ trong khai phá dữ liệu và phát hiện tri thức

Do sự phát triển mạnh mẽ của các loại hệ thống phát hiện tri thức trong CSDL (KDD) theo yêu cầu nhằm đáp ứng những đòi hỏi trong nhiều lĩnh vực khác nhau, việc phát hiện tri thức cũng trở lên đa dạng hơn Do đó, nhiệm vụ của phát hiện tri thức trong CSDL cũng trở lên phong phú và có thể phát hiện rất nhiều kiểu tri thức khác nhau Một trong các bước đầu tiên trong quá trình phát hiện tri thức trong CSDL là quyết định xem loại kiến thức nào mà thuật toán phát hiện tri thức trong CSDL cần phải kết xuất từ dữ liệu Do đó, vệc phân loại và so sánh các kiểu nhiệm vụ phát hiện tri thức trong CSDL là vấn

đề đáng quan tâm nhằm tạo ra một hệ thống phát hiện tri thức trong CSDL hữu ích Ta sẽ xem xét một số kiểu nhiệm vụ phát hiện tri thức sau:

Phát hiện các luật tối ưu truy vấn ngữ nghĩa (Sematics Query Optimization - SQO Rules)

Các luật tối ưu truy vấn CSDL thông thường thực hiện một phép biến đổi

cú pháp, hay sắp xếp lại thứ tự của các phép toán quan hệ trong một truy vấn

và sản sinh ra một truy vấn hiệu quả hơn Các phép biến đổi này thường dựa trên lý thuyết đại số quan hệ Các luật được biến đổi trả lại cùng một câu trả lời như câu truy vấn ban đầu ở bất kỳ trạng thái nào của CSDL Ngược lại, luật tối

ưu truy vấn ngữ nghĩa biến đổi các câu truy vấn ban đầu thành một truy vấn mới bằng cách thêm vào hoặc xoá đi các mối liên kết bằng việc sử dụng các tri thức CSDL ngữ nghĩa bao gồm các ràng buộc về tính toàn vẹn và sự phụ thuộc hàm để sản sinh ra các câu truy vấn hiệu quả hơn Như vậy câu truy vấn đã biến đổi cũng trả lại cùng câu trả lời giống như câu truy vấn ban đầu trong bất

kỳ trạng thái nào của CSDL thoả mãn kiến thức về ngữ nghĩa được sử dụng trong phép biến đổi Các hệ thống phát hiện luật SQO có thể được chia thành

ba lớp:

Trang 15

- Các hệ thống hướng truy vấn (hệ thống báo cáo) trong đó thuật toán phát hiện tri thức trong CSDL nhằm phục vụ các truy vấn CSDL thực của người dùng;

- Các hệ thống hướng dữ liệu (hệ thống tác nghiệp) trong đó thuật toán phát hiện tri thức trong CSDL chủ yếu phục vụ sự phân bổ dữ liệu trong trạng thái hiện thời của CSDL;

- Các hệ thống lai kết hợp các đặc tính của cả hệ thống hướng truy vấn và hướng dữ liệu

Một đặc tính quan trọng của các luật SQO, khác với các kiểu phát hiện tri thức khác, là việc chọn các thuộc tính để tổng hợp một SQO cần phải tính đến chi phí liên quan như dùng phương pháp truy cập nào và sơ đồ chỉ số trong hệ quản trị CSDL Việc này là cần thiết để tiết kiệm thời gian xử lý truy vấn Một thuật toán phát hiện tri thức trong CSDL loại này đòi hỏi phải xem xét tối ưu chi phí

Phát hiện sự phụ thuộc CSDL (Database Dependencies)

Trong mô hình dữ liệu quan hệ, chúng ta đã nghiên cứu quan hệ trong CSDL quan hệ không tính đến quan hệ giữa các thuộc tính Các quan hệ này thường được thể hiện thông qua sự phụ thuộc dữ liệu hoặc ràng buộc toàn vẹn

Ở đây sẽ sử dụng thuật ngữ phụ thuộc CSDL để chỉ sự phụ thuộc dữ liệu kiểu này Sự phụ thuộc CSDL được sử dụng trong thiết kế và duy trì một CSDL Phương pháp phát hiện tự động các sự phụ thuộc CSDL này chính là một kiểu nhiệm vụ của Khai phá dữ liệu

Phát hiện sự sai lệch (Deviation)

Nhiệm vụ này nhằm phát hiện sự sai lệch đáng kể giữa nội dung của tập con dữ liệu thực và nội dung mong đợi Hai mô hình sai lệch hay dùng là mô hình sai lệch theo thời gian và sai lệch nhóm Sai lệch theo thời gian là sự thay

Trang 16

không chờ đợi giữa dữ liệu trong hai tập con dữ liệu, ở đây tính đến cả trường hợp tập con này thuộc trong tập con kia, nghĩa là xác định dữ liệu trong một nhóm con của đối tượng có khác đáng kể so với toàn bộ đối tượng không Theo cách này, các sai sót dữ liệu hay sự sai lệch so với giá trị thông thường được phát hiện

Phát hiện luật kết hợp (Association Rules)

Ta xét một ví dụ: Xét một tập các mặt hàng trong một giỏ mua hàng Vấn

đề đặt ra là tìm những mối liên quan giữa các mặt hàng trong giỏ

Một cách chi tiết hơn, xét một tập các thuộc tính nhị phân với một tập các

bộ, mỗi bộ được gọi là một giỏ Các thuộc tính nhị phân được gọi là các mục hay các mặt hàng trong giỏ mà mỗi mục chỉ nhận một trong hai giá trị đúng hoặc sai tuỳ thuộc vào khách hàng có mua mặt hàng đó trong giao dịch hay không Trên thực tế, loại dữ liệu này rất phổ biến và được gọi là dữ liệu giỏ Chúng thường được thu thập thông qua công nghệ mã số, mã vạch trong các hoạt động kinh doanh siêu thị

Một giao dịch có thể chứa một số khoản mục, tập hợp tất cả các khoản mục

sẽ thuộc vào một không gian T nào đó mà mỗi giao dịch khi đó là một tập con của T Ta cần phát hiện những mối tương quan quan trọng hoặc mối quan hệ, mối kết hợp trong số các khoản mục chứa trong các giao dịch của một dữ liệu nào đó sao cho sự xuất hiện của một số khoả mục nào đó trong giao dịch sẽ kéo theo sự xuất hiện của một số khoản mục khác trong cùng một giao dịch đó

Ta sẽ tìm hiểu luật kết hợp cụ thể hơn ở phần sau

Mô hình hoá sự phụ thuộc (Dependence Modeling)

Nhiệm vụ này liên quan đến việc phát hiện sự phụ thuộc trong số các thuộc tính Những phụ thuộc này thường được biểu thị dưới dạng luật “nếu thì”: “nếu (tiên đề là đúng) thì (kết luận là đúng)” Về nguyên tắc, cả tiên đề và kết luận của luật đều có thể là sự kết hợp logic của các giá trị thuộc tính Trên thực tế,

Trang 17

tiên đề thường là nhóm các giá trị thuộc tính và kết luận chỉ là một giá trị tuộc tính Lưu ý là những luật này không phải hoàn toàn giống với sự phụ thuộc CSDL được nêu ở phần 2.2 Hơn nữa, hệ thống có thể phát hiện các luật với phần kết luận nhiều thuộc tính Điều này khác với luật phân lớp trong đó tất cả các luật cần phải có cùng một thuộc tính do người dùng chỉ ra trong kết luận

Mô hình hoá nhân quả (Causation Modeling)

Nhiệm vụ này liên quan đến việc phát hiện mối quan hệ nhân quả trong thuộc tính Các luật nhân quả cũng là các luật “nếu - thì” giống các luật phụ thuộc, nhưng mạnh hơn Luật phụ thuộc đơn giản chỉ ra một mối tương hỗ giữa tiên đề và kết luận của luật mà không có ý nghĩa nhân quả trong quan hệ này Do đó, cả tiên đề và kết luận có thể quan hệ dưới sự ảnh hưởng của một biến thứ ba, tức là một thuộc tính hoặc có ở trong tiên đề hoặc có ở trong kết luận Luật nhân quả không chỉ chỉ ra mối tương quan giữa tiên đề và kết luận

mà còn cho biết tiên đề thực sự tạo ra kết luận và mối quan hệ giữa hai thành phần này là trực tiếp Tập các mối quan hệ nhân quả có thể được biểu diễn bằng đồ thị nhân quả

Các quan hệ nhân quả cần phụ thuộc vào thời gian theo nghĩa là nguyên nhân trước kết quả (kết luận) Nguyên nhân và kết quả đều có ít nhất một sự kiện thời gian đi kèm và thời gian của kết quả phải đi sau thời gian của nguyên nhân Mặc dù yếu tố thời gian làm rõ ý nghĩa nhân quả nhưng hệ thống thường khó phân biệt các liên kết giả tạo

Phân cụm, nhóm (Clustering)

Một nhiệm vụ của các hệ thống phát hiện tri thức là phân tích các đối tượng dữ liệu dạng như các giỏ hàng mà không quan tâm tới lớp của chúng Các hệ thống này phải tự phát hiện ra các lớp và sinh ra một sơ đồ phân nhóm của tập dữ liệu đó

Trang 18

Tuy nhiên, chất lượng của việc phân nhóm này là một vấn dề khó có thể xác định được Bài toán phân nhóm xác định các nhóm dựa vào quan hệ nhiều

- nhiều, tức là bất kỳ thuộc tính nào cũng có thể được sử dụng để xác định các nhóm và để dự báo các giá trị thuộc tính khác Điều này trái với cách xác định nhiều - một liên quan đến nhiệm vụ phân lớp các đối tượng, trong đó, một thuộc tính được xem như lớp và tất cả các thuộc tính khác được sử dụng để phán đoán giá trị cho thuộc tính lớp

Phân lớp (Classification)

Trong nhiệm vụ phân lớp, mỗi bộ dữ liệu theo dạng giỏ mua hàng thuộc

về một lớp nào đó đã được xác định trước Các bộ dữ liệu bao gồm tập các thuộc tính dự báo và một thuộc tính phân lớp cụ thể Lớp của bộ được chỉ ra bởi giá trị của thuộc tính lớp mà người dùng xác định trước

Ta xét ví dụ sau: Giả sử, mỗi bộ dữ liệu biểu diễn các thông tin về nhân viên, trong đó các thuộc tính dự báo là tuổi, giới tính, trình độ học vấn, của nhân viên đó và thuộc tính phân lớp là trình độ lãnh đạo của nhân viên Mục tiêu của thuật toán phân lớp là tìm ra mối quan hệ nào đó giữa các thuộc tính

dự báo và thuộc tính phân lớp, từ đó sử dụng mối quan hệ này để dự báo lớp cho các bộ dữ liệu mới khác cùng khuôn dạng

Trong trường hợp những kiến thức được phát hiện biểu diễn dưới dạng các luật thì khuôn dạng của luật có thể là: “nếu các thuộc tính dự báo của một

bộ dữ liệu thoả mãn các điều kiện của tiên đề, thì bộ dữ liệu đó có lớp chỉ ra trong kết luận”

Hồi quy (Regression)

Về khái niệm, nhiệm vụ hồi quy tương tự như phân lớp Điểm khác nhau chính là ở chỗ thuộc tính để dự báo là liên tục chứ không phải rời rạc Việc dự báo các giá trị số thường được làm bởi các phương pháp thống kê cổ điển, chẳng hạn như hồi quy tuyến tính Tuy nhiên, các phương pháp mô hình hoá cũng được

Trang 19

sử dụng, chẳng hạn như cây quyết định, trong đó nút lá là mô hình tuyến tính phát sinh tập các lớp giả (pseudo - class) có giá trị thuộc tính đích tương tự nhau, sau

đó sử dụng phương pháp quy nạp để thay thế các lớp trong luật quy nạp bằng tổ hợp các giá trị của thuộc tính lớp cho các bộ dữ liệu theo luật

Tổng hợp (Sumarization)

Nhiệm vụ tổng hợp chính là sản sinh ra các mô tả đặc trưng cho một lớp

Mô tả này là một kiểu tổng hợp, tóm tắt mô tả các đặc tính chung của tất cả (hoặc hầu hết) các bộ dữ liệu dạng giỏ mua hàng thuộc một lớp

Các mô tả đặc trưng thể hiện dưới dạng luật có dạng sau: ”nếu một bộ dữ liệu thuộc về một lớp đã chỉ ra trong tiên đề, thì bộ dữ liệu đó có tất cả các thuộc tính đã nêu trong kết luận” Cần lưu ý là các luật này có những đặc trưng khác biệt so với luật phân lớp Luật phát hiện đặc trưng cho một lớp chỉ sản sinh khi các bộ dữ liệu đã thuộc về lớp đó

So sánh các nhiệm vụ phát hiện tri thức

Điểm giống và khác giữa các nhiệm vụ phát hiện tri thức được tóm tắt trong bảng sau:

Nhiệm vụ Kiểu phát hiện Mục đích Kiểu dự báo

Thiết kế và duy trì

Phát hiện sai lệch Mục đích chung Xác định trội Không học

Phát hiện liên kết Mục đích chung Dự báo, xác định

Trang 20

Nhân quả Mục đích chung Dự báo, mô tả Không học Phân nhóm Mục đích chung Dự báo, mô tả Không học

Bảng 1.1 So sánh các nhiệm vụ phát hiện tri thức

Trong bảng này, cột đầu tiên chỉ ra nhiệm vụ phát hiện tri thức Cột thứ hai chỉ ra kiểu tri thức được phát hiện Các kiểu có thể là hướng hệ quản trị CSDL (như các luật SQO) hoặc phụ thuộc CSDL hoặc là mục đích chung (tức

là các nhiệm vụ phát hiện bổ trợ khác) Tri thức hướng hệ quản trị CSDL thường dùng trong thiết kế và giao dịch của một CSDL Tuy nhiên, tri thức hướng hệ quản trị CSDL cũng có thể dùng cho việc kiểm tra các luật tối ưu truy vấn ngữ nghĩa để cải thiện việc tìm hiểu ứng dụng Trong khi tri thức theo kiểu mục đích chung có thể được sử dụng theo các mục đích khác nhau tuỳ thuộc vào nhu cầu của người dùng theo nghĩa mờ và nó có thể sử dụng hiệu quả trong hệ quản trị CSDL Tuy vậy, điểm khác biệt quan trọng là tri thức hướng hệ quản trị CSDL yêu cầu độ chính xác cao hơn so với tri thức theo mục đích chung

Cột thứ ba trong bảng chỉ ra mục đích của việc phát hiện tri thức Cột này xuất phát từ cột hai Mục đích chính của các tri thức hướng hệ quản trị CSDL

là khá cụ thể: Tối ưu truy vấn (trong trường hợp SQO) và thiết kế, duy trì CSDL (trong trường hợp sự phụ thuộc CSDL) Các tri thức theo kiểu mục đích chung thường được dùng co một sự kết hợp các mục đích dự báo, mô tả và xác định trội Dự báo liên quan đến xác định giá trị của các tri thức trên cơ sở xác định giá trị của các thuộc tính khác Kỹ thuật đặc trưng là phân lớp và hồi quy Tuy nhiên, dự báo cũng dựa trên quan hệ nhân quả, mô hình hoá sự phụ thuộc

Trang 21

cũng như phát hiện luật kết hợp Mô tả thường gắn với tổng hợp, thông tin gộp Do vậy, mô tả là mục tiêu chính của phân nhóm và tổng hợp Đối với hai nhiệm vụ này, việc mô tả các thuộc tính chung của các tập dữ liệu được quan tâm Hơn nữa việc mô tả cũng khá quan trọng trong các nhiệm vụ xác định phụ thuộc và quan hệ nhân quả Cần chú ý là mục tiêu chính của phát hiện tri thức phụ thuộc vào dạng mà tri thức biểu diễn, chẳng hạn, mạng nhân quả thích hợp cho mục tiêu mô tả hơn là luật về sự phụ thuộc

Cột thứ tư chỉ ra loại dự báo liên quan đến từng nhiệm vụ phát hiện tri thức Mặc dù các nhiệm vụ SQO và sự phụ thuộc CSDL phát hiện tri thức hướng CSDL và theo mục tiêu cụ thể, nhưng cũng có các nhiệm vụ dự báo liên quan đến kiểu này Nói chung, các nhiệm vụ SQO, sự phụ thuộc CSDL, liên kết, nhân quả, sự phụ thuộc và phân cụm có kiểu dự báo nhiều - nhiều trong đó giá trị của một vài thuộc tính có thể dùng để dự báo giá trị của các thuộc tính khác Một cách nhìn khác về quan hệ nhiều - nhiều là xem xét các nhiệm vụ như một dạng phát hiện không có học, bởi vì người dùng không chỉ ra thuộc tính mục tiêu và hệ thống có sự tự chủ hoàn toàn để quyết định thuộc tính nào

sẽ được đưa ra trong tri thức Nhiệm vụ phát hiện sự sai khác không hoàn toàn đúng với mục tiêu dự báo nhưng có thể nói nó liên quan đến việc phát hiện không có học

Nhiệm vụ phân lớp và hồi quy liên quan đến dự báo nhiều - một trong đó giá trị của nhiều thuộc tính có thể được sử dụng để dự báo giá trị của một thuộc tính do người dùng xác định trước Đối với nhiệm vụ tổng hợp, từ lớp của một bộ dữ liệu, chúng ta có thể dự báo giá trị (hoặc khoảng giá trị, giá trị trung bình, ) của các thuộc tính khác Tri thức được phát hiện phải bao gồm quan hệ đó Do vậy, tính tự chủ của hệ thống chỉ ở chỗ xác định các thuộc liên quan đến giá trị thuộc tính đích và có hạn chế hơn so với các nhiệm vụ không học Tuy nhiên, các nhiệm vụ không học có thể chuyển thành có học

Trang 22

Các đặc tính khác của phát hiện tri thức như tính thông minh và tính hữu dụng không bao gồm trong bảng trên bởi vì chúng mang tính chủ quanvà thay đổi lớn trong mỗi nhiệm vụ của từng kĩnh vực cụ thể

Phát hiện tri thức hướng CSDL (SQO và sự phụ thuộc CSDL) có độ chính xác cao Đây là điểm khác biệt quan trọng so với các đòi hỏi của các nhiệm vụ phát hiện tri thức khác Nhiệm vụ phát hiện sự sai lệch liên quan đến phát hiện tri thức với mức ý nghĩa do người dùng xác định Nhiệm vụ phát hiện liên kết cũng như thế với ngưỡng tin cậy (ngưỡng confidence) và tần suất tương đối (ngưỡng hỗ trợ - support) Nhiệm vụ tổng hợp liên quan đến phát hiện tri thức có tính phổ biến cao tức là luật được phát hiện phải bao hàm một

số dữ liệu (mà các nhiệm vụ khác như phân lớp không đòi hỏi như vậy)

Các nhiệm vụ như phát hiện sự phụ thuộc, nhân quả, phân lớp và hồi quy chủ yếu liên quan đến phát hiện tri thức có độ chính xác cao

Trang 23

CHƯƠNG II: MỘT SỐ KỸ THUẬT KHAI PHÁ LUẬT KẾT

HỢP 2.1 Lý thuyết về luật kết hợp

Khái niệm

Trong lĩnh vực Data Mining, mục đích của luật kết hợp (Association Rule - AR) là tìm ra các mối quan hệ giữa các đối tượng trong một cơ sở dữ liệu khổng lồ Nội dung cơ bản của luật kết hợp được tóm tắt như sau:

-Cho cơ sở dữ liệu gồm các giao dịch T là tập các giao dịch t1, t2, …,

tn

T = {t1, t2, …, tn}: T gọi là cơ sở dữ liệu giao dịch (Transaction

Database)

-Mỗi giao dịch ti bao gồm tập các đối tượng I (gọi là itemset)

I = {i1, i2, …, im}: Một itemset gồm k items gọi là k-itemset

-Mục đích của luật kết hợp là tìm ra sự kết hợp hay tương quan giữa các items Những luật kết hợp này có dạng X =>Y

Trong kinh doanh, luật kết hợp X =>Y có thể hiểu rằng những người mua các mặt hàng trong tập X cũng thường mua các mặt hàng trong tập Y (X

và Y gọi là itemset)

Ví dụ, nếu X = {Apple, Banana} và Y = {Cherry, Durian} và ta có luật kết hợp X =>Y thì chúng ta có thể nói rằng những người mua Apple và Banana thì cũng thường mua Cherry và Durian

Theo quan điểm thống kê, X được xem là biến độc

lập (Independent variable) còn Y được xem là biến phụ thuộc (Dependent variable)

Trang 24

2.2 Thuật toán kinh điển

2.2.1 Thuật toán Apriori

- Thuật toán Apriori được dùng để phát hiện các luật kết hợp dạng khẳng định (Positive Rule X=>Y) nhị phân (Binary Association Rules) chứ không thể phát hiện các luật kết hợp ở dạng phủ định (Negative Association Rule) chẳn hạn như các kết hợp dạng “Khách hàng mua mặt hàng A thường KHÔNG mua mặt hàng B” hoặc “Nếu ủng hộ quan điểm A thường KHÔNG

ủng hộ quan điểm B”

- Để thu được các luật kết hợp, ta thường áp dụng 2 tiêu chí: minimum

support (min_sup) và minimum confidence (min_conf)

- Minimum support và Minimum confidence gọi là các giá trị ngưỡng

và phải xác định trước khi sinh các luật kết hợp

- 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)

Trang 25

k-B4.Lặp lại từ bước 2 cho đến khi Candidate set (C) trống (không tìm thấy frequent itemsets).

B5.Với mỗi frequent itemset I, sinh tất cả các tập con s không rỗng của I

B6 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

Ví dụ:

Chẳn hạn với I= {A1,A2,A5}, các tập con của I: {A1}, {A2}, {A5},

{A1,A2},{A1,A5},{A2,A5} sẽ có các luật sau

 {A1} => {A2,A5},{A2} =>{A1,A5},{A5} =>{A1,A2}

 {A1,A2} =>{A5},{A1,A5} =>{A2},{A2,A5} => {A1}

Ví dụ: Giả sử ta có có sở dữ liệu giao dịch (Transaction Database

-TDB) như sau :

Hình 2.1 CSDL giao dịch

Thuật toán Apriori khai phá luật kết hợp được mô tả qua các bước sau( với min-sup=2 (50%) và min-con =80%):

Trang 26

Hình 2.2 Minh họa các bước khai phá

Với frequent itemsets I ={B,C,E}, ta có tập con : {B}, {C}, {E}, {B,C},{B,E},{C,E} Các luật được sinh ra với Confidence tương ứng:

Tuy nhiên thuật toán này có nhược điểm sau:

- Tập C được tạo ra bằng cách kết những tập thường xuyên với những item trong giao tác, do đó phát sinh quá nhiều các tập không thường xuyên không cần thiết

Trang 27

 104 frequent 1-itemsets  nhiều hơn 107 (≈104(104-1)/2) itemsets dự tuyển

2- Một k-itemset cần ít nhất 2k -1 itemsets dự tuyển trước đó

- Với mỗi tập ứng cử viên C, thuật toán phải duyệt lại toàn bộ cơ sở dữ liệu để tính độ hỗ trợ, điều này làm tăng quá nhiều thời gian xử lý Vì vậy, thuật toán sẽ không đạt hiệu quả tốt đối với các cơ sở dữ liệu lớn

 Chi phí lớn khi kích thước các itemsets tăng lên dần

 Nếu k-itemsets được khám phá thì cần kiểm tra tập dữ liệu k+1 lần

2.3 Một số thuật toán luật kết hợp

2.3.1 Thuật toán Fp_Growth

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út gọ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án Apriori gặp phải chi phí lớn

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

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á được một

số mẫu phổ biến kích thước (độ dài) là l, thuật toán phải kiểm tra (2^l-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ải sinh ra tổng số 2^100 =10^30 các ứng cử (đấy chính là số tập con của tập có

100 phầ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à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

Trang 28

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 tìm các tập phổ biến hiệu quả hơn thuật toán Apriori là thuật toán Fp-tree và Fp-Growth

2.3.2 Thuật toán Fp_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 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ủa 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

Thuật toán xây dựng FP-tree:

Input: Cơ sở dữ liệu giao dịch DB và ngưỡng hỗ trợ tối thiểu là ξ

Output: Cây FP-Tree, cây chứa các mẫu phổ biến

FP-tree được xây dựng theo các bước sau đây:

B1 Duyệt DB lần đầu để thu được tập F gồm các đối tượng phổ biến (frequent item) và độ hỗ trợ (support count) của chúng Sắp xếp các đối tượng (item) trong F giảm dần theo supprort count ta được danh sách L

b Call Insert_Tree([p,P], T);

Trang 29

2.3.3 Thuật toán Fast Algorithm for Discovering Frequent Itemsets (FIT)

Khai phá luật kết hợp là một vấn đề khai phá dữ liệu quan trọng đã được nghiên cứu rông rãi Một thuật toán nhanh và đơn giản cho danh sách các thuộc tính giao nhau sử dụng Bảng dữ liệu hỏng được trình bày FIT được thiết kế để tính toán một cách hiệu quả tất cả các tập phổ biến trong cơ sở dữ liệu lớn Nó triển khai các ý tưởng tương tự như Eclat nhưng có hiệu suất tính toán tốt hơn nhiều so với Eclat do hai khía cạnh:

1) FIT có tổng số các phép so sánh ít hơn cho từng hoạt động giao nhau giữa hai danh sách thuộc tính,

2) FIT giảm đáng kể tổng số hoạt động giao nhau Các kết quả thực nghiệm chứng minh rằng hiệu suất của FIT là tốt hơn nhiều so với các thuật toán Apriori và Eclat

Với một cơ sở dữ liệu D, và minsup, mô tả chính thức của các phương pháp

đơn giản được thể hiện như sau :

Bước 1)

Chuyển đổi D vào các thuộc tính định dạng danh sách và tính toán

L1 Sắp xếp tài liệu và danh sách thuộc tính tương ứng trong L 1 vào trật

tự không tăng theo số lượng các thuộc tính trong danh sách Đánh dấu

tất cả các tập phổ biến ở L 1 không truy cập

Trang 30

Quét các danh sách thuộc tính của các tập phổ biến không truy cập đầu

tiên (X) trong L k , Đối với mỗi thuộc tính (vx) bộ hb [vx] tới 1 Đánh dấu X truy cập

Bước 5)

Quét các danh sách thuộc tính của bất kỳ của các tập phổ biến khác (Y)

theo sau X trong Lk Đối với mỗi thuộc tính (ty), nếu hb [vy] bằng 0, loại

bỏ ty Nếu hb [vy] bằng 1, đặt vy vào danh sách thuộc tính kết quả Nếu

số lượng các thuộc tính trong danh sách thuộc tính kết quả là không ít

hơn minsup, đặt các tập phổ biến (X∩Y) và danh sách thuộc tính kết quả vào L k + 1 Đánh dấu các tập phổ biến X∩Y không truy cập trong L k + 1

Bước 6)

Thiết lập lại các mục trong hb đến -1 Nếu L k+1 không phải là trống, tăng

k bằng 1 và quay trở lại bước 4) Nếu không, đi đến bước 3)

2.3.4 Thuật toán NSFI ALGORITHM

Khai thác tập phổ biến là một yếu tố cơ bản liên quan đến nhiều vấn đề khai thác dữ liệu hướng vào việc tìm kiếm mô hình thú vị trong dữ liệu Gần đây các thuật toán PrePost, một thuật toán mới cho khai thác tập phổ biến dựa trên ý tưởng của N-list, mà trong nhiều trường hợp làm tốt hơn Tác giả đã đề xuất một phiên bản cải tiến của PrePost, N-list và bao hàm dựa trên thuật toán khai thác tập phổ biến (NSFI) thuật toán có sử dụng một bảng băm để tăng cường quá trình tạo ra các N-list liên kết với 1 tập phổ biến và tồn tại được cải thiện N-list thuật toán giao nhau Hơn nữa, hai định lý mới được đề xuất để xác định '' bao hàm index '' của thường xuyên 1-tập phổ biến dựa trên khái niệm N-list Sử dụng chỉ số bao hàm, NSFI có thể xác định các nhóm của tập phổ biến mà không xác định N-list ch liên kết với chúng Kết quả cho thấy NSFI nhanh hơn so PrePost về thời gian chạy và sử dụng bộ nhớ và nhanh hơn

so với clat triển về mặt thời gian chạy

Trang 31

Deng et al [3] đề xuất một chức năng giao điểm N-danh sách để xác định giao điểm của hai N-danh sách đó là O (n + m + k) trong đó n, m và k là

độ dài của đầu tiên, thứ hai và kết quả là N-danh mục (chức năng di chuyển qua danh sách N- kết quả như vậy là để hợp nhất cùng PP-mã) Trong phần này chúng tôi trình bày một chức năng giao điểm N-list được cải tiến để cung cấp cho O (n + m) Chức năng cải tiến này cung cấp những lợi thế mà nó không đi qua các kết quả N-list để hợp nhất các mã PP- cùng Hơn nữa, chúng tôi cũng đề xuất một chiến lược đầu bỏ bao gồm ba bước: (i) xác định tổng tần

số đầu tiên và thứ hai N-danh sách ký hiệu là SF, (ii) cho mỗi Ci PP-mã, mà không thuộc về kết quả N-list, cập nhật SF = SF - C.frequency, và (iii) nếu SF giảm xuống dưới \ minSup xn] dừng lại (các tập phổ biến hiện đang được coi

là không thường xuyên) Với các chức năng trên giao điểm N-list cải thiện

Thuật toán N-list cải tiến

function NL_intersection (PS1, PS2)

1 let PS3 ← ∅, sF ← σ(PS1) + σ (PS2), i = 0, j = 0 and f = 0

2 while i < |PS1 | and j < |PS2| do

3 if PS1[i].pre < PS2[j].pre then

4 if PSi[i].post > PS2[j].post then

5 if |PS3| > 0 and pre value of the last element in PS3 equal

Trang 32

3 if j ϵ l1 [i] Subsumes then continue

4 if checkSubsume (l1 [i] N-list, l1 [j ] N-list) is true then

5 add l1 [ j ] name and its index, j, to l1[i].Subsumes

6 add all elements in l1[j ] Subsumes to l1[i] Subsumes

Đầu tiên các thuật toán NSFI tạo PPC-cây, sau đó đi qua cây này để tạo

ra N-danh sách liên quan đến việc thường xuyên 1-itemset Sau đó, một chiến

Trang 33

lược chia-và-chinh phục, cùng với khái niệm chỉ số bao hàm, được sử dụng để tôi tập phổ biến Đối với mỗi phần tử X, nếu chỉ số bao hàm của nó có các yếu

tố, tập hợp các tập phổ biến được sản xuất bằng cách kết hợp với các yếu tố X trong chỉ số bao hàm của nó là thường xuyên và có sự hỗ trợ tương tự như X Đối với mỗi nguyên tố còn lại không được chứa trong các bao hàm chỉ số của

X, thuật toán sẽ kết hợp chúng với X để tạo ra các tập phổ biến ứng cử viên thường xuyên Lưu ý rằng đối với 2 tập phổ biến hoặc nhiều hơn, thuật toán không sử dụng các chỉ số bao hàm

Thuật toán NSFI ALGORITH

Input: A dataset DB and minSup

Output: FIs, the set of all frequent itemsets

1 Construct_PPC_tree (DB, minSup) to generate R., l1, H 1 and threshold

1 let C ← (R.pre, R.post, R frequency)

2 add C to H1[R .name] N-list

3 increase H1 [R .name] frequency by C frequency

4 for each child in R .children do

5 Generate_NList(child)

procedure Find_FIs (Is, S)

1 for i ← Is size - 1 to 0 do

2 let FIsnext ← 0

Trang 34

4 let S be the set of subset generated from all elements of

Is [i] Subsumes

5 for each s in S do

6 add (s Is [i] frequency) to FIs //using theorem 4

7 else if |Is[i] | = 1 then

8 S ← {}

9 indexS = |Is [i] Subsumes | - 1

10 for j ← i - 1 to 0 do

11 if indexS ≥ 0 and Is [i].Subsumes[indexS] = j then

12 indexS = indexS - 1 and continue

13 let efirst be the first item of Is[j]

14 FI ← { efirst } + Is[i]

15 (FI.N-list and FI frequency) ← NL_intersection (Is [j ]

.N-list, Is [i] N-list)

16 if FI.N-list = null then continue

17 if(FI.frequency ≥ threshold) then

18 add FI to FIs

19 insert FI at first in FIsnext

20 for each subsume in S do

21 let f = FI + subsume

22 f.frequency = FI.frequency

23 add f to FIs // using theorem 4

24 Find_FIS (FIsnext, S)

2.4 Thuật toán FSM

Năm 2005, Yu-Chiang Li và đồng nghiệp tại Khoa Khoa học máy tính và

Kỹ thuật thông tin của Đại học Chung Chen, Đài Loan giới thiệu thuật toán FSM (Fast Share Measure), đây là một thuật toán hiệu quả tìm ra tất cả các tập mục cổ phần cao Thay vì khai thác tính chất Apriori, thuật toán FSM sử dụng một số tính chất của tập mục cổ phần cao để rút gọn các tập mục ứng viên

Trang 35

2.4.1 Cơ sở lý thuyết của thuật toán FSM

Cơ sở lý thuyết của thuật toán được thể hiện trong mệnh đề sau:

Cho minShare và k-itemset X không là tập mục cổ phần cao Nếu:

( ) ( ) lmv X ( ) min_

CF Xmin_lmv thì không có tập cha nào của X là tập mục cổ phần cao

Thuật toán FSM dựa vào mệnh đề này để tỉa các tập mục ứng viên

2.4.2 Nội dung cơ bản của thuật toán FSM

Thuật toán duyệt nhiều lần CSDL, ở lần duyệt thứ k, C k lưu các tập mục

ứng viên, RC k lưu các tập mục nhận được sau khi kiểm tra hàm tới hạn CF, F k

lưu các tập mục cổ phần cao nhận được

Giống như thuật toán Apriori, ban đầu mỗi mục dữ liệu là một ứng viên Trong lần duyệt thứ nhất, thuật toán duyệt cơ sở dữ liệu, tính giá trị của mỗi

mục dữ liệu Mỗi ứng viên 1- tập mục X sẽ bị tỉa nếu CF(X)< min_lmv Trong

mỗi lần duyệt tiếp theo, các tập mục ứng viên được tạo ra bằng cách nối hai

Trang 36

(k-1)-itemset trong RC k-1 nếu chúng có (2) mục đầu giống nhau và nhận đƣợc

k-itemset, kết nạp vào tập C k (giả sử các mục của cơ sở dữ liệu đã đƣợc sắp thứ

tự) Tất cả k tập con với độ dài (k-1) của mỗi k-itemset trong C k là phải thuộc

Tiếp theo, thuật toán duyệt cơ sở dữ liệu để tìm tập mục cổ phần cao Với mỗi

tập mục X trong C k , nếu tập mục này có lmv X min lmv_ thì X là tập mục cổ phần cao và đƣợc thêm vào F k ; Ngƣợc lại, xét hàm tới hạn CF, nếu

( )

CF Xmin_lmv thì tập ứng viên X bị loại khỏi RC k Quá trình trên cứ lặp cho đến khi không có tập mục ứng viên nào đƣợc sinh ra

2.4.3 Một số khái niệm của thuật toán

Cho tập các mục (item) I i i1 , , , 2 i n Một giao tác (transaction) T là một tập con của I, TI Cơ sở dữ liệu là một tập các giao tác DBT T1 , 2 , ,T m

Mỗi giao tác đƣợc gán một định danh TID Một tập mục con XI, gồm k

mục phân biệt đƣợc gọi là một k-itemset Giao tác T gọi là chứa tập mục X

nếu XT

MV (Measure Value – Giá trị tập mục trong giao tác): Ta ký hiệu giá trị

của mục i p trong giao tác T qmv i T( ,p q), mv i T( ,p q) có giá trị là số tự nhiên (nhƣ số lƣợng đã bán của một mặt hàng trong giao tác), tức là, mv i T( ,p q)  0

nếu i pT qmv i T( ,p q) 1  nếu i pT q

TMV (Transaction Measure Value – Giá trị giao tác): Giá trị của giao tác

Tq là tổng giá trị các mục dữ liệu trong giao tác, ký hiệu là tmv(T q), tức là

Trang 37

Ví dụ 2.1 : Cho cơ sở dữ liệu bảng 2.1, mv(D,T01)=1, mv(C,T03)=3,

IMV (Itemset Measure Value): Cho giao tác T q chứa tập mục X Giá trị của

tập mục X trong T q, ký hiệu imv X T , q, là tổng giá trị của các mục ip trong T q

Sh (Share Value): Cổ phần hay đóng góp của tập mục X , ký hiệu là Sh(X), là

tỉ số giữa giá trị của tập mục X và tổng giá trị của tất cả các mục trong cơ sở dữ

liệu, tức là:   lmv X( )

Sh X

Tmv

Sh(X) cho biết trong tổng giá trị của tất cả các mục dữ liệu trong cơ sở dữ

liệu thì giá trị của tập X chiếm bao nhiêu phần trăm Ví dụ, với CSDL giao tác

Trang 38

bán hàng, Sh(X)=30% tức là trong tổng số lượng hàng đã bán được thì số lượng các mặt hàng trong X chiếm 30%

MinShare: ngưỡng cổ phần (minimum share) minShare s% và tập mục X X

được gọi là tập mục cổ phần cao nếu Sh(X) ≥ minShare Trường hợp ngược lại, X được gọi là tập mục cổ phần thấp

Ký hiệu giá trị cổ phần tối thiểu (minimum local measure value) là

min_lmv, min_lmv= minShare x Tmv, có thể thay điều kiện Sh(X) ≥ minShare

trong định nghĩa 2.4 bởi điều kiện lmv X   min lmv_

Ví dụ: Xét cơ sở dữ liệu cho ở bảng 2.1 và minShare=30% Bảng 2.2 là

giá trị của các mục dữ liệu và cổ phần của chúng

Ngày đăng: 23/03/2021, 21:43

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

TÀI LIỆU LIÊN QUAN

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

w