Tải bản đầy đủ (.pdf) (39 trang)

LUẬT KẾT HỢP TRONG KHAI PHÁ DỮ LIỆU VÀ ỨNG DỤNG TRONG BÀI TOÁN KINH DOANH

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (868.81 KB, 39 trang )

Phần 1. MỞ ĐẦU

1.1. Lý do chọn đề tài
Chúng ta nhận thấy rằng, trong vài thập niên gần đây, cùng với sự thay đổi và phát

triển không ngừng của ngành công nghệ thông tin, luồng thông tin được sinh ra và chuyển
tải mau lẹ đến chóng mặt, ước tính cứ khoảng 20 tháng lượng thơng tin trên thế giới lại
tăng gấp đôi. Với sự việc đó dẫn đến sự bùng nổ thơng tin, làm cho các nhà quản lý rơi vào
tình trạng “ngập trong thơng tin”. Chính vì vậy, các chun gia cho rằng, hiện nay chúng
ta đang sống trong một xã hội “rất giàu về thông tin nhưng nghèo về tri thức”. Những
người ra quyết định trong các tổ chức tài chính, thương mại, khoa học…khơng muốn bỏ
sót bất cứ thông tin nào, họ thu thập, lưu trữ tất cả mọi thơng tin vì cho rằng trong nó ẩn
chứa những giá trị nhất định nào đó.

Trước tình hình đó, giải pháp hiệu quả giúp phân tích khối lượng lớn dữ liệu đó là
khai phá dữ liệu. Với kỹ thuật khai phá dữ liệu, em muốn nghiên cứu ứng dụng trong phân
tích số liệu kinh doanh để phát hiện những tri thức về công tác tư vấn kinh doanh.

Với mong muốn như vậy nên em đã chọn đề tài “Luật kết hợp trong khai phá dữ liệu
và ứng dụng trong bài toán kinh doanh” để làm đề tài khóa luận tốt nghiệp cuối khóa của
mình.
1.2. Mục tiêu của đề tài

Mục tiêu của đề tài là tìm hiểu:
- Tìm hiểu qui trình khám phá tri thức
- Tìm hiểu quá trình khai phá dữ liệu
- Tìm hiểu các luật kết hợp trong khai phá dữ liệu
- Ứng dụng nội dung tìm hiểu được đưa vào trong bài toán kinh doanh
1.3. Đối tượng và phạm vi nghiên cứu
- Các luật kết hợp trong khai phá dữ liệu.
- Một số chương trình, mã nguồn mở ứng dụng khai phá dữ liệu.


- Áp dụng các thuật toán khai phá dữ liệu trên cơ sở dữ liệu lưu trữ.
1.4. Phương pháp nghiên cứu
+ Phương pháp nghiên cứu lý thuyết: Tìm hiểu và lựa chọn các phương pháp khai phá dữ
liệu,
+ Phương pháp nghiên cứu thực nghiệm: phân tích thiết kế hệ thống, triển khai xây dựng
ứng dụng.

1

1.5. Lịch sử nghiên cứu
- Nội dung đã dạy và học ở học phần khai phá dữ liệu
- Có nhiều cá nhân cũng như nhóm nghiên cứu đã chọn kiến thức này làm nội dung
cho đề tai nghiên cứu họ

1.6. Đóng góp của đề tài
Đây là một đề tài khá hay và khá hữu ích đối với lĩnh vực giáo dục. Khi mà các

trường đại học và cao đẳng hiện nay đang dần chuyển sang đào tạo theo hệ tín chỉ thì
việc ứng dụng khai phá dữ liệu để tư vấn học tập sẽ giúp cho sinh viên có thể chọn lựa
được một lộ trình học đạt kết quả tối ưu nhất, phù hợp với điều kiện và năng lực của
mình.
1.7. Cấu trúc của đề tài
- MỞ ĐẦU
- NỘI DUNG

Chương 1: Phát hiện tri thức và khai phá dữ liệu
Chương 2: Thuật toán appriori và các thuật toán xuất phát từ appriori khai phá luật kết
hơp
Chương 3: Cài đặt thuật toán và ứng dụng


2

Phần 2. NỘI DUNG
CHƯƠNG 1. PHÁT HIỆN TRI THỨC VÀ KHAI PHÁ DỮ LIỆU

1.1. Phát hiện tri thức
1.1.1. Khái niệm phát hiện tri thức

Phát hiện tri thức trong cơ sở dữ liệu là một quy 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: phân tích, tổng hợp, hợp thức, khả ích, và có thể hiểu
được. Cịn khai thác dữ liệu là một bước trong quy trình phát hiện tri thức gồm có các thuật
tốn khai thác dữ liệu chun dùng dưới một số qui định về hiệu quả tính tố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 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.
1.1.2. Quy trình phát hiện tri thức

Việc khám phá tri thức thơng thường có thể mô tả bằng sơ đồ sau:

Tìm hiểu lĩnh vực
ứng dụng

Sử dụng các tri thức Thu thập và tiền xử
phát hiện được lý dữ liệu

Phân tích và kiểm Khai phá dữ liệu
định kết quả rút ra các tri thức

Hình1.1. Qui trình phát hiện tri thức


3

Trong đó, mỗi bước là một quy trình có vai trò và nhiệm vụ khác nhau, bao gồm:
Bước thứ nhất: tìm hiểu lĩnh vực ứng dụng và hình thành bài tốn, 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à 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 tồn bộ quy trình phát hiện tri thức.

Bước thứ ba: khai phá dữ liệu, hay nói cách khác là trích ra các mẫu hoặc các mơ hình
ẩn dưới các dữ liệu.

Bước thứ tư: hiểu tri thức đã tìm được, đặc biệt là làm sáng tỏ các mơ tả và dự đố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.

Bước thứ năm: Sử dụng tri thức đã được khai phá vào thực tế. Các tri thức phát hiện
được tích hợp chặt chẽ trong hệ thống. Tuy nhiên để sử dụng được các tri thức đó đơi khi
cần đến các chun gia trong lĩnh vực liên quan vì tri thức rút ra có thể chỉ mang tính chất
hỗ trợ quyết định hoặc cũng có thể được sử dụng cho q trình khám phá tri thức khác.

Mặc dù được tóm tắt thành 5 bước nhưng thực chất quá trình xây dựng và thực hiện việc
khám phá tri thức không chỉ tuân theo các bước cố định mà các quá trình này cịn có thể
được lặp đi lặp lại ở một hoặc một số giai đoạn trước và cứ tiếp tục như thế sẽ làm cho quá
trình khai phá và tìm kiếm dữ liệu ngày càng hoàn thiện hơn.

4


Ví dụ: Các bước trong q trình phát hiện tri thức

Đánh giá kết quả

Khai phá dữ liệu Các
trí
Các thực
mẫu được
được biểu
phát diễn
hiện
Chuyển đổi dữ liệu Dữ liệu
Làm sạch và tiền xử lý dữ liẹu được
chuyển
đổi

Trích học dữ liệu Dữ liệu
được
Gom dữ liệu làm
sạch
Internet các
kho chứa dữ Dữ liệu Dữ liệu
liệu theo
mục tiêu

Hình 1.2. Các bước trong quá trình phát tri thức

1.2. Khai phá dữ liệu


1.2.1. Khái niệm khai phá dữ liệu

Khai phá dữ liệu như là một khái niệm ra đời vào những năm cuối của thập kỷ 80. Nó
bao hàm một loạt các kỹ thuật nhằm phát hiện ra các thơng tin có giá trị tiềm ẩn trong các
tập dữ liệu lớn (các kho dữ liệu). Về bản chất, 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 phát hiện tri thức
trong cơ sở dữ liệu để chỉ tồn bộ q 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 tồn bộ tiến trình, sử dụng và 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.

Khai phá dữ liệu là một tiến trình sử dụng các cơng cụ phân tích dữ liệu AI khám phá
ra các mẫu dưới nhiều góc độ khác nhau nhằm phát hiện ra các IP khác nhau để nhằm phát
hiện ra các mối quan hệ giữa các dữ kiện, đối tượng bên trong cơ sở dữ liệu, kết quả của

5

việc khai phá là xác định các mẫu hay các mơ hình đang tồn tại bên trong, nhưng chúng
nằm ẩn khuất ở các cơ sở dữ liệu. Để từ đó rút ra được các mẫu, các mơ hình hay các thông
tin và tri thức từ cơ sở dữ liệu.

Do sự phát triển mạnh mẽ của khai phá dữ liệu về phạm vi các lĩnh vực ứng dụng trong
thực tế và các phương pháp tìm kiếm nên có rất nhiều khái niệm khác nhau về khai phá dữ
liệu. Tóm lại khai phá dữ liệu được định nghĩa như sau: “Khai phá dữ liệu là quá trình
khám phá các tri thức mới và các tri thức có ích ở dạng tiềm năng trong nguồn dữ liệu đã
có.”
1.2.2. Các phương pháp khai phá dữ liệu


Với hai mục đích chính của khai phá dữ liệu là dự đốn và mơ tả, người ta thường sử
dụng các phương pháp sau cho khai phá dữ liệu:

- Phân lớp (Classfication)
- Hồi quy (Regression)
- Trực quan hoá (Visualization)
- Phân cụm (Clustering)
- Tổng hợp (Summarization)
- Mơ hình ràng buộc (Dependency modeling)
- Biểu diễn mơ hình (Model Evaluation)
- Phân tích sự phát triển và độ lệch (Evolution and deviation analyst)
- Luật kết hợp (Associantion rules)
- Phương pháp tìm kiếm (Search Method)
1.2.3. Các lĩnh vực ứng dụng trong thực tiễn
| Ta có thể đưa ra một số ứng dụng trong các lĩnh vực như:
- Ngân hàng: Xây dựng mơ hình dự báo rủi ro tín dụng, tìm kiếm tri thức, quy luật của

thị trường chứng khoán và đầu tư bất động sản,..
- Thương mại điện tử: Cơng cụ tìm kiếm, định hướng, thúc đẩy, giao tiếp với khách

hàng, phân tích khác hàng duyệt web, phân tích hành vi mua sắm trên mạng và cho
biết thông tin tiếp thị phù hợp với loại khách hàng.

6

- Thiên văn học: Hệ thống SKICAT do JPL/Caltech phát triển được sử dụng cho các
nhà thiên văn để tự động xác định các vì sao và các dải thiên hà trong một bản khảo
sát lớn để có thể phân tích và phân loại.

- Sinh học phân tử: Hệ thống tìm kiếm các mẫu trong cấu trúc phân tử và trong các dữ

liệu gen.

- Mơ hình hóa những thay đổi thời tiết: Các mẫu khơng thời gian như lốc, gió xốy
được tự động tìm thấy trong các tập lớn dữ liệu mô phỏng và quan sát được.

1.2.4. Các kỹ thuật áp dụng trong khai phá dữ liệu

Các kỹ thuật khai phá dữ liệu thường được chia thành 2 nhóm chính:

Kỹ thuật khai phá dữ liệu mơ tả về các tính chất hoặc các đặc tính chung của dữ liệu
trong CSDL hiện có. Các kỹ thuật này gồm có: phân cụm (Clustering), tổng hợp
(Summerization), trực quan hố (Visualization), phân tích sự phát triển và độ lệch
(Evolution and deviation analyst), luật kết hợp (Associantion rules).

Kỹ thuật khai phá dữ liệu dự đốn: có nhiệm vụ đưa ra các dự đoán vào các suy diễn
trên dữ liệu hiện thời. Các kỹ thuật này gồm có: phân lớp (Classification), hồi quy
(Regression)...

Trong đó có ba phương pháp thơng dụng nhất là: phân cụm dữ liệu, phân lớp dữ liệu
và khai phá luật kết hợp.

- Phân cụm dữ liệu: Mục tiêu chính của phân cụm dữ liệu là nhóm các đối tượng tương tự
nhau trong tập dữ liệu vào các cụm sao cho các đối tượng thuộc cùng một lớp là tương đồng
còn các đối tượng thuộc các cụm khác nhau sẽ không tương đồng. Trong phương pháp này
bạn sẽ không thể biết kết quả các cụm thu được sẽ như thế nào khi q trình bắt đầu. Vì vậy,
thơng thường cần có một chuyên gia về lĩnh vực đó để đánh giá các cụm thu được. Phân
cụm dữ liệu cịn là bước tiên xử lý cho các thuật tốn khai phá dữ liệu khác.

- Phân lớp dữ liệu: Mục tiêu của phương pháp phân lớp dữ liệu là dự đốn nhãn lớp cho
các mẫu dữ liệu. Q trình phân lớp dữ liệu thường gồm 2 bước: xây dựng mô hình và sử

dụng mơ hình để phân lớp dữ liệu

- Khai phá luật kết hợp: Mục tiêu của phương pháp này là phát hiện đưa ra mối liên hệ
giữa các giá trị dữ liệu trong Cơ sở dữ liệu. Mẫu đầu ra của giải thuật khai phá dữ liệu là
luật kết hợp tìm được.

7

1.2.5. Quy trình khai phá dữ liệu

Thơng kê tóm tắt

Xác Xác Thu Giải
định định dữ thập thuật
nhiệm và tiền khai phá
vụ liệu xử lý dữ liệu
liên dữ
quan liệu Mẫu

DL trực tiếp

Hình 1.3. Quá trình khai phá dữ liệu

1.2. Một số hướng tiếp cận trong khai phá dữ liệu

Lĩnh vực khai phá luật kết hợp cho đến nay đã được nghiên cứu và phát triển theo
nhiều hướng khác nhau. Có những đề xuất nhằm cải tiến tốc độ thuật tốn, có những đề xuất
nhằm tìm kiếm luật có ý nghĩa hơn,... cụ thể:

- Luật kết hợp nhị phân (binary association rule): là hướng nghiên cứu đầu tiên của

luật kết hợp. Hầu hết các nghiên cứu ở thời kỳ đầu về luật kết hợp đều liên quan đến
luật kết hợp nhị phân. Trong dạng luật kết hợp này, các mục, thuộc tính chi được
quan tâm là có hay khơng xuất hiện trong giao tác của CSDL chứ không quan tâm về
mức độ” xuất hiện. Thuật toán tiêu biểu nhất khai phá dạng luật này là thuật toán
Apriori và các biến thể của nó. Đây là dạng luật đơn giản và các luật khác cũng có
thể chuyển về dạng luật này nhờ một số phương pháp như rời rạc hóa, mờ hóa,...

- Luật kết hợp có thuộc tính số và thuộc tính hạng mục (quantitative and categorial
association rule): các thuộc tính của các CSDL thực tế có kiểu rất đa dạng như số nhị
phận, giá trị định tính, định lượng,... Để phát hiện luật kết hợp với các thuộc tính này,
các nhà nghiên cứu đã đề xuất một số phương pháp rời rạc hóa nhăm chuyên dụng
luật này về dạng nhị phân để có thể áp dụng các thuật tốn đã có.

- Luật kết hợp tiếp cận theo hướng tập thô (mining association rules base on rough
set): tìm kiếm luật kết hợp dựa trên lý thuyết tập thô.

8

- Luật kết hợp nhiều mức (multi - level association rules ): cách tiếp cận theo luật này
sẽ tìm kiếm thêm những luật có dạng “mua máy tính PC = > mua hệ điều hành AND mua
phần mềm tiện ích văn phịng,..” thay vì chỉ những luật q cụ thể như “mua máy tính
IBM PC - Windows AND mua phần mềm tiện ích văn phịng Microsoft mua hệ điều hành
Microsol Office,...”. Như vậy dạng luật đầu là dạng luật tổng quát hóa của dạng luật sau và
tổng quát theo nhiều mức khác nhau.

- Luật kết hợp mờ (fuzzy association rules): với những hạn chế còn gặp phải trong q
trình rời rạc hóa các thuộc tínhsố (quantitave attributes), các nhà nghiên cứu đã đề xuất
luật kết hợp mờ nhằm khắc phục các hạn chế trên và chuyển luật kết hợp về một dạng tự
nhiên hơn, gần gũi hơn với người sử dụng.
- Luật kết hợp với thuộc tính được đánh trọng số (association rule with weighted

items): trong thực tế, các thuộc tính trong CSDL khơng phải lúc nào cũng có vai trị như
nhau. Có một số thuộc tính được chú trọng hơn và có mức độ quan trọng cao hơn các
thuộc tính khác. Đây là hướng nghiên cứu rất thú vị và đã được một số nhà nghiên cứu đề
xuất cách giải quyết bài tốn này. Với luật kết hợp có thuộc tính được đánh trọng số,
chúng ta sẽ khai thác được những luật “hiếm” (tức là có độ hỗ trợ thấp, nhưng có ý nghĩa
đặc biệt hoặc mang rất nhiều ý nghĩa).
- Luật kết hợp song song (parallel mining of association rule): bên cạnh khai thác luật

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

Bên cạnh những nghiên cứu về các biến thể của luật kết hợp, các nha ! nghiên cứu
còn chú trọng đề xuất những thuật tốn nhằm tăng tốc q trình tìm kiếm tập phổ biến từ
CSDL. Ngồi ra, cịn có một số hướng nghiên cứu khác về khai phá luật kết hợp như: khai
phá luật kết hợp trực tuyến, khai phá luật kết hợp được kết nối trực tuyến đến các kho dữ
liệu đa chiều thông qua công nghệ OLAP, MOLAP, ROLAP, ADO.

9

1.4. Một số bài tốn có thể khai phá được
- Microsoft Decision Tree:

Thuật toán Microsoft Decision Tree hỗ trợ cả việc phân loại và hồi quy, và tạo rất tốt
các mô hình dự đốn. Sử dụng thuật tốn này có thể dự đốn cả các thuộc tính rời rạc và
liên tục. Trong việc xây dựng mơ hình, thuật tốn này sẽ khảo sát sự ảnh hưởng của mỗi
thuộc tính trong tập dữ liệu và kết quả của thuộc tính dự đốn.Và tiếp đến nó sử dụng các
thuộc tính input (với các quan hệ rõ ràng) để tạo thành một nhóm phân hoá gọi là các node.

Khi một node mới được thêm vào mơ hình, một cấu trúc cây sẽ được thiết lập. Node đỉnh
của cây sẽ miêu tả sự phân tích (bằng thống kê) của các thuộc tính dự đốn thơng qua các
mẫu. Mỗi node thêm vào sẽ được tạo ra dựa trên sự sắp xếp các trường của thuộc tính dự
đoán, để so sánh với dữ liệu input. Nếu một thuộc tính input được coi là nguyên nhân của
thuộc tính dự đoán (to favour one state over another), một node mới sẽ thêm vào mơ hình.
Mơ hình tiếp tục phát triển cho đến lúc khơng cịn thuộc tính nào, tạo thành một sự phân
tách (split) để cung cấp một dự báo hồn chỉnh thơng qua các node đã tồn tại. Mơ hình địi
hỏi tìm kiếm một sự kết hợp giữa các thuộc tính và trường của nó, nhằm thiết lập một sự
phân phối không cân xứng giữa các trường trong thuộc tình dự đốn. Vì thế cho phép dự
đốn kết quả của thuộc tính dự đốn một cách tốt nhất.

- Microsoft Clustering:

Thuật toán này sử dụng kỹ thuật lặp để nhóm các bản ghi từ một tập hợp dữ liệu vào
một liên cung cùng có đặc điểm giống nhau. Sử dụng liên cung này có thể khám phá dữ
liệu, tìm hiểu về các quan hệ đã tồn tại, mà các quan hệ này khơng dễ dàng tìm được một
cách hợp lý thông qua quan sát ngẫu nhiên. Thêm nữa, có thể dự đốn từ các mơ hình liên
cung đã được tạo bởi thuật toán.

Ví dụ : Xem xét một nhóm người sống ở cùng một vùng, có cùng một loại xe, ăn cùng
một loại thức ăn và mua cùng một sản phẩm.

Đây là một liên cung của dữ liệu, một liên cung khác có thể bao gồm những người
cùng đến một nhà hàng, cùng mức lương, và được đi nghỉ ở nước ngồi hai lần trong năm.

- Microsoft Nạve Bayes :

Thuật toán này xây dựng mơ hình khai thác nhanh hơn các thuật toán khác, phục vụ
việc phân loại và dự đốn. Nó tính tốn khả năng có thể xảy ra trong mỗi trường hợp lệ


10

của thuộc tính input, gán cho mỗi trường một thuộc tính có thể dự đốn. Mỗi trường
này có thể sau đó được sử dụng để dự đốn kết quả của thuộc tính dự đốn dựa vào
những thuộc tính input đã biết. Các khả năng sử dụng để sinh ra các mơ hình được tính
tốn và lưu trữ trong suốt q trình xử lý của khối lập phương (cube: các mơ hình được
dựng lên từ các khối lập phương).

Thuật tốn này chỉ hỗ trợ các thuộc tính hoặc là rời rạc hoặc liên tục, và nó xem xét
tất cả các thuộc tính input độc lập. Thuật tốn này cho ta một mơ hình khai thác đơn
giản (có thể được coi là điểm xuất phát của DataMining), bởi vì hầu như tất cả các tính
tốn sử dụng trong khi thiết lập mơ hình, được sinh ra trong xử lí của cube (mơ hình
kích thước hợp nhất), kết quả được trả về nhanh chóng.

Điều này tạo cho mơ hình một lựa chọn tốt để khai phá dữ liệu khám phá các thuộc
tính input được phân bố trong các trường khác nhau của thuộc tính dự đốn như thế
nào?
- Microsoft Time Series :

Thuật toán này tạo ra những mơ hình được sử dụng để dự đoán các biến tiếp theo từ
OLAP và các nguồn dữ liệu quan hệ.

Ví dụ : Sử dụng thuật toán này để dự đoán bán hàng và lợi nhuận dựa vào các dữ liệu
quá khứ trong một cube. Sử dụng thuật tốn này có thể chọn một hoặc nhiều biến để dự
đoán (nhưng các biến là phải liên tục). Có thể có nhiều trường hợp cho mỗi mơ hình.
Tập các trường hợp xác định vị trí của một nhóm, như là ngày tháng khi xem việc bán
hàng thơng qua vài tháng hoặc vài năm trước. Một trường hợp có thể bao gồm một tập
các biến (ví dụ như bán hàng tại các cửa hàng khác nhau). Thuật toán này có thể sử
dụng sự tương quan của thay đối biến số (cross-variable) trong dự đốn của nó. Ví dụ:
Bán hàng trước kia tại một cửa hàng có thể rất hữu ích trong việc dự báo bán hàng hiện

tại tại những cửa hàng.
- Microsoft Association :

Thuật toán này được thiết kế đặc biệt để sử dụng trong phân tích giỏ thị
trường (basket market). Market basket (chỉ số rổ thị trường: tức là ta sẽ dùng tất cả các
loại hàng hố đang có trên thị trường (một siêu thị chẳng hạn) ta nhân giá cả của nó với

11

chỉ số của hàng hố (ví dụ gạo x 10, thịt x 20…) để tính chỉ số CPI (consumer price
index).

Nếu chỉ số CPI của ngày hôm nay cao hơn so với ngày hơm qua thì xảy ra lạm
phát). Thuật toán này sẽ xem xét mỗi cặp biến/giá trị (như là sản phẩm/xe đạp) là
một item. Một Itemset là một tổ hợp các item trong một transaction đơn lẻ. Thuật
toán sẽ lướt qua tập hợp dữ liệu để cố gắng tìm kiếm các itemset nhằm vào việc xuất
hiện trong nhiều transaction. Tham chiếu Support sẽ định nghĩa có bao nhiêu
transaction mà itemset sẽ xuất hiện trước khi nó được cho là quan trọng.

Ví dụ: một itemset phổ biến có thể gồm{Gender="Male", Marital Status =
"Married", Age="30-35"}. Mỗi itemset có một kích thước là tổng số của mỗi item mà
nó có (ở ví dụ này là 3). Thường thì những mơ hình kết hợp làm việc dựa vào các tập
dữ liệu chứa các nếu một bảng ẩn tồn tại trong tập dữ liệu, mỗi khoá ẩn (như một sản
phẩm trong bảng mua bán) được xem như một item. Thuật tốn này cũng tìm các luật
kết hợp với các Itemset. Một luật trong một mơ hình kết hợp kiểu như A,B=>C (kết
hợp với một khả năng có thể xảy ra ). Khi tất cả A, B, C là những Itemset phổ biến.
Dấu “=>”nói rằng C được dự đoán từ A và B. Khả năng giới hạn là một biến mà xác
định khả năng nhỏ nhất tức là khi một luật có thể đựơc xét đến. Khả năng này cũng
được gọi là 1 “sự tin cậy” trong văn phong DataMining. Mô hình kết hợp rất hữu ích
trong cross-sell và collaborative - filtering .


Ví dụ : Bạn có thể sử dụng mơ hình kết hợp để dự đoán các hạng mục mà
khách hàng muốn mua dựa vào các danh mục hàng hoá khác trong basket của họ.

- Microsoft Sequence Clustering:

Thuật toán này phân tích các đối tượng dữ liệu có trình tự, các dữ liệu này
bao các sự kiện của một trật tự rõ ràng. Bằng cách phân tích sự chuyển tiếp giữa các
tình trạng của một chuỗi, thuật tốn có thể dự đốn tương lai trong các chuỗi có quan
hệ với nhau. Thuật toán này là sự pha trộn giữa thuật toán chuỗi và thuật toán liên
cung. Thuật toán nhóm tất cả các sự kiện phức tạp với các thuộc tính trình tự vào một
phân đoạn dựa vào sự giống nhau của những chuỗi này. Một đặc trưng sử dụng chuỗi
sự kiện cho thuật tốn này là phân tích khách hàng web của một cổng thông tin
(portal site). Một cổng thông tin là một tập các tên miền liên kết như: tin tức, thời

12

tiết, giá tiền, mail, và thể thao…Mỗi khách hàng được liên kết với một chuỗi các
click web trên các tên miền này.

Thuật tốn này có thể nhóm các khách hàng web về một hoặc nhiều nhóm dựa
trên kiểu hành động của họ. Những nhóm này có thể được trực quan hố, cung cấp
một bản chi tiết để biết được mục đích sử dụng trang web này của khách hàng.
- Microsoft Neural Network:

Trong MS SQL server 2005 AS, thuật toán này tạo các mơ hình khai thác hồi
quy và phân loại bằng cách xây dựng đa lớp perception của các neuron. Giống như
thuật toán cây quyết định, đưa ra mỗi tình trạng của thuộc tính có thể dự đốn. Thuật
tốn này tính tốn khả năng có thể của mỗi trạng thái có thể của thuộc tính input.
Thuật tốn sẽ xử lý tồn thể các trường hợp. Sự lặp đi lặp lại so sánh các dự đoán

phân loại của các trường với sự phân loại của các trường đã biết.

Sai số từ sự phân loại ban đầu (của phép lặp ban đầu) của toàn bộ các trường
hợp được trả về network và được sử dụng để thay đổi sự thực thi của network cho
các phép lặp kế theo,v.v.. Có thể sau đó sử dụng những khả năng này để dự đốn kết
quả của các thuộc tính dự đốn, dựa trên thuộc tính input. Một sự khác biệt chính
giữa thuật toán này và thuật toán Cây quyết định là các kiến thức xử lí là những tham
số network tối ưu nhằm làm nhỏ nhất các lỗi có thể trong khi cây quyết định tách các
luật, mục đích để cực đại hố thơng tin có lợi. Thuật tốn này hỗ trợ cả các thuộc tính
rời rạc và liên tục.

13

Chương 2: THUẬT TOÁN APPRIORI VÀ CÁC THUẬT TOÁN
XUẤT PHÁT TỪ APPRIORI KHAI PHÁ LUẬT KẾT HỢP

2.1. Thuật toán Appriori
Apriori là thuật toán khả sinh được đề xuất bởi R. Agrawal và R. Srikant vào năm

1993 để khai thác các tập item đối với các luật kết hợp kiểu bool. Tên của thuật toán dựa
trên việc thuật toán sử dụng tri thức trước (prior knowledge) của các thuộc tính tập item
phổ biến, chúng ta sẽ thấy sau đây. Apriori dùng cách tiếp cận lặp được biết đến như tìm
kiếm level-wise, với các tập kitem được dùng để thăm dò các tập (k+1) item. Đầu tiên, tập
các tập một item phổ biến được tìm thấy bằng cách quét cơ sở dữ liệu để đếm số lượng từng
item, và thu thập những item thỏa mãn độ hỗ trợ tối thiểu. Tiếp theo, được dùng để tìm, tập
các tập hai item phổ biến, nó được dùng để tìm L, và cứ thế tiếp tục, cho tới khi tập kitem
phổ biến khơng thể tìm thấy. Việc tìm kiếm cho mỗi L địi hỏi một lần quét toàn bộ cơ sở dữ
liệu. Trước khi đi vào chi tiết của thuật toán Apriori đầu tiên chúng ta sẽ tìm hiểu xác định
một vài thuật ngữ phổ biến được sử dụng trong thuật toán.


Tính chất Apriori: Tất cả các tập con không công của một tập item phổ biến cũng
phải là phổ biến. Tính chất Apriori này dựa theo nhận xét sau. Theo định nghĩa, nếu một tập
item không thỏa ngưỡng ngang độ hỗ trợ tối thiểu, thì khơng là phổ biến, do đó. Nếu một
item A được thêm vào tập item, thi tập item được tạo thành (vd, IU A) khơng thể xuất hiện
thường xun hơn một. Tính chất này thuộc về loại đặc biệt của các thuộc tính gọi là khơng
đơn điệu (antimonotone) trong nghĩa rằng nếu một tập không thể qua một cuộc kiểm tra, tất
cả các tập cha (superset) của nó cũng sẽ thất bại với một cuộc kiểm tra tương tự. Đó gọi là
khơng đơn điệu là vì thuộc tính này là đơn điệu (monotonic) trong ngữ cảnh của việc tham
bại một cuộc kiểm tra. Thuật toán Apriori:

Apriori dùng cách tiếp cận lặp được biết đến như tìm kiếm level-wise, với các tập
kitem được dùng để thăm dò các tập (k+1) item. Đầu tiên, tập (frequent mơt- itemsets) phổ
biến một được tìm thấy ký hiệu là C. Bước tiếp theo là tính support có nghĩa là sự xuất hiện
của các item trong cơ sở dữ liệu. Điều này địi hỏi phải duyệt qua tồn bộ cơ sở dữ liệu. Sau
đó, bước cắt tỉa được thực hiện trên C trong đó những item được so sánh với thông số
minimum support. Những item thỏa điều kiện minimum support mới được xem xét cho tiến
trình tiếp theo ký hiệu là L. Sau đó, bước phát sinh các bộ ứng viên được thực hiện trong đó
tập phổ biến hai được tạo ra ký hiệu là C. Một lần nữa, cở sở dữ liệu được duyệt để tính tốn

14

support của hai tập phổ biến. Theo support, các bộ ứng viên tạo ra được kiểm tra và chỉ
những tập phổ biến nào thỏa điều kiện minimum support thì tiếp tục được sử dụng tạo ra bộ
ứng viên tập phổ biến ba. Bước trên tiếp tục cho đến khi không có tập phổ biến hoặc bộ ứng
viên có thể được tạo ra.

Vi dụ 1: Cho CSDL ( Dữ liệu mẫu của AllElectronices) với 9 giao dịch và độ hỗ trợ
(minsup = 2/9 ) được thể hiện trong bảng sau:

TID List of item_ids

T100 |1, |2, |5
T200 |2, |4
T300 |2, |3
T400 |1, |2, |4
T500 |1, |3
T600 |2, |3
T700 |1, |3
T800 |1, |2, |3, |5
T900 |1, |2, |3

Duyệt qua cơ sở dữ liệu để tìm tập mục thường xuyên và sắp xếp giảm dần
theo độ hỗ trợ L = {|2:7, |1:6, |3:6, |4:2, |5:2}

15

Quét D để tìm C1 L1
Support count
Cho các item Sup. count
6
itemset Sup. count Tìm các frequent item itemset 7
{|1} 6 {|1} 6
{|2} 7 {|2} 2
{|3} 6 {|3} 2
{|4} 2 {|4}
{|5} 2 {|5}

L2 C2 C
Quét D để tìm 2
itemset Sup.count Tìm các frequent itemset Sup.count Support itemset
{|1, |2} 4 itemset {|1, |2} 4

{|1, |3} 4 {|1, |3} 4 count {|1, |2}
{|1, |5} 2 C3 sau khi tỉa {|1, |4} 1
{|2, |3} 4 các itemset sẽ {|1, |5} 2 {|1, |3}
{|2, |4} 2 không là frequet {|2, |3} 4
{|2, |5} 2 {|2, |4} 2 {|1, |4}
{|2, |5} 2
{|3, |4} 0 {|1, |5}
{|3, |5} 1
{|4, |5} 0 {|2, |3}

{|2, |4}

{|2, |5}

Sinh C3 từ L2 {|3, |4}

{|3, |5}

{|4, |5}

C3 C3 Quét D để tìm support C3
itemset count itemset Sup.count
{|1, |2, |3} Itemset {|1, |2, |3} 2
{|1, |2, |5} {|1, |2, |3} {|1, |2, |5} 2
{|1, |3, |5} {|1, |2, |5}
{|2, |3,|4}
{|2, |3, |5}
{|2, |4, |5}

itemset Sup.count Tìm các

{|1, |2, |3} 2 frequent itemset
{|1, |2, |5} 2
{|1, |2, |3} 2

Hình2.1 Các bước thực hiện của thuật toán Apriori với min_sup = 2/9 = 22%
16

Ví dụ 2: Minh họa thuật tốn Apriori
Cho CSDL giao tác D và I = { A, B, C, D, E }. Tìm các tập phổ biến thỏa minsup = 50%

Bảng2.1. Cơ sở dữ liệu D

TID Các mục

1 { A, C, D }

2 { B, C, E }

3 { A, B, C, E }

4 { B, E }

Áp dụng thuật toán Apriori: ta thực hiện từng bước như sau:
- Quét tồn bộ D: ta tính được độ hỗ trợ của các mục.

Bảng2.2. C1 với độ hỗ trợ của các mục.

1-itemset Count-support
{ A } 2 – 50%
{ B } 3 – 75%

{ C } 3 – 75%
{ D } 1 – 25%
{ E } 3 – 75%

- Xóa bỏ các mục có support < minsup: ta được tập L1 với các 1-itemset phổ biến

Bảng2.3. Bảng L1 với các 1-itemset phổ biến

1-itemset Count-support
{ A } 2 – 50%
{ B } 3 – 75%
{ C } 3 – 75%
{ E } 3 – 75%

17

Bảng2.4. Bảng tập C2 với các 2-itemset ứng cử

2-itemset
{ A, B }
{ A, C }
{ A, E }
{ B, C }
{ B, E}
{ C, E }

- Thực hiện cắt tỉa: ta tiếp tục thu được tập C2 với các 2-itemset ứng cử
Bảng2.5. Bảng C2 sau khi tỉa
2-itemset
{ A, B }

{ A, C }
{ A, E }
{ B, C }
{ B, E}
{ C, E }

- Qt tồn bộ D: ta tính được độ hỗ trợ của các các 2-itemset ứng cử
Bảng2.6. Độ hỗ trợ của mỗi tập ứng cử trong bảng C2

2-itemset Count-support
{ A, B } 1 – 25%
{ A, C } 2 – 50%
{ A, E } 1 – 25%
{ B, C } 2 – 50%
{ B, E} 3 – 75%
{ C, E } 2 – 50%

- Xóa bỏ các mục có support < minsup: ta được tập L2 với các 2-itemset phổ biến

18

Bảng2.7. L2 với các 2-itemset phổ biến

2-itemset Count-support
{ A, C } 2 – 50%
{ B, C } 3 – 75%
{ B, E} 2 – 50%
{ C, E } 2 – 50%

- Kết nối L2 với L2: ta được tập C3 với các 3-itemset ứng cử

Bảng2.8. Bảng C3 với các 3-itemset ứng cử
3-itemset
{ A, B, C }
{ A, C, E }
{ B, C, E}

- Thực hiện cắt tỉa: ta được tập C3 với các 3-itemset ứng cử sau
Khi bỏ đi hai tập mục ứng cử không thỏa mãn ngưỡng hỗ trợ tối thiểu cho trước.

Bảng2.9. Bảng C3 sau khhi tỉa

3-itemset
{ B, C, E}

- Quét toàn bộ D: ta tính được độ hỗ trợ của các 3-itemset ứng cử

Bảng2.10.Độ hỗ trợ của mỗi tập ứng cử trong bảng C3

3-itemset Count-support
{ B, C, E} 2 – 50%

19

2.2. Thuật toán Apriori – TID
Thuật toán Apriori - TID là phần mở rộng theo hướng tiếp cận cơ bản của thuật tốn

Apriori. Thay vì dựa vào cơ sở dữ liệu thuật toán Apriori - TID biểu diễn bên trong mỗi
giao dịch bởi các candidate hiện hành.

Như ta đã thấy, thuật tốn Apriori địi hỏi phải quét toàn bộ cơ sở dữ liệu để tính độ

hỗ trợ cho các tập hợp ứng cử viên ở mỗi bước. Đây là một sự lãng phí lớn. Dựa trên tư
tưởng ước đoán và đánh giá độ hỗ trợ, Agrawal đề nghị cải tiến Apriori theo hướng chỉ phải
quét Cơ sở dữ liệu lần đầu tiên, sau đó tính độ hỗ trợ cho các tập hợp một phần tử. Từ bước
thứ hai trở đi, Thuật toán Apriori - TID nhờ lưu trữ song song cả ID của giao dịch và các
ứng cử viên, có thể đánh giá, ước lượng độ hỗ trợ mà khỏi phải quét lại toàn bộ cơ sở dữ
liệu.

Nội dung thuật toán Apriori - TID.
Input: Tập các giao dịch D, minsup.
Output: Tập answer gồm các tập mục thường xuyên trên D.
Method:
L1 = (large 1 – itemset);
C1 = database D;
For(k=2; Lk-1 ≠ Φ; k ++) do
Begin
Ck = Φ;
For all entries t € Ck-1 do
Begin
//Xác định các candidate itemset.
//Được chứa trong giao dịch với định danh t.TID
C1 = { c € C1|(c-c[K]) € t.set_of_itemset
Forall candidate c € Ct do
c.count++;
20


×