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

Sử dụng luật kết hợp khai phá dữ liệu tai nạn giao thông.PDF

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 (842.17 KB, 73 trang )

đại học công nghệ
đại học quốc gia hà nội
=====o0o=====


Luận văn thạc sỹ


Đề tài :
sử dụng luật kết hợp
khai phá dữ liệu tai nạn giao thông


HọC viên Thực hiện : nguyễn việt trung
Giáo viên hớng dẫn : pgs.TS. Ngô quốc tạo




Hà nội 01/2007


MỤC LỤC
Lời cảm ơn 3
Danh mục các cụm từ viết tắt trong luận văn 4
Mở đầu 5
Chƣơng 1: TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU 7
1. Định nghĩa: 7
2. Các dạng dữ liệu có thể khai phá: 7
3. Quá trình khai phá dữ liệu: 8
4. Các hƣớng tiếp cận cơ bản và kỹ thuật áp dụng: 10


5. Lĩnh vực ứng dụng: 10
6. Một số phƣơng pháp khai phá dữ liệu: 11
6.1. Phƣơng pháp suy diễn và quy nạp: 11
6.2. Cây quyết định và luật: 11
6.3. Phân nhóm và phân đoạn: 11
6.4. Mạng neural: 12
6.5. Giải thuật di truyền: 12
Chƣơng 2: LUẬT KẾT HỢP VÀ THUẬT TOÁN TÌM LUẬT KẾT HỢP 14
1. Tổng quan về luật kết hợp: 14
2. Một số khái niệm cơ bản: 15
2.1 Luật kết hợp: 15
2.2. Độ hỗ trợ của một tập mục (itemset): 15
2.3. Tập mục phổ biến (frequent itemset): 15
2.4. Các độ đo của một luật: 15
3. Bài toán khai phá dữ liệu bằng luật kết hợp và các pha thực hiện: 16
4. Một số tính chất của tập mục phổ biến và luật kết hợp: 18
4.1. Một số tính chất với tập mục phổ biến: 18
4.2. Một số tính chất của luật kết hợp: 19
5. Các loại luật kết hợp: 20
6. Các thuật toán khai phá dữ liệu nhờ luật kết hợp: 21
6.1. Khai phá luật kết hợp Booleal đơn chiều từ cơ sở dữ liệu tác vụ: 21
6.1.1. Tìm tập mục phổ biến dùng phƣơng pháp sinh các ứng cử - TT Apriori 21
6.1.2. Nâng cao hiệu quả của thuật toán Apriori 29
6.1.3. Thuật toán sinh các luật kết hợp từ tập mục phổ biến: 32


2
6.1.4. Khai phá tập mục phổ biến không sinh các ứng cử: 34
6.2. Khai phá luật kết hợp định lƣợng 43
Chƣơng 3: ỨNG DỤNG LUẬT KẾT HỢP KHAI PHÁ DỮ LIỆU TNGT 45

1. Mục đích và yêu cầu của bài toán 45
2. Phân tích thiết kế chƣơng trình và cài đặt các thuật toán 46
3. Các module của chƣơng trình: 63
4. Kết quả đạt đƣợc và hƣớng phát triển ứng dụng 70
Kết luận: 71
Tài liệu tham khảo: 72


3


LỜI CẢM ƠN

Lời đầu tiên em xin trân trọng cảm ơn tới Phó giáo sƣ, tiến sĩ Ngô Quốc Tạo đã
hƣớng dẫn, trợ giúp em định hƣớng phƣơng pháp nghiên cứu. Em cũng xin trân trọng
cảm ơn Phó giáo sƣ, Tiến sỹ Vũ Đức Thi đã giảng dạy cũng nhƣ góp ý tạo điều kiện cho
em hoàn thành luận văn này.
Bên cạnh đó, em cũng xin chân thành các thầy cô giáo trƣờng Đại học Công nghệ
đã giảng dạy và tạo mọi điều kiện thuận lợi, động viên giúp đõ em trong suốt những năm
học vừa qua.
Qua đây, tôi xin chân thành cảm ơn gia đình và các đồng nghiệp đã giúp đỡ cũng
nhƣ hỗ trợ tôi trong công tác để tôi có thể hoàn thành luận văn này.



HỌC VIÊN



Nguyễn Việt Trung






4

DANH MỤC CÁC TỪ VIẾT TẮT TRONG LUẬN VĂN

- TNGT: Tai nạn giao thông
- CSDL: Cơ sở dữ liệu
- TT: Thuật toán
- ĐKPT: Điều khiển phƣơng tiện
- HKBH: Hành khách bộ hành
- GPLX: Giấy phép lái xe
- Hạng GPLX: Hạng giấy phép lái xe
- TTTT: Tình trạng thƣơng tật



5
MỞ ĐẦU

Cục Cảnh sát giao thông đƣờng bộ - đƣờng sắt (C26) là đơn vị nghiệp vụ của
ngành Công an có chức năng quản lý, giám sát các hoạt động giao thông liên quan tới
đƣờng bộ đƣờng sắt nhằm đảm bảo sự thông suốt về giao thông, giữ gìn an ninh trật tự
giao thông trên các tuyến đƣờng bộ, đƣờng sắt. Nằm trong xu thế tin học hóa công tác
quản lý nói chung và quản lý hành chính nói riêng, Cục C26 đã tiến hành tin học công
tác quản lý Đăng ký mô tô – ô tô, Quản lý vi phạm hành chính an toàn giao thông và
quản lý dữ liệu tai nạn giao thông. Với phạm vi quản lý rộng khắp cả nƣớc và theo thời

gian các dữ liệu này ngày càng nhiều lên, trở thành kho dữ liệu khổng lồ phục vụ công
tác nghiên cứu. Vần đề đặt ra ở đây là làm thế nào để chắt lọc thông tin nói chung và tri
thức nói riêng từ kho dữ liệu khổng lồ này phục vụ công tác nghiệp vụ của Ngành nói
chung và của cục C26 nói riêng. Để trả lời câu hỏi trên, ta sẽ ứng dụng kỹ thuật khai phá
dữ liệu nhằm phát hiện các quy luật, thông tin ẩn chứa trong khối dữ liệu khổng lồ đó.
Khai phá dữ liệu là quá trình tìm kiếm các mẫu mới, những thông tin tiềm ẩn
mang tính dự đoán trong các khối dữ liệu lớn. Những công cụ khai phá dữ liệu có thể
phát hiện những xu hƣớng trong tƣơng lai, các tri thức mà khai phá dữ liệu mang lại cho
các doanh nghiệp có thể ra các quyết định kịp thời và trả lời những câu hỏi trong lĩnh
vực kinh doanh mà trƣớc đây tốn nhiều thời gian để xử lý. Với ƣu điểm trên, Data
mining đã chứng tỏ đƣợc tính hữu dụng của nó trong môi trƣờng kinh doanh đầy tính
cạnh tranh ngày nay và đƣợc ứng dụng rộng rãi trong các lĩnh vực thƣơng mại, tài chính,
điều trị y học, giáo dục, viễn thông v.v.
Có nhiều phƣơng pháp khai phá dữ liệu mà Luật kết hợp là một trong số đó với
ƣu điểm là đơn giản nhƣng tƣơng đối hiệu quả.
Với phạm vi một luận văn, ở đây em chọn hƣớng nghiên cứu sử dụng Luật kết
hợp để khai phá dữ liệu tai nạn giao thông. Luận văn đƣợc xây dựng dựa trên một số
nghiên cứu chủ yếu trong lĩnh vực khai phá dữ liệu ở một số bài báo, tài liệu đƣợc công
bố trên các tạp chí chuyên ngành và trên Internet.
Nội dung của luận văn bao gồm các chƣơng sau:
Chương 1: Tổng quan về khai phá dữ liệu
Chƣơng này trình bày tổng quan về khai phá dữ liệu và khai phá dữ liệu nhằm
phát hiện tri thức từ một kho dữ liệu; hƣớng tiếp cận, kỹ thuật áp dụng và lĩnh vực ứng
dụng.


6
Chương 2: Luật kết hợp và thuật toán tìm luật kết hợp
Trong chƣơng này ta đi tìm hiểu các kỹ thuật, thuật toán khai phá dữ liệu sử dụng
luật kết hợp từ thuật toán đầu tiên Apriori tới các kỹ thuật cải tiến của thuật toán này

nhằm nâng cao hiệu quả của quá trình tính toán.
Chương 3: Ứng dụng luật kết hợp để khai phá dữ liệu tai nạn giao thông
Chƣơng này trình bày bài toán và ứng dụng luật kết hợp để khai phá dữ liệu tai
nạn giao thông. Nội dung trình bày trong chƣơng này bao gồm mục tiêu, yêu cầu của bài
toán, kết quả phân tích, thiết kế và xây dựng chƣơng trình.


7
Chƣơng 1:
TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU
Khai phá dữ liệu là một khái niệm ra đời vào những năm cuối của thập kỹ 1980.
Nó là quá trình khám phá những thông tin tiềm ẩn trong các cơ sở dữ liệu và có thể xem
nhƣ là một bƣớc trong quá trình khám phá tri thức. Khai phá dữ liệu là giai đoạn quan
trọng nhất trong tiến trình khai phá tri thức từ cơ sở dữ liệu, các tri thức này hỗ trợ trong
việc ra quyết định. Để hình dung vấn đề này ta có thể sử dụng một ví dụ đơn giản nhƣ
sau: Khai phá dữ liệu đƣợc ví nhƣ tìm một cây kim trong đáy bể (biển). Trong ví dụ này,
cây kim là một mảnh nhỏ tri thức hoặc một thông tin có giá trị và đáy bể (biển) là một
kho cơ sở dữ liệu rộng lớn. Nhƣ vậy, những thông tin có giá trị tiềm ẩn trong kho cơ sở
dữ liệu sẽ đƣợc chiết xuất ra và sử dụng một cách hữu ích nhờ khai phá dữ liệu. Chức
năng của khai phá dữ liệu gồm có gộp nhóm phân loại, dự báo, dự đoán và phân tích các
liên kết. Năm 1989 Fayyad, Smyth và Piatestsky-Shapiro đã dùng khái niệm Phát hiện
tri thức từ cơ sở dữ liệu. Trong đó, khai phá dữ liệu là một giai đoạn rất đặc biệt trong
toàn bộ quá trình, nó sử dụng các kỹ thuật để tìm ra các mẫu từ dữ liệu.
1. Định nghĩa:
Khai phá dữ liệu là quá trình tìm kiếm các mẫu mới, những thông tin tiềm ẩn
mang tính dự đoán trong các khối dữ liệu lớn.
Những công cụ khai phá dữ liệu có thể phát hiện những xu hƣớng trong tƣơng lai,
các tri thức mà khai phá dữ liệu mang lại cho các doanh nghiệp, các cơ quan quản lý
chính sách có thể ra các quyết định kịp thời và trả lời những câu hỏi trong lĩnh vực kinh
doanh mà trƣớc đây tốn nhiều thời gian để xử lý.

2. Các dạng dữ liệu có thể khai phá:
Có rất nhiều kiểu dữ liệu có thể đƣợc khai phá và các dạng dữ liệu điển hình có
thể đƣợc khai phá là
2
:
- Cơ sở dữ liệu quan hệ: là các cơ sở dữ liệu tác nghiệp đƣợc tổ chức theo mô
hình dữ liệu quan hệ. Hầu hết các hệ quản trị cơ sở dữ liệu đều hỗ trợ dữ liệu dạng này
nhƣ Oracle, SQL Server, MS Access,
- Cơ sở dữ liệu đa chiều (data warehouse, data mart): là các kho dữ liệu đƣợc tập
hợp, chọn lọc từ nhiều nguồn dữ liệu khác nhau. Dạng dữ liệu này mang tính lịch sử (tức


8
Knowledge
Pattern
Discovery
Transformed
Data
Cleansed
Preprocesse
d
Preparated

Data









Target
Data





Gatherin
g



Data Mining

Selection

Transformat
ion

Cleansing Pre-
processing
Preparation


Envalution of
Rule




Internet,
.
là có tính thời gian) và chủ yếu phục vụ cho quá trình phân tích cũng nhƣ khai phá tri
thức nhằm hỗ trợi cho việc ra quyết định
- Cơ sở dữ liệu dạng giao dịch (transactional database): là dạng cơ sở dữ liệu tác
nghiệp nhƣng bản ghi thƣờng là các giao dịch. Dạng dữ liệu này thƣờng phổ biến trong
lĩnh vực thƣơng mại và ngân hàng.
- Cơ sở dữ liệu quan hệ - đối tƣợng : là dạng cơ sở dữ liệu lai giữa hai mô hình
quan hệ và hƣớng đối tƣợng.
- Dữ liệu không gian và thời gian (spatial, time – series data): là dạng dữ liệu có
tích hợp thuộc tính về không gian nhƣ dữ liệu bản đồ hoặc dữ liệu tích hợp thuộc tính về
thời gian nhƣ dữ liệu chứng khoán.
- Cơ sở dữ liệu đa phƣơng tiện: là dạng dữ liệu âm thanh, hình ảnh và phim ảnh,
text & www, Dạng dữ liệu này phổ biến trên Internet do sự ứng dụng rộng rãi của nó.
3. Quá trình khai phá dữ liệu:
Quá trình khai phá dữ liệu sẽ tiến hành qua 6 giai đoạn nhƣ hình 1:
















Hình 1: Quá trình khai phá dữ liệu


9
Bắt đầu của quá trình là kho dữ liệu thô và kết thúc với tri thức đƣợc chiết xuất ra.
Về lý thuyết thì có vẽ rất đơn giản nhƣng thực sự đây là một quá trình rất khó khăn gặp
phải rất nhiều vƣớng mắc nhƣ: quản lý các tập dữ liệu, phải lặp đi lặp lại các quá trình,
Gom dữ liệu (Gathering)
Tập hợp dữ liệu là bƣớc đầu tiên trong quá trình khai phá dữ liệu. Đây là bƣớc đƣợc
khai thác trong một cơ sở dữ liệu, một kho dữ liệu và thậm chí các dữ liệu từ các nguồn
ứng dụng Web.
Trích lọc dữ liệu (Selection)
Ở giai đoạn này dữ liệu đƣợc lựa chọn hoặc phân chia theo một số tiêu chuẩn nào
đó, ví dụ chọn tất cả những ngƣời có tuổi đời từ 25 – 35 và có trình độ đại học.
Làm sạch, tiền xử lý và chuẩn bị trước dữ liệu (Cleansing, Pre-processing and
Preparation)
Giai đoan thứ ba này là giai đoạn hay bị sao lãng, nhƣng thực tế nó là một bƣớc rất
quan trọng trong quá trình khai phá dữ liệu. Một số lỗi thƣờng mắc phải trong khi gom
dữ liệu là tính không đủ chặt chẻ, logíc. Vì vậy, dữ liệu thƣờng chứa các giá trị vô nghĩa
và không có khả năng kết nối dữ liệu. Ví dụ: tuổi = 673. Giai đoạn này sẽ tiến hành xử lý
những dạng dữ liệu không chặt chẽ nói trên. Những dữ liệu dạng này đƣợc xem nhƣ
thông tin dƣ thừa, không có giá trị. Bởi vậy, đây là một quá trình rất quan trọng vì dữ
liệu này nếu không đƣợc “làm sạch - tiền xử lý - chuẩn bị trƣớc” thì sẽ gây nên những
kết quả sai lệch nghiêm trọng.
Chuyển đổi dữ liệu (Transformation)
Tiếp theo là giai đoạn chuyển đổi dữ liệu, dữ liệu đƣa ra có thể sử dụng và điều
khiển đƣợc bởi việc tổ chức lại nó. Dữ liệu đã đƣợc chuyển đổi phù hợp với mục đích
khai thác.

Phát hiện và trích mẫu dữ liệu (Pattern Extraction and Discovery)
Đây là bƣớc mang tính tƣ duy trong khai phá dữ liệu. Ở giai đoạn này nhiều thuật
toán khác nhau đã đƣợc sử dụng để trích ra các mẫu từ dữ liệu. Thuật toán thƣờng dùng
là nguyên tắc phân loại, nguyên tắc kết hợp hoặc các mô hình dữ liệu tuần tự,. v.v.
Đánh giá kết quả mẫu (Evaluation of Result)
Đây là giai đoạn cuối trong quá trình khai phá dữ liệu. Ở giai đoạn này, các mẫu dữ
liệu đƣợc chiết xuất ra bởi phần mềm khai phá dữ liệu. Không phải bất cứ mẫu dữ liệu
nào cũng đều hữu ích, đôi khi nó còn bị sai lệch. Vì vậy, cần phải ƣu tiên những tiêu
chuẩn đánh giá để chiết xuất ra các tri thức (Knowlege) cần chiết xuất ra.


10
Trên đây là 6 giai đoạn trong quá trình khai phá dữ liệu, trong đó giai đoạn 5 là giai
đoạn đƣợc quan tâm nhiều nhất hay còn gọi đó là khai phá dữ liệu.
4. Các hƣớng tiếp cận cơ bản và kỹ thuật áp dụng:
Khai phá dữ liệu có thể đƣợc phân chia theo các hƣớng tiếp cận chính sau:
- Phân lớp và dữ đoán (classification and prediction): xếp một đối tƣợng vào một
trong những lớp đã biết. Ví dụ: phân lớp vùng địa lý theo dữ liệu thời tiết. Đối với hƣớng
tiếp cận này thƣờng áp dụng một số kỹ thuật nhƣ học máy, cây quyết định, mạng noron
nhân tạo Hay lớp bài toán này còn đựoc gọi là học có giám sát.
- Phân cụm (clustering/segmentation): Sắp xếp các đối tƣợng theo từng cụm nhƣng
số lƣợng và tên các cụm chƣa biết trƣớc. Lớp bài toán phân cụm còn đựơc gọi là học
không giám sát.
- Luật kết hợp(Association rules): là dạng biểu diễn tri thức ở dạng khá đơn giản. Ví
dụ: “70% số vụ tai nạn xe máy do thanh niên điều khiển thì có tới 80% là do phóng
nhanh vƣợt ẩu”. Hƣớng tiếp cận này đƣợc ứng dụng trong nhiều lĩnh vực nhƣ kinh
doanh, y học, giáo dục
- Khai phá chuỗi theo thời gian: Cũng tƣơng tự nhƣ khai phá dữ liệu bằng 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 bởi chúng có tính dự đoán cao.

- Mô tả khái niệm (concept description and summarization): Lớp bài toán này 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
5. Lĩnh vực ứng dụng:
Phát hiên tri thức và khai phá dữ liệu liên quan đến nhiều ngành, nhiều lĩnh vực
nhƣ: 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 các lĩnh vực thống kê, sử dung 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,…
Các ứng dụng của phát hiện tri thức và khai phá dữ liệu:
 Thông tin thƣơng mại.
 Phân tích dữ liệu marketing, khách hàng.
 Phân tích đầu tƣ.
 Phê duyệt vay vốn.


11
 Phát hiện gian lận.
 Thông tin kỹ thuật.
 Điều khiển và lập lịch trình,
6. Một số phƣơng pháp khai phá dữ liệu:
6.1. Phƣơng pháp suy diễn và quy nạp:
Phƣơng pháp suy diễn: Rút ra thông tin là kết quả logic từ các thông tin nằm
trong cơ sở dữ liệu dựa trên các quan hệ trong dữ liệu. Phƣơng pháp suy diễn dựa trên
các sự kiện chính để suy ra các tri thức mới từ các thông tin cũ. Phƣơng pháp này thƣờng
sử dụng luật suy diễn để trích chọn các mẫu.
Phƣơng pháp quy nạp: Các thông tin đƣợc suy ra từ cơ sở dữ liệu bằng cách tự
tìm kiếm, tạo mẫu và sinh ra tri thức chứ không bắt đầu với các tri thức đã biết trƣớc đó.
6.2. Cây quyết định và luật:
Cây quyết định: Cây quyết định là một phƣơng pháp mô tả tri thức dạng đơn giản
nhằm phân các đối tƣợng dữ liệu thành một số lớp nhất định. Các nút của cây đƣợc gán

nhãn là tên các thuộc tính, các cạnh đƣợc gán nhãn là các giá trị có thể là thuộc tính, các
lá miêu tả các lớp khác nhau. Các đối tƣợng đƣợc phân lớp theo các đƣờng đi trên cây
qua các cạnh tƣơng ứng với giá trị của các thuộc tính của đối tƣợng lá.
Tạo luật: Các luật đƣợc tạo ra nhằm suy diễn cho một số mẫu dữ liệu có ý nghĩa
về mặt thống kê. Các luật có dạng Nếu P thì Q, trong đó P đƣợc gọi là mệnh đề đúng với
một phần dữ liệu trong cơ sở dữ liệu và Q là mệnh đề dự đoán.
Cây quyết định là phƣơng pháp dùng trong các bài toán phân loại dữ liệu theo
một tiêu chuẩn nào đó dựa trên mức độ khác nhau của thuộc tính. Cây quyết định và luật
có ƣu điểm là hình thức miêu tả đơn giản, mô hình suy diễn khá dễ hiểu đối với ngƣời sử
dụng. Tuy nhiên, giới hạn của nó là miêu tả cây và luật chỉ có thể biểu diễn đƣợc một số
dạng chức năng dẫn tới giới hạn về độ chính xác của mô hình.
6.3. Phân nhóm và phân đoạn:
Kỹ thuật phân nhóm và phân đoạn là những kỹ thuật phân chia dữ liệu sao cho
mỗi phần hoạc mỗi nhóm giống nhau theo một tiêu chuẩn nào đó. Mối quan hệ thành
viên của các nhóm có thể dựa trên mức độ giống nhau của các thành viên và từ đó xây
dựng nên các luật ràng buộc giữa các thành viên trong nhóm. Một kỹ thuật phân nhóm


12
khác là xây dựng nên các hàm đánh giá các thuộc tính của các thành phần nhƣ là các
hàm của các tham số của các thành phần. Kỹ thuật này đƣợc gọi là kỹ thuật phân hoạch
tối ƣu
Quá trình khai phá dữ liệu sử dụng kỹ thuật này tạo ra các mẫu có chung một
hoặc nhiều thuộc tính nào đó chẳng hạn nhƣ đối với dữ liệu tai nạn giao thông thì có thể
đó là thuộc tính nguyên nhân, độ tuổi, loại phƣơng tiện. Khi các mẫu đƣợc thiết lập,
chúng có thể đƣợc sử dụng để tái tạo các tập dữ liệu dễ hiểu hơn đồng thời cung cấp các
nhóm dữ liệu cho việc phân tích.
6.4. Mạng neural:
Mạng neural là một phƣơng pháp khai phá dữ liệu dựa trên cấu trúc toán học với
khả năng học trên mô hình hệ thần kinh con ngƣời.

Mạng neural có thể đƣa ra ý nghĩa từ các dữ liệu phức tạp hoặc không chính xác
và có thể đƣợc sử dụng để chiết suất các mẫu và phát hiện xu hƣớng quá phúc tạp mà
cong ngƣời cũng nhƣ các kỹ thuật máy tính khác không thể phát hiện đƣợc. Ƣu điểm của
phƣơng pháp này là tạo ra các mô hình dự đoán có độ chính xác cao có thể áp dựng đƣợc
cho nhiều bài toán khác nhau đáp ứng đƣợc các nhiệm vụ đặt ra của khai phá dữ liệu nhƣ
phân lớp, phân nhóm, mô hình hóa, dự báo,
Mẫu chiết xuất bằng mạng neural đƣợc thể hiện ở các nút đầu của mạng. Mạng
neural sử dụng các hàm số chứ không sử dụng các hàm biểu tƣợng để tính mức tích cực
của các nút đầu ra và cập nhatạ các trọng số của nó.
Đặc điểm của mạng neural là không cần gia công dữ liệu nhiều trƣớc khi bắt đầu
quá trình học nhƣ các kỹ thuật khác. Tuy nhiên để có thể sử dụng mạng neural có hiêu
quả cần phải xác định các yếu tố khicần thiết kế mạng nhƣ:
 Mô hình mạng là gì
 Mạng cần bao nhiêu nút
 Khi nào thì việc học dừng
Ngoài ra còn rất nhiều bƣớc quan tọng cần phải làm để tiền xử lý dữ liệu trƣớc khi đƣa
vào mạng neural để mạng có thể hiểu đƣợc.
6.5. Giải thuật di truyền:
Tƣ tƣởng chính ở đây là áp dụng quy luật chọn lọc trong tự nhiên. Ngƣời ta mô
phỏng tập hợp dữ liệu ban đầu bằng ký tự nhị phân và gọi là những quần thể xuất phát.


13
Bằng các thao tác lai ghép, đột biến chúng ta biến đổi quần thể gene ban đầu và loại bỏ
đi một số gen làm cho số lƣợng gene trong quần thể là không thay đổi. Một hàm thích
nghi đƣợc xây dựng để xác định mức độ thích nghi của quần thể theo các giai đoạn. Quá
trình tiến hóa làm cho các quần thể thích nghi ngày càng cao. Về mặt lý thuyết giải thuật
di truyền cho ta lời giải tối ƣu toàn cục. Tuy nhiên ngƣời ta cũgn hạn chế lời giải với một
mức độ thích nghi nào đó để hạn chế số lƣợng các bƣớc xây dựng quần thể.
Nói theo nghĩa rộng thì giải thuật di truyền mô phỏng lại hệ thống tiến hóa trong tự

nhiên, chính xác hơn là các giải thuật chỉ ra tapạ các cá thể đƣợc hình thành, đƣợc ứng
lƣợng và biến đổi nhƣ thế nào.
Giải thuật di truyền là một giải thuật tối ƣu hóa, nó đƣợc sử dụng rất rộng rãi
trong việc tối ƣu hóa các kỹ thuật khai phá dữ liệu trong đó có kỹ thuật mạng neural. Sự
liên hệ của nó với các giải thuật khai phá dữ liệu là ở chỗ tối ƣu hóa là cần thiết để xác
định các giá trị tham số nào tạo ra các luật tốt nhất.


14
Chƣơng 2:
LUẬT KẾT HỢP VÀ THUẬT TOÁN TÌM LUẬT LUẬT KẾT HỢP
1. Tổng quan về luật kết hợp:
Luật kết hợp là một trong những phƣơng pháp khai phá dữ liệu phổ biến, đặc biệt
là việc khai thác những thông tin tiềm ẩn mang tính dự đoán trong các cơ sở dữ liệu lớn.
Phƣơng pháp này ra đời và phát triển mạnh trong những năm gần đây. Lần đầu tiên đƣợc
Rakesh Agrawal, Tomasz Imielinski, Arun Swami đề xuất năm 1993. Sau đó năm 1996
đƣợc Rakesh Agrawal, Heikki Mannila, Ramakrishnan Srikant, Hannu Toivonen,
A.Inkeri Verkanmo tiếp tục phát triển và cải tiến. Đến nay những nghiên cứu về luật kết
hợp tập trung xây dựng thuật toán khai phá luật kết hợp mới, hiệu quả hoặc cải tiến, phát
triển các thuật toán hiệu quả hơn.
Mỗi luật kết hợp đƣợc thể hiện dƣới dạng một mệnh đề gồm có tiền đề và kết
luận. Trong đó tiền đề, kết luận có thể bao gồm một hay nhiều tập mục (thuộc tính đối
tƣợng, trƣờng dữ liệu trong cơ sở dữ liệu). Và đối với mỗi luật ta thƣờng quan tâm tới các độ
đo sau:
Độ hỗ trợ của tập mục: đó là số phần trăm của các tác vụ (giao dịch, bản ghi, hồ
sơ) có chứa tập mục đó.
Độ tin cậy của luật: đó là số phần trăm các tác vụ (giao dịch, bản ghi, hồ sơ) có
chứa các tập mục nằm trong tiền đề thì cũng chứa các tập mục nằm trong phần kết luận của
luật.
Luật kết hợp là những luật có dạng nhƣ:

- 25% nạn nhân bị gãy tay, 15% số vụ xảy ra nạn nhân gãy cả tay lẫn chân.
- 35% nạn nhân phóng nhanh vƣợt ẩu và chấn thƣơng sọ não thì say bia rƣợu,
trong đó 18% số nạn nhân vừa phóng nhanh vừa say bia rƣợu.
Trong các ví dụ nêu trên tiền đề của luật là: "gãy tay", "phóng nhanh vƣợt ẩu và
chấn thƣơng sọ não", trong khi đó "gãy chân" và "say bia rƣợu" là kết luận của luật.
Các con số nhƣ: 15%, 18% là độ hỗ trợ của luật (support ), còn 25% và 35% là độ
tin cậy của luật (confidence).
Thông tin do luật kết hợp mang lại nhƣ trên có một sự khác biệt cơ bản so với
thông tin thu đƣợc từ các câu lệnh truy vấn dữ liệu thông thƣờng. Những thông tin này
thƣờng mang tính đúc kết, những mối liên hệ chƣa đƣợc biết trƣớc và mang tính dự
đoán, dự báo những mỗi liên hệ tiềm ẩn trong cơ sở dữ liệu tác nghiệp.


15
Luật kết hợp là dạng luật khá đơn giản nhƣng mang rất nhiều ý nghĩa. Thông tin
mà dạng luật này đem lại là rất đáng kể và hỗ trợ không nhỏ trong quá trình ra quyết
định. Những luật kết hợp phổ biến và mang nhiều thông tin từ cơ sở dữ liệu nghiệp vụ là
một trong nhiều hƣớng tiếp cận chính của lĩnh vực khai phá dữ liệu.
2. Một số khái niệm cơ bản:
Gọi:
I = {I
1
, I
2,
, I
m
} là tập m thuộc tính riêng biệt, mỗi thuộc tính gọi là một mục.
D là một CSDL quan hệ, trong đó mỗi bản ghi là một tác vụ và chứa các tập mục.
T = {t
1

, t
2
, … t
m
} là tập gồm m tác vụ trong cơ sở dữ liệu D (bản ghi).
2.1 Luật kết hợp:
Luật kết hợp (Association Rule): Một luật kết hợp là quan hệ có dạng X  Y,
trong đó X và Y là các tập mục thỏa mãn điều kiện: X  I, Y  I, X  Y = .
Đối với luật kết hợp X  Y, X đƣợc gọi là tiền đề và Y đƣợc gọi là kết luận của luật.
2.2. Độ hỗ trợ của một tập mục (itemset):
Độ hỗ trợ (Support) của một tập mục X trong tập các tác vụ D, ký hiệu: supp (X)
là tỉ số giữa số tác vụ T (của D) chứa X và tổng số các tác vụ của D.Một cách khái quát
ta có thể biểu diễn nhƣ sau:
Supp(X) =
 
D
XTDT 

Độ hỗ trợ của một tập mục có giá trị giữa 0 và 1, tức là 0  supp(X)  1

X.
2.3. Tập mục phổ biến (frequent itemset):
Tập mục X mà thỏa điều kiện:
supp(X)  minsup (trong đó minsup là một giá trị cho trƣớc)
đƣợc gọi là tập mục phổ biến với độ hỗ trợ cực tiểu minsup.
2.4. Các độ đo của một luật:
Độ hỗ trợ của một luật (support):
Cho luật r = X  Y, độ hỗ trợ của luật r ký hiệu là supp(r) đƣợc xác định nhƣ sau:
supp(r) = supp(XY).




16
Độ tin cậy của một luật (confidence):
Luật r = X  Y có độ tin cậy conf trong cơ sở dữ liệu D nếu conf là tỉ số giữa số
các tác vụ T (của D) chứa X thì cũng chứa Y và tổng số các tác vụ của D chứa X. Hay đó
chính là xác xuất có điều kiện P(Y/X). Ta ký hiệu độ tin cậy của luật r là conf(r). Độ tin
cậy của một luật cũng có giá trị giữa 0 và 1.
Supp (X  Y) = P (X  Y)
Conf (X  Y) = P (Y/X) = supp(XY)/supp(X)
Luật kết hợp mạnh (strong):
Các luật thỏa mãn cả hai ngƣỡng là độ hỗ trợ cực tiểu và độ tin cậy cực tiểu đƣợc
gọi là luật kết hợp mạnh, tức là:
Supp(XY) = P(X Y)  minsup
Conf(XY) = P(Y/X) = supp(XY)/supp(X) minconf
Ngƣời ta thƣờng biểu diễn bằng % thay cho các giá trị từ 0 đến 1
3. Bài toán khai phá dữ liệu bằng luật kết hợp và các pha thực hiện:
Cho I,T đƣợc xác đinh nhƣ trên.
Cho  là một quan hệ nhị phân trên I và T (hay   I x T).
Nếu mục i xuất hiện trong giao dịch t thì ta viết (i, t)  
Cơ sở dữ liệu D về mặt hình thức chính là một quan hệ nhị phân  nhƣ trên. Về
mặt ý nghĩa một cơ sở dữ liệu là một tập hợp các tác vụ t, mỗi tác vụ t là một tập các thuộc
tính:
t  2
I
(với 2
I
là tập các tập con của I).
Với các khái niệm nói trên bài toán khai phá dữ liệu bằng luật kết hợp có thể phát
biểu nhƣ sau:

Cho một cơ sở dữ liệu D; độ hỗ trợ tối thiểu minsup; độ tin cậy tối thiểu minconf.
Hãy tìm tất cả các luật kết hợp có dạng X

Y thỏa mãn độ hỗ trợ supp(X

Y)

minsup
và độ tin cậy của luật conf(X

Y) = supp(X

Y)/ supp(X)

mincconf
Hầu hết các thuật toán đƣợc đề xuất để khai phá dữ liệu nhờ luật kết hợp đều theo
hƣớng chia bài toàn thành hai pha cụ thể nhƣ sau:
Pha 1: Tìm tất cả các tập mục phổ biến từ cơ sở dữ liệu, tức là tìm tất cả các tập
mục X thỏa mãn supp(X) minsup. Đây là pha tốn khá nhiều thời gian của CPU và thời
gian vào ra ổ đĩa.


17
Pha 2: Sinh các luật tin cậy từ các tập phổ biến đã tìm thấy ở pha thứ nhất. Pha
này tƣơng đối đơn giản và tốn kém ít thời gian so với pha 1. Nếu X là tập phổ biến thì
luật kết hợp đƣợc sinh ra từ X có dạng:
X'
X
conf


\ X'
Trong đó: X' là tập con khác rỗng của X (có 2
X
tập nhƣ vậy),
X \ X' là hiệu của 2 tập hợp,
conf là độ tin cậy của luật thỏa mãn điều kiện conf  minconf.
Ví dụ minh họa: Cơ sở dữ liệu quan hệ tai nạn giao thông
I = {Gãy chân, Gãy tay, chấn thƣơng sọ não,Phóng nhanh, say bia rƣợu}
T = {1, 2, 3, 4, 5, 6} với thông tin về các tác vụ cho ở bảng sau:
Bảng 2.1. Ví dụ cơ sở dữ liệu tai nạn giao thông
Tình trạng (T1:Gãy tay;T2:Gãy chân;T3:Chấn thƣơng sọ não)
Nguyên nhân (N1:Phóng nhanh vƣợt ẩu; N2:Say bia rƣợu;N3: thời tiết xấu)
Định danh
(ID)
Tập mục (Itemset)
1
T1
T2
T3
N1
N2

2
T1
T2



N3
3



T3
N1
N2

4
T1




N3
5

T2

N1


Trên cơ sở các khái niệm về độ hỗ trợ, tập mục phổ biến với ngƣỡng minsup là
30% ta có các tập mục phổ biến dối với cơ sở dữ liệu cho ở trên là:
Bảng 2.2. Danh sách các tập mục phổ biến
Các tập mục phổ biến
Độ hỗ trợ
T1,T2,N1
60%
T3, N2,N3,T1T2,N1N2,T3N1,T3N1N2,T2N1
40%


Thông qua bảng 2.1 ta rút ra các thông số cho trong bảng nhƣ sau:
- Số các tác vụ: 5
- Số các mục: 6
Khi đó ta xác định đƣợc độ hỗ trợ của các tập mục, cụ thể cách tính độ hỗ trợ của
mục T1 là:


18
- Số tác vụ có chứa mục T1 là 3
- Số các tác vụ trong cơ sở dữ liệu là 5
Do đó: supp (T1) = 3/5 = 60%
Với cách tính độ tin cậy của luật đã nêu ở trên, ta hoàn toàn xác định đƣợc độ tin
cậy của các luật đƣợc sinh ra. Cụ thể, đối với tập mục: T2, N1 thì ta có luật kết hợp là:
T2  N1. Trong trƣờng hợp này thì:
conf (T2  N1) = (số các tác vụ chứa cả T2 và N1) / (số các tác vụ chứa T2)
= 2/3
= 67%
Bảng 2.3 dƣới đây là bảng xác định độ tin cậy của một số luật đƣợc sinh ra từ
CSDL D đã cho ở bảng 2.1 ở trên.
Bảng 2.3. Độ tin cậy của một số luật kết hợp đƣợc sinh ra từ bảng 2.1
Tập mục
Độ hỗ trợ
T3  N1
100%
T2  N1
67%
T1  N3
67%
T1  N1
33%

4. Một số tính chất của tập mục phổ biến và luật kết hợp:
4.1. Một số tính chất với tập mục phổ biến:
Tính chất 1:Độ hỗ trợ của tập con
Nếu A  B với A, B là các tập mục thì supp(A) supp(B).
Điều này là hiển nhiên vì tất cả các tác vụ trong D hỗ trợ B thì cũng hỗ trợ A.
Tính chất 2: Một tập chứa một tập không phổ biến thì cũng là tập không phổ biến
Nếu tập A không đủ độ hỗ trợ cực tiểu, tức là supp(A) < minsup thì tập B chứa A
cũng không là tập phổ biến vì:
supp(B) supp(A)< minsup (theo tính chất 1)
Tính chất 3: Các tập con của tập phổ biến cũng là tập phổ biến
Nếu B là tập phổ biến trong D tức: supp(B)  minsup. Khi đó mọi tập con A của
B cũng là phổ biến vì supp(A)  supp(B) minsup (theo tính chất 1). Trƣờng hợp đặc
biệt, nếu tập A = {i
1
, i
2
…, i
k
} là tập phổ biến thì mọi tập con có (k-1) mục của nó cũng là
phổ biến. Lƣu ý ngƣợc lại là không đúng.


19
4.2. Một số tính chất của luật kết hợp:
Tính chất 1: Không hợp các luật kết hợp
Nếu X  Z và Y  Z trong D thì không nhất thiết X  Y  X là đúng.
Xét trƣờng hợp XY =  và các tác vụ trong D hỗ trợ Z nếu chỉ nếu chúng hỗ
trợ mỗi X hoặc Y, khi đó luật XY Z có độ tin cậy là 0%.
Tƣơng tự: XYX Z=X  Y Z
Tính chất 2: Không tách luật

Nếu XY Z thì XZ và Y Z chƣa chắc xảy ra.
Ví dụ: Trƣờng hợp Z có mặt trong một tác vụ chỉ khi cả hai X và Y cũng có mặt,
tức là supp(XY) = supp(Z), nếu độ hỗ trợ của X và Y đủ lớn hơn độ hỗ trợ của XY
hay supp(X)>supp(XY) và supp(Y)> supp(XY) thì hai luật riêng biệt sẽ không đủ độ tin
cậy.
Tuy nhiên, đảo lại: X  Y  Z => X  Y  X  Z
Tính chất 3: Các luật kết hợp không có tính chất bắc cầu
Nếu X Y và Y  Z chúng ta không thể suy ra X  Z.
Ví dụ: Giả sử T(X) T(Y)T(Z) tƣơng ứng là tập các tác vụ chứa X, Y, Z và độ
tin cậy cực tiểu là minconf.
conf (X  Y) = conf(YZ) = minconf
thế thì: conf (XZ) = minconf
2
< minconf vì minconf < 1, do đó luật X  Z
không đủ độ tin cậy.
Tính chất 4:
Nếu luật A  (L-A) không thỏamãn độ tin cậy cực tiểu thì luật B  (L-B) cũng
không thỏa mãn, với các tập mục L, B, A và B  A.
Vì supp (B)  supp(A) (Theo tính chất 1 và định nghĩa độ tin cậy, chúng ta nhận
đƣợc:
conf (B(L-B) =
conf
Ap
Lp
Bp
Lp
min
)(sup
)(sup
)(sup

)(sup


Cũng nhƣ vậy: Nếu có luật (L-C)

C thì ta cũng có luật (L-D)

D, với D

C
và D



.
Vì D  C nên (L-D)  (L-C), do đó supp (L-D)  supp(L-C)
=>
conf
CLp
Lp
DLp
Lp
min
)(sup
)(sup
)(sup
)(sup








20
Tức là: conf ((L-D)  D)  conf ((L-C)  C)  minconf.
Các tính chất này sẽ đƣợc sử dụng trong thuật toán mô tả ở các phần dƣới đây.
5. Các loại luật kết hợp:
Trong thực tế có nhiều loại luật kết hợp, các luật kết hợp có thể có các dạng khác
nhau dựa trên các cơ sở sau
5
:
Luật kết hợp Boolean:
Là các luật dựa trên các kiểu của các giá trị trong luật. Hay luật kết hợp quan tâm
tới sự có mặt hay không có mặt của các mục.
Ví dụ: "Tai nạn  gãy tay" (L1)
Luật kết hợp định lƣợng:
Là luật miêu tả sự quan hệ giữa các thuộc tính. Trong các luật này, các giá trị định
lƣợng của các thuộc tính là đƣợc phân chia thành các khoảng. Luật sau là một ví dụ luật
kết hợp định lƣợng, ở đó X là biến biểu diễn nạn nhân:
Tuổi(X, "16…25")Tốc độ(X, "55Km…90Km")Tình trạng(X, "Tai nạn") (L2)
ở đây thuộc tính định lƣợng là tuổi và tốc độ.
Luật kết hợp đơn chiều:
Là luật dựa trên chiều của dữ liệu chứa trong luật. Cụ thể là nếu các thuộc tính
trong luật kết hợp tham chiếu đến chỉ một chiều.
Ví dụ: Luật (L1) ở trên có thể viết lại:
Đi xe máy(X, "Tai nạn")

Đi xe máy (X, "Gãy tay") (L3)
Luật này là luật kết hợp đơn chiều vì nó chỉ đề cập đến một chiều đó là đi xe máy.

Luật kết hợp đa chiều:
Là luật kết hợp dựa trên chiều của dữ liệu chứa trong luật. Nếu luật tham chiều
đến nhiều hơn một chiều nhƣ là Đi xe máy, Loại xe… thì đƣợc gọi là luật kết hợp đa
chiều.
Ví dụ: Luật (L2) ở trên có thể coi là luật kết hợp đa chiều vì nó chứa ba chiều là
tuổi, tốc độ, tình trạng.
Luật kết hợp với các mức trừu tƣợng khác nhau:
Là các luật kết hợp dựa trên mức độ trừu tƣợng chứa trong luật. Một số phƣơng
pháp khai phá luật kết hợp có thể tìm các luật với các mức độ trừu tƣợng khác nhau.
Ví dụ: Giả sử rằng tập các luật khai phá đƣợc bao gồm các luật sau:
Tuổi (X, "40…50")

Tình trạng (X, “Tai nạn") (L4)


21
Tuổi (X, "16…25")

Tình trạng (X, "Tai nạn gãy tay”) (L5)
Trong các luật L4 và L5, thuộc tính tình trạng tham chiếu đến các mức trừu tƣợng
khác nhau. Chẳng hạn: "tai nạn" là sự trừu tƣợng cao hơn của "tai nạn gãy tay".
6. Các thuật toán khai phá dữ liệu nhờ luật kết hợp:
6.1. Khai phá luật kết hợp Booleal đơn chiều từ cơ sở dữ liệu tác vụ:
Trong phần này sẽ xem xét các phƣơng pháp khai phá dạng đơn giản nhất của luật
kết hợp đó là luật kết hợp đơn chiều, đơn mức, hay luật kết hợp Boolean. Ta bắt đầu với
thuật toán Apriori, một thuật toán kinh điển cơ sở cho việc tìm kiếm các tập mục phổ
biến. Phần này cũng nêu thủ tục sinh ra các luật kết hợp từ các tập mục phổ biến, đồng
thời cũng nêu một số biến đổi của thuật toán Apriori để tăng hiệu quả của thuật toán.
6.1.1. Tìm tập mục phổ biến dùng phƣơng pháp sinh các ứng cử - TT Apriori
Apriori là thuật toán khai phá các tập mục phổ biến cho các luật kết hợp boolean.

Trong phần này trình bày thuật toán Apriori do Rakesh Agrawal, Tomasz Imielinski,
Arun Swami
3
đề xuất lần đầu tiên vào năm 1993.
Vấn đề phát hiện tất cả các luật kết hợp có độ hỗ trợ và độ tin cậy vƣợt quá
ngƣỡng xác định nào đó (ngƣỡng này do ngƣời dùng đƣa ra và khi ấy nó chính là độ hỗ
trợ cự tiểu minsup và độ tin cậy cực tiểu minconf) có thể đƣợc phân rã thành hai vấn đề
con sau đây:
 Tìm tất cả các tập mục phổ biến với minsupp nào đó. Thuật toán Apriori nhằm
giải quyết vấn đề này.
 Sử dụng các tập mục phổ biến để sinh ra các luật kết hợp với minconf nào đó.
Ý tƣởng chính ở đây là nếu S và X là tập mục phổ biến và X  S, khi đó ta có thể
xem X  Y (ở đây Y = S\X) có phải là luật mong muốn hay không bằng cách tính độ hỗ
trợ c = conf(XY)=supp(X

Y)/supp(X)=supp(S)/supp(X). Và nếu c  minconf thì khi
đó X  Y trở thành luật mong muốn.
Các thuật toán phát hiện tập mục phổ biến thực hiện nhiều lần duyệt dữ liệu.
Trong lần duyệt thứ nhất, ta tính độ hỗ trợ của các mục riêng biệt và xác định các mục
phổ biến trong chúng, tức là thỏa mãn độ hỗ trợ cực tiểu. Trong mỗi lần duyệt sau, ta bắt
đầu với tập hạt giống thu đƣợc trong lần duyệt trƣớc đó. Chúng ta sử dụng tập hạt giống
này để sinh ra tập mục phổ biến tiềm năng gọi là tập mục ứng cử và tính độ hỗ trợ thực


22
sự của các tập mục ứng cử này khi duyệt qua dữ liệu. Ở cuối mỗi lần duyệt, ta xác định
đƣợc tập mục nào trong các tập ứng cử là tập mục phổ biến thực sự và chúng trở thành
hạt giống cho lần duyệt tiếp theo. Quá trình này thực hiện cho đến khi không có một tập
mục phổ biến mới nào nữa đƣợc tìm thấy.
Thuật toán Apriori sinh ra các tập ứng cử trong một lần duyệt bằng việc sử dụng

các tập mục đã đƣợc thấy là phổ biến trong lần duyệt trƣớc mà không cần quan tâm đến
các tác vụ trong cơ sở dữ liệu. Sở dĩ nhƣ vậy là vì bất kỳ tập con nào của tập mục phổ
biến cũng là tập mục phổ biến. Vì vậy, các tập ứng cử có (k-1) mục và xóa đi các tập
ứng cử viên nếu nó chứa bất kỳ một tập con nào mà không là phổ biến. Thủ tục này nói
chung dẫn đến một số nhỏ hơn nhiều các tập ứng cử viên, hay nói cách khác là khá hiệu
quả trong việc rút gọn không gian tìm kiếm.
Để dễ theo dõi, ta ký hiệu nhƣ sau: Giả sử các mục trong mỗi tác vụ được lưu giữ
theo trật tự từ điển (Điều này không làm mất đi tính chất tổng quát của bài toán nhƣng
lại rất quan trọng trong việc không sinh thừa các ứng cử). Giả thiết số phần tử trong một
tập mục là kích thƣớc của tập mục đó và gọi tập mục có kích thƣớc k là tập k-mục (hay
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. Chúng ta sử
dụng các ký hiệu sau:
Bảng 2.4. Các ký hiệu của thuật toán Apriori.
Ký hiệu
Giải thích
L
k

Tập các tập k-mục phổ biến (với độ hỗ trợ cực tiểu minsup nào đó). Mỗi
phần tử của tập này có 2 trƣờng:
- Tập mục
- Độ hỗ trợ tƣơng ứng
C
k

Tập các tập k-mục ứng cử (các tập mục phổ biến tiềm năng).

Mỗi phần tử của tập này có 2 trƣờng:
- Tập mục
- Độ hỗ trợ tƣơng ứng


Thuật toán Apriori sử dụng tập (k-1) mục cho việc tìm kiếm tập k-mục. Ở lần
duyệt đầu tiên, ngƣời ta tính độ hỗ trợ của các mục riêng lẻ (hay tập chỉ gồm 1 mục) và
xác định xem trong chúng mục nào là phổ biến, tức là tìm đƣợc tất cả các tập 1 mục phổ
biến trong tất cả các tập 1 mục. Đó chính là tập L
1
và L1 đƣợc dùng để tìm L
2
với L
2



23
các tập 2 mục phổ biến. Tiếp tục với L
2
ta tìm đƣợc L
3
… .Và cứ nhƣ vậy cho tới khi
không tìm đƣợc tập phổ biến lớn hơn tập k-mục phổ biến đã tìm thấy trƣớc đó.
Để tăng tính hiệu quả trong việc sinh ra tập mục phổ biến, ta sử dụng tính chất
quan trọng nhất của tập mục phổ biến, đó là : Tất cả các tập con khác rỗng của tập mục
phổ biến đều là tập mục phổ biến hay mọi tập mục chứa một tập mục không phổ biến
đều là tập mục không phổ biến.
Tính chất quan trọng này đƣợc gọi là tính chất Apriori và nó đƣợc dùng để rút
gọn không gian tìm kiếm. Giả sử rằng ta đã tìm đƣợc các tập k mục phổ biến, khi đó nếu
mọi tập trong tập C
k+1
đều là tập mục không phổ biến, khi đó cho dù từ cơ sở dữ liệu tác
nghiệp tác còn có thể sinh ra các tập lớn hơn tập (k+1) mục thì thuật toán vẫn dừng lại.

Để hiểu đƣợc rõ hơn tính chất này ta xét thuật toán sử dụng L
k-1
để tìm L
k
sau
đây. Quá trình này bao gồm 2 bƣớc đó là:
Bƣớc1: kết nối
Bƣớc 2: tỉa
Bƣớc kết nối: Bƣớc này dùng để sinh tập các ứng cử C
k
từ các tập L
k-1

- Đầu vào: tập các tập k-1 mục phổ biến (L
k-1
)
- Đầu ra: tập các ứng cử gồm k mục (C
k
)
- Phép toán sử dụng: phép kết nối.
Tổng quát: tập các ứng cử k mục C
k
đƣợc sinh ra bởi việc kết nối các tập (k-1)
mục trong L
k-1
với nhau. Giả sử l
1
và l
2
là các tập mục trong L

k-1
. Ta ký hiệu: l
i
[j] là mục
thứ j trong l
i
. Không mất tính tổng quát, giả sử các mục trong tác vụ hoặc tập mục có thứ
tự từ điển. Việc nối l
1
với l
2
đƣợc thực hiện nhƣ sau: các thành phần của l
1
và l
2

đƣợc kết
nối nếu (k-2) mục đầu tiên là chung, tức là:
l
1
[1]=l
2
[1](l
1
[2]=l
2
[2])…(l
1
[k-2]=l
2

[k-2])
Giả thiết (l
1
[k-1])<l
2
[k-1]) theo thứ tự từ điển, khi đó nối l
1

và l
2
ta đƣợc một tập
ứng cử k mục là: l
1
[1] l
1
[2] … l
1
[k-1]l
2
[k-1]
2. Bƣớc tỉa:
- Đầu vào: là tập các ứng cử gồm k mục (C
k
)
- Đầu ra: là tập k mục phổ biến (L
k
)
- Công việc phải làm: quét cơ sở dữ liệu để tính độ hỗ trợ cho mỗi ứng cử và tỉa
bớt những ứng cử không nhỏ hơn minsup.
Tổng quát: tập các ứng cử k mục C

k
luôn là tập chứa L
k
, tức là các thành phần của
C
k
có thể là phổ biến hoặc không nhƣng tất cả các tập k-mục phổ biến đƣợc chứa đầy đủ


24
trong C
k
. Quét cơ sở dữ liệu để tính độ hỗ trợ cho mỗi ứng cử trong C
k
sẽ nhận đƣợc L
k

(tức tập tất cả các tập k mục phổ biến). Tuy nhiên, C
k
có thể là rất lớn và do đó dẫn đến
tính toán rất lớn. Để rút gọn kích thƣớc của C
k
, tính chất Apriori đƣợc sử dụng nhƣ sau:
Bất kỳ tập (k-i) mục nào không phổ biến không thể là tập con của tập k mục phổ biến
(1<= i<=k-1). Vì thế, nếu bất kỳ tập con (k-1) mục của ứng cử k mục không có mặt
trong L
k-1
thì ứng cử đó không thể là phổ biến và do vậy có thể loại bỏ khỏi C
k
.

Dƣới đây là ví dụ để minh họa thuật toán Apriori.Xét cơ sở dữ liệu D đƣợc cho
trong bảng 2.5 sau:
Bảng 2.5. Cơ sở dữ liệu để minh họa thuật toán Apriori
Định danh
Tên các mục
1
A, B, D,E
2
C,D,E
3
B,C,D
4
A,B,D
5
A,C,E
6
A,D,E
7
C,E
8
B,D,E

Trong cơ sở dữ liệu này, không làm mất tính tổng quát ta giả sử:
- Tên các mục: A, B, C, D,E
- Các mục đƣợc sắp xếp theo thứ tự từ điển
Ở đây có 5 tác vụ (bản ghi) tức
D
= 8. Giả sử minsup = 30%. Qúa trình thuật
toán Apriori tìm tập mục phổ biến trong D thể hiện qua các bảng sau:



Quét D để
tính supp
C
1



So sánh với
minssup=2
L1

Tập mục
Độ hỗ trợ
Tập mục
Độ hỗ trợ
{A}
50%
{A}
50%
{B}
50%
{B}
50%
{C}
50%
{C}
50%
{D}
75%

{D}
75%
{E}
75%
{E}
75%

×