Tải bản đầy đủ (.doc) (40 trang)

KHAI PHÁ DỮ LIỆU VÀ THUẬT TOÁN KHAI PHÁ LUẬT KẾT HỢP SONG SONG

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 (563.94 KB, 40 trang )

BỘ TÀI NGUYÊN VÀ MÔI TRƯỜNG HÀ NỘI
TRƯỜNG ĐẠI HỌC TÀI NGUYÊN VÀ MÔI TRƯỜNG HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
*****************************

BÁO CÁO THỰC TẬP TỐT NGHIỆP
ĐỀ TÀI: KHAI PHÁ DỮ LIỆU VÀ THUẬT TOÁN KHAI PHÁ

LUẬT KẾT HỢP SONG SONG

Cán bộ hướng dẫn

: Th. S. Hoàng Minh Quang

Sinh viên thực hiện
Lớp

: Nguyễn Thị Thực
: ĐH2C2

HÀ NỘI - 2016


LỜI CẢM ƠN

Sau thời gian thực tập, nghiên cứu tại phòng Cơ sở dữ liệu, viện Công nghệ
thông tin- Viện Hàn lâm và khoa học Việt Nam, được sự giúp đỡ nhiệt tình của các
thầy cô giáo và các cán bộ, nhân viên của phòng em đã hoàn thành được bài báo cáo
thực tập tốt nghiệp.
Em chân thành cảm ơn các thầy cô trong khoa Công nghệ thông tin, trường Đại
học Tài nguyên và môi trường Hà Nội đã tận tình giảng dạy truyền đạt kiến thức trong


suốt quá trình học tập. Với vốn kiến thức được tiếp thu trong quá trình học tập không
chỉ là nền tảng cho quá trình nghiên cứu thực tập mà còn là hành trang để e bước vào
đời sau khi ra trường. Đặc biệt cho em gửi lời cảm ơn sâu sắc đến thầy ThS. Hoàng
Minh Quang, đã tận tình hướng dẫn trong suốt quá trình thực tập để em có thể hoàn
thành được bài báo cáo này.
Em chân thành cảm ơn trưởng phòng TS. Nguyễn Việt Anh và các nhân viên
của Phòng Cơ sở dữ liệu, viện CNTT- viện Hàn lâm và khoa học Việt Nam đã tạo điều
kiện thuận lợi nhất trong suốt quá trình thực tập.
Do thời gian thực tập có hạn, cũng như kinh nghiệm bản thân còn hạn chế của
một sinh viên thực tập nên trong bài báo cáo còn có nhiều thiếu sót. Vì vậy, em rất
mong nhận được sự chỉ bảo, đóng góp của các thầy cô để em có thể bổ sung, nâng cao
kiến thức của mình.


MỤC LỤC
MỤC LỤC...........................................................................................................3
DANH MỤC HÌNH..............................................................................................4
LỜI MỞ ĐẦU......................................................................................................1
CHƯƠNG I: TỔNG QUAN KHO DỮ LIỆU VÀ KHAI PHÁ.................................3
DỮ LIỆU.............................................................................................................3
CHƯƠNG II: KHAI PHÁ LUẬT KẾT HỢP TRONG CƠ SỞ .............................8
DỮ LIỆU.............................................................................................................8
CHƯƠNG III : MỘT SỐ PHƯƠNG PHÁP KHAI PHÁ LUẬT...........................17
KẾT HỢP SONG SONG VÀ PHÂN TÍCH ĐÁNH GIÁ ....................................17
CÁC THUẬT TOÁN..........................................................................................17


DANH MỤC HÌNH
MỤC LỤC...........................................................................................................3
DANH MỤC HÌNH..............................................................................................4

LỜI MỞ ĐẦU......................................................................................................1
CHƯƠNG I: TỔNG QUAN KHO DỮ LIỆU VÀ KHAI PHÁ.................................3
DỮ LIỆU.............................................................................................................3
CHƯƠNG II: KHAI PHÁ LUẬT KẾT HỢP TRONG CƠ SỞ .............................8
DỮ LIỆU.............................................................................................................8
CHƯƠNG III : MỘT SỐ PHƯƠNG PHÁP KHAI PHÁ LUẬT...........................17
KẾT HỢP SONG SONG VÀ PHÂN TÍCH ĐÁNH GIÁ ....................................17
CÁC THUẬT TOÁN..........................................................................................17


LỜI MỞ ĐẦU
1. Lý do chọn đề tài
Với sự bùng nổ và phát triển của công nghệ thông tin đã mang lại nhiều hiệu
quả đối với khoa học cũng như các hoạt động thực tế, trong đó khai phá dữ liệu là một
lĩnh vực mang lại hiệu quả thiết thực cho con người. Khai phá dữ liệu đã giúp người
sử dụng thu được những tri thức hữu ích từ những cơ sở dữ liệu hoặc các kho dữ liệu
khổng lồ khác.
Cơ sở dữ liệu trong các đơn vị, tổ chức kinh doanh, quản lý khoa học chứa
đựng nhiều thông tin tiềm ẩn, phong phú và đa dạng, đòi hỏi phải có những phương
pháp nhanh, phù hợp, chính xác, hiệu quả để lấy được những thông tin bổ ích. Để lấy
được thông tin mang tính tri thức trong khối dữ liệu khổng lồ, cần thiết phải phát triển
các kỹ thuật có khả năng tích hợp các dữ liệu từ các hệ thống giao dịch khác nhau,
chuyển chúng thành một tập hợp các cơ sở dữ liệu ổn định có chất lượng. Các kỹ thuật
như vậy được gọi là kỹ thuật tạo kho dữ liệu và môi trường các dữ liệu nhận được khi
áp dụng các kỹ thuật tạo kho dữ liệu nói trên được gọi là kho dữ liệu.
Một trong các nội dung cơ bản nhất trong khai phá dữ liệu và rất phổ biến là
phát hiện các luật kết hợp. Phương pháp này nhằm tìm ra các tập thuộc tính thường
xuất hiện đồng thời trong cơ sở dữ liệu và rút ra các luật về ảnh hưởng của một tập
thuộc tính dẫn đến sự xuất hiện của một (hoặc một tập) thuộc tính khác như thế nào.
Bên cạnh đó, nhu cầu song song hóa và xử lý phân tán là rất cần thiết hiện nay bởi

kích thước lưu trữ dữ liệu ngày càng nhiều nên đòi hỏi tốc độ xử lý cũng như dung
lượng bộ nhớ hệ thống phải đảm bảo. Vì thế, yêu cầu cần có những thuật toán song
song hiệu quả cho việc phát hiện luật kết hợp. Do vậy, em đã chọn đề tài tìm hiểu về
“Khai phá dữ liệu và thuật toán khai phá luật kết hợp song song”.
Ứng dụng khai phá dữ liệu đã mang lại những lợi ích to lớn trong việc tổng hợp
và cung cấp những thông tin trong các nguồn cơ sở dữ liệu lớn. Hơn nữa hiện nay nhu
cầu song song hóa và xử lý phân tán là rất cần thiết bởi kíchthước dữ liệu lưu trữ ngày
càng lớn nên đòi hỏi tốc độ xử lý cũng như dung lượng bộ nhớ hệ thống phải đảm bảo.
Vì thế, yêu cầu cần có những thuật toán song song hiệu quả cho luật kết hợp, từ đó
trình bày các vấn đề khai phá dữ liệu và xây dựng một số thuật toán khai phá luật kết
hợp song song.
2. Đối tượng và phạm vi nghiên cứu
- Các kiến thức cơ bản về khai phá dữ liệu và khai phá luật kết hợp.
- Các phương pháp khai phá luật kết hợp song song.

1


3. Mục tiêu và nội dung của báo cáo
Mục tiêu: nghiên cứu tìm hiểu lý thuyết tổng quan về khai phá dữ liệu cũng như
tìm hiểu thuật toán khai phá luật kết hợp
Nội dung báo cáo được trình bày trong 3 chương và phần kết luận
Chương 1: Tổng quan về khai phá dữ liệu
Chương 2: Khai phá luật kết hợp song song
Chương 3: Một số phương pháp khai phá luật kết hợp song song và phân tích
đánh giá các thuật toán song song .

2



CHƯƠNG I: TỔNG QUAN KHO DỮ LIỆU VÀ KHAI PHÁ
DỮ LIỆU
1.1. Sự cần thiết của khai phá dữ liệu
1.1.1. Những nghiên cứu về thị trường của khái phá dữ liệu
Theo Giga Research-một tổ chức nghiên cứu nổi tiếng của Mỹ ước tính thị
truowgf khai phsa dữu liệu bao gồm phần mềm và dịch vụ sẽ vượt qua con số 1 tỷ $
Mỹ( báo cáo năm 2005). Một số nghiên cứu khác thì không đồng ý, cho rằng con số đó
chỉ ở mức 700-800t triệu. Tuy nhiên 1 điểm mà các nhà phân tích đồng tình đó là mức
tăng trưởng của thị trường khai phá dữ liệu ngày càng tăng và nhanh nhất trong lĩnh
vực kinh doanh.
1.1.2. Những nhu cầu về khái phá dữ liệu trong kinh doanh
Ngày nay nền kinh tế thị trường cạnh tranh ngày càng phát triển, đi đôi với nó
là những nhu cầu tất yếu như:
- Phân loại khách hàng để từ đó phân định thị trường, thị phần.
- Tăng sức mạnh cạnh tranh, làm thế nào để giữ khách hàng cũ và thu hút
khách hàng mới.
- Phân tích rủi ro trước khi ra quyết định quan trọng chiến lược bất động sản
kinh doanh.
- Ra các báo cáo giàu thông tin...
Tất cả các nhu cầu xã hội trên đòi hỏi cần phải có 1 phương thức, công cụ nào
đó hỗ trợ bên cạnh các chuyên gia kinh tế. Và khai phá dữ liệu là 1 chìa khóa hỗ trợ
giải quyết vấn đề nêu trên.
1.1.3. Khai phá dữ liệu trong một số lĩnh vực quan trọng khác
- Khoa học:
• Thiên văn học: dựu đoán đường đi quỹ đạo các thiên thể, hành tinh...
• Chiêm tinh học: tiên đoán, giải đáp giấc mơ...
• Công nghệ sinh học; tìm ra các giống mới, giải mã gen...
- Web:
• Các bộ máy tìm kiếm...
- Trong thể thao:

• Phát hiện sử dụng chất kích thích...
- Và các vẫn đề trong các lĩnh vực khác:
• Chống giả mạo.
• Phát hiện nói dối...

3


1.2Tổng quan về khai phá dữ liệu
1.2.1. Định nghĩa khai phá dữ liệu
Khai phá dữ liệu được dùng để mô tả quá trình phát hiện ra tri thức trong cơ sở
dữ liệu. Quá trình này kết xuất ra các tri thức tiềm ẩn từ dữ liệu giúp cho việc dự báo
trong kinh doanh, các hoạt động sản xuất… Khai phá dữ liệu làm giảm chi phí về thời
gian so với các phương pháp truyền thống trước.
Định nghĩa của Ferruzza: “Khai phá dữ liệu là tập hợp các phương pháp được
dùng trong tiến trình khám phá tri thức để chỉ ra sự khác biệt các mối quan hệ và các
mẫu chưa biết bên trong dữ liệu”.
Định nghĩa của Parsaye: “Khai phá dữ liệu là quá trình trợ giúp quyết định,
trong đó chúng ta tìm kiếm các mẫu thông tin chưa biết và bất ngờ trong cơ sở dữ liệu
lớn”.
Định nghĩa của Fayyad: “Khai phá tri thức là một quá trình không tầm thường
nhận ra những mẫu dữ liệu có giá trị, mới, hữu ích, tiềm năng và có thể hiểu được”.
1.2.2. Kiến trúc của một hệ thống khai phá dữ liệu
Khai phá dữ liệu là quá trình rút trích thông tin bổ ích từ những kho dữ liệu lớn.
Khai phá dữ liệu là quá trình chính trong khai phá tri thức từ cơ sở dữ liệu.

Hình 1.1: Kiến trúc của hệ thống khai phá dữ liệu.
Kiến trúc của một hệ thống khai phá dữ liệu gồm các thành phần sau:
• CSDL, kho dữ liệu hoặc nguồn lưu trữ thông tin khác: Đây là một hay các tập
CSDL, các kho dữ liệu, các trang tính hay các dạng khác của thông tin được lưu trữ.

Các kỹ thuật làm sạch dữ liệu và tích hợp dữ liệu có thể thực hiện.
• Máy chủ CSDL (Database or Warehouse Sever): Máy chủ có trách nhiệm lấy
những dữ liệu thích hợp dựa trên những yêu cầu khám phá của người dùng.
4


• Cơ sở tri thức (Knowledge-base): đây là miền tri thức dùng để tìm kiếm hay
đánh giá độ quan trọng của các mẫu kết quả thu được. Tri thức này có thể bao gồm
một sư phân cấp khái niệm dùng đề tổ chức các thuộc tính hay các giá trị thuộc tính ở
các mức trừu tượng khác nhau.
• Máy khai phá dữ liệu (Data mining engine): là một hệ thống khai phá dữ liệu
cần phải có một tập các modul chức năng để thực hiện công việc như kết hợp, phân
lớp, phân cụm.
• Modul đánh giá mẫu (Pattern evaluation): bộ phận tương tác với các modul
khai phá dữ liệu để tập trung vào việc duyệt tìm các mẫu đáng được quan tâm. Nó có
thể dùng các ngưỡng về độ quan tâm để lọc mẫu đã khám phá được, cũng có thể
modul đánh giá mẫu được tích hợp vào modul khai phá dữ liệu tùy theo cách cài đặt
của phương pháp khai phá dữ liệu được dùng.
• Giao diện đồ họa người dùng (Graphical user interface): bộ phận này cho
phép người dùng giao tiếp với hệ thống khai phá dữ liệu. Thông qua giao diện này
người dùng tương tác với hệ thống bằng cách đặc tả một yêu cầu khai phá hay một
nhiệm vụ, cung cấp thông tin trợ giúp cho việc tìm kiếm và thực hiện khai phá thăm dò
trên các kết quả khai phá trung gian. Ngoài ra bộ phận này còn cho phép người dùng
xem các lược đồ CSDL, lược đồ kho dữ liệu, các đánh giá mẫu và hiển thị các mẫu
trong các khuôn dạng khác nhau.
1.2.3. Quá trình khai phá dữ liệu
Quy trình khai phá dữ liệu là một chuỗi lập và tương tác gồm các bước bắt đầu
với dữ liệu thô và kết thúc với tri thức. Quá trình khai phá dữ liệu được thể hiện bởi
mô hình sau:


Hình 1.2: Quá trình khai phá dữ liệu.
Quá trình xử lý khai phá dữ liệu bắt đầu bằng việc xác định chính xác vấn đề
cần giải quyết. Sau đó sẽ xác định dữ liệu liên quan dùng để xây dựng giải pháp. Tiếp
theo là thu thập dữ liệu có liên quan và xử lý chúng thành dạng sao cho thuật toán khai
phá dữ liệu có thể hiểu được.
Quá trình khai phá dữ liệu trải qua 3 bước:
5


• Bước 1: Lọc dữ liệu được thực hiện trong quá trình tiền xử lý. Công việc đầu
tiên là tích hợp và chỉnh sửa dữ liệu. Khi dữ liệu được thu thập từ nhiều nguồn khác
nhau nên có thể có những sự sai sót, dư thừa và trùng lặp. Lọc dữ liệu là cắt bỏ những
dư thừa để dữ liệu được định dạng thống nhất. Dữ liệu sau khi lọc và chỉnh sửa sẽ nhỏ
hơn, xử lý nhanh chóng hơn.
• Bước 2: Khai phá dữ liệu là công việc chính, sử dụng các thuật toán khác
nhau để khai phá các kiến thức tiềm ẩn trong dữ liệu.
• Bước 3: Sau xử lý là quá trình ước lượng kết quả khai phá theo yêu cầu của
người dùng. Nhiều kỹ thuật khai phá dữ liệu được ứng dụng cho một nguồn dữ liệu,
các kỹ thuật cho các kết quả có thể khác nhau. Các kết quả được ước lượng bởi những
quy tắc nào đó, nếu cuối cùng kết quả không thỏa mãn yêu cầu, chúng ta phải làm lại
kỹ thuật khác cho đến khi có kết quả mong muốn.
1.2.4. Một số kỹ thuật khai phá dữ liệu
Trong thực tế có nhiều kỹ thuật khai phá dữ liệu khác nhau và được chia làm 2
nhóm chính:
- Kỹ thuật khai phá dữ liệu mô tả: 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ó. Kỹ thuật này gồm có: phân cụm (clustering),
khai phá luật kết hợp (association rules)…
- Kỹ thuật khai phá dữ liệu dự đoán: đưa ra các dự đoán vào các suy diễn trên
dự liệu hiện thời. Kỹ thuật này gồm có: phân lớp (classification), hồi quy (regession)


1.2.5. Lợi ích của khai phá dữ liệu so với các phương pháp khác
- So với phương pháp học máy: khai phá dữ liệu có lợi thế hơn ở chỗ nó có thể
sử dụng các CSDL chứa nhiễu, dữ liệu không đầy đủ hoặc biến đổi liên tục.
- Phương pháp hệ chuyên gia: các ví dụ của chuyên gia thường ở mức chất
lượng cao hơn nhiều so với CSDL và chúng chỉ bao hàm các trường hợp quan trọng,
đòi hỏi phải có sự tham gia của các chuyên gia trong việc phát hiện tri thức.
- Phương pháp thống kê: phương pháp thống kê có một số điểm yếu mà khai
phá dữ liệu đã khắc phục được: không phù hợp với các kiểu dữ liệu có cấu trúc trong
rất nhiều các CSDL, không sử dụng tri thức sẵn có về lĩnh vực, cần có sự hướng dẫn
của người dùng để xác định phân tích dữ liệu như thế nào và ở đâu.
1.2.6. Các cơ sở dữ liệu phục vụ cho khai phá dữ liệu
- Cơ sở dữ liệu quan hệ: CSDL quan hệ là một nguồn tài nguyên lớn nhất chứa
những đối tượng mà chúng ta cần khai phá, CSDL quan hệ có cấu trúc cao, dữ liệu
được mô tả bởi một tập những thuộc tính và lưu trong những bảng. Khai phá dữ liệu
trên CSDL quan hệ chủ yếu tập trung khai phá mẫu.
6


- Cơ sở dữ liệu giao tác: là tập hợp những bản ghi giao dịch, trong đa số các
trường hợp chúng là những bản ghi các dữ liệu hoạt động của doanh nghiệp, tổ chức.
Khai phá dữ liệu trên CSDL giao tác tập trung vào khai phá luật kết hợp, tìm mối
tương quan giữa những mục dữ liệu của bản ghi giao dịch.
- Cơ sở dữ liệu không gian gồm hai phần: phần thứ nhất là dữ liệu quan hệ hay
giao tác, phần hai là thông tin định vị hoặc thông tin địa lý.
- Cơ sở dữ liệu có yếu tố thời gian gồm hai phần: thứ nhất là dữ liệu quan hệ
hay giao tác, phần hai là thông tin về thời gian xuất hiện dữ liệu ở phần thứ nhất.
- Cơ sở dữ liệu đa phương tiện: thông tin trên web đang phát triển với tốc độ rất
cao, khai phá thông tin trên web đã trở thành lĩnh vực nghiên cứu chính của khai phá
dữ liệu. Khai phá dữ liệu web được chia thành 3 phạm trù chính: khai phá cách dùng
web, khai phá cấu trúc web và khai phá nội dung web. Khai phá cách dùng web tập

trung vào việc khai phá thông tin của người truy nhập web. Với những thông tin này
người khai phá dữ liệu có thể cung cấp những thông tin hữu ích cho người dùng và các
nhà kinh doanh.

7


CHƯƠNG II: KHAI PHÁ LUẬT KẾT HỢP TRONG CƠ SỞ
DỮ LIỆU
2.1. Lý thuyết về luật kết hợp
2.1.1. Định nghĩa luật kết hợp
Một luật kết hợp có dạng R: X=> Y, trong đó X, Y là các tập mục X,Y ⊆I và
X∩Y=∅. X được gọi là tiền đề và Y được gọi là hệ quả của luật.
2.1.2. Khái niệm
• Cho một tập I = {I1, I2,…Im} các tập m mục, một giao dịch T được định

nghĩa như một tập con của các mục trong I (T ⊆I )
• Gọi D là CSDL của n giao dịch và mỗi giao dịch được đánh nhãn với một
định danh duy nhất. Nói rằng một giao dịch T ∈ D hỗ trợ một tập X ⊆ I nếu nó chứa
tất cả các mục của X.
• Kí hiệu support (X) hoặc sup(X), s(X) là tỷ lệ phần trăm của các giao dịch hỗ
trợ X trên tổng các giao dịch trong D nghĩa là:
Sup (X) =
• Độ hỗ trợ tối thiểu minsup là một giá trị cho trước bởi người sử dụng.
• Nếu tập mục X có sup (X) ≥ minsup thì ta nói X là một tập các mục phổ biến.
Một tập phổ biến được sử dụng như một tập đáng quan tâm trong các thuật toán,
ngược lại, những tập không phải tập phổ biến là những tập không đáng quan tâm. Các
phần sau sẽ sử dụng những cụm từ khác như “ X có độ hỗ trợ tối thiểu” hay “X không
có độ hỗ trợ tối thiểu” cũng để nói lên rằng X thỏa mãn hay không thỏa mãn sup(X) ≥
minsup

• Một luật kết hợp có dạng R: X => Y, trong đó X, Y là tập các mục, X, Y ⊆ I

X ∩Y = ∅.
+) X được gọi là tiên đề .
+) Y được gọi là hệ quả của luật.
Luật X => Y tồn tại một độ tin cậy confidence (c/conf). Độ tin cậy c được định
nghĩa là khả năng giao dịch T hỗ trợ X thì cũng hỗ trợ Y. Ta có công thức tính độ tin
cậy c như sau:
p(Y ⊆ T ∧ X ⊆ T) sup( X ∪ Y )
=
p( X ⊆ T )
sup( X )
conf(X =>Y) =

8


Khai phá luật kết hợp được phân thành hai bài toán con:
Bài toán 1: Tìm tất cả các tập mục mà có độ hỗ trợ lớn hơn độ hỗ trợ tối thiểu
do người dùng xác định. Các tập mục thoả mãn độ hỗ trợ tối thiểu được gọi là các tập
mục phổ biến.
Bài toán 2: Dùng các tập mục phổ biến để sinh ra các luật mong muốn. Ý tưởng
chung là nếu gọi ABCD và AB là các tập mục phổ biến, thì chúng ta có thể xác định
luật nếu AB => CD giữ lại với tỷ lệ độ tin cậy:
conf =

sup( ABCD)
sup( AB)

Nếu conf ≥ minconf thì luật được giữ lại (luật này sẽ thoả mãn độ hỗ trợ tối

thiểu vì ABCD là phổ biến).
2.1.3. Một số tính chất liên quan
a. Với tập mục phổ biến có 3 tính chất sau:
- Tính chất 1: (Độ hỗ trợ của tập con):
Với A và B là các tập mục, nếu A ⊆ B thì sup(A) ≥ sup(B). Điều này là rõ ràng
vì tất cả các giao tác của 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 một
mục trong B không có độ hỗ trợ tối thiểu trên D nghĩa là sup(B)< minsup thì một tập
con A của B sẽ không phải là một tập phổ biến vì sup(B) ≤ sup(A) < minsup (theo tính
chất 1)
- Tính chất 3: Các tập con của một tập phổ biến cũng là một tập phổ biến
Nếu mục B là mục phổ biến trên D, nghĩa là sup(B) ≥ minsup thì mọi tập con A
của B là tập phổ biến trên D vì sup(A) ≥ sup(B) > minsup.
b. Với luật kết hợp có 4 tính chất sau
- Tính chất 1:( Không hợp các luật kết hợp)
Nếu có X→Z và Y→Z trong D thì không nhất thiết X∪Y→Z là đúng
Xét trường hợp X ∩Z =∅ và các tác vụ trong D hỗ trợ Z nếu và chỉ nếu chúng
hỗ trợ mỗi X hoặc Y, khi đó luật X∪Y→Z có độ hỗ trợ 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 giao tác chỉ khi cả hai X và Y cũng có
mặt, tức là sup (X∪Y) = sup(Z), nếu độ hỗ trợ của X và Y đủ lớn hơn sup (X ∪Y), tức
là sup(X) > sup(X∪Y) và sup(Y) > sup(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 bắc cầu)
Nếu X→Y và Y→Z, chúng ta không thể suy ra X→Z.
9



Ví dụ: giả sử T(X) ⊂ T(Y) ⊂ T(Z), ở đó T(X), T(Y), T(Z) tương ứng là các giao
dịch chứa X,Y,Z, và độ tin cậy cực tiểu minconf
conf(X→Y) =conf(Y→Z)=minconf thế thì: conf(X→Y) =minconf2 < minconf
vì minconf < 1, do đó luật X→Z không đủ độ tin cậy.
- Tính chất 4:
Nếu A→(L - A) không thoả mãn độ tin cậy cực tiểu thì luật B →(L -B) cũng
không thoả mãn, với các tập mục L,A,B và B ⊆ A ⊂ L
Vì supp(B) ≥ sup(A) (theo tính chất 1) và định nghĩa độ tin cậy, chúng ta nhận
được: conf(B →(L-B)) =

< minconf

Cũng như vậy: Nếu có (L-C)→ C thì ta cũng có luật (L – D)→D, với D⊆C và
D≠∅.
Bởi vì D⊆C nên (L - D) ⊇ (L - C), do đó sup(L - D) ≤ sup(L-C)


≥ minconf

2.2. Khai phá luật kết hợp
Bài toán khai phá luật kết hợp trên một CSDL được chia thành hai bài toán nhỏ.
Bài toán thứ nhất là tìm tất cả các tập mục dữ liệu có độ hỗ trợ thỏa ngưỡng tối thiểu
cho trước, gọi là tập các mục dữ liệu thường xuyên. Bài toán thứ hai là tìm ra những
luật kết hợp từ những tập mục dữ liệu thường xuyên thỏa mãn độ tin cậy tối thiểu cho
trước.
Bài toán thứ hai được giải quyết như sau : Giả sử ta có các tập mục dữ liệu
thường xuyên Lk, với Lk= {x1, x2,…, xk}, những luật kết hợp theo ngưỡng tin cậy tối
thiểu C0 với những mục dữ liệu thường xuyên này được phát sinh ra bằng cách :

Luật thứ nhất : {xi1, xi2,…xik-1} → {xik}, kiểm tra độ tin cậy của luật này có thỏa
ngưỡng tin cậy tối thiểu cho trước hay không.
Luật thứ hai : {xi1, xi2,…xik-2, xk} → {xik-1}, kiểm tra độ tin cậy của luật này có
thỏa ngưỡng tin cậy tối thiểu cho trước hay không.
Luật thứ k+1 : {xi1, xi2,…xik-2} → {xik-1, xik }, kiểm tra độ tin cậy của luật này có
thỏa ngưỡng tin cậy tối thiểu cho trước hay không.

10


Tổng quát : với mọi X ⊆ Lk ta kiểm tra độ tin cậy của luật X→L k\ X có thỏa
ngưỡng tin cậy tối thiểu cho trước hay không.
Bài toán thứ hai là đơn giản, hầu hết nghiên cứu về luật kết hợp tập trung ở bài
toán thứ nhất.
2.3. Cách tiếp cận khai phá luật kết hợp
Khai phá luật kết hợp là một lĩnh vực nghiên cứu được nhiều người quan tâm
và có nhiều kết quả đã được công bố. Dưới đây chỉ giới thiệu một số cách tiếp cận cơ
bản, làm cơ sở để phát triển các thuật toán mới
Với bài toán thứ nhất ở trên ta có thể chia nhỏ thành 2 bài toán nhỏ nữa : Tìm
các tập mục dữ liệu ứng viên và tìm các tập mục dữ liệu thường xuyên. Tập mục dữ
liệu ứng viên là những tập mục dữ liệu mà ta phải tính độ hỗ trợ để xem nó có phải là
tập mục dữ liệu thường xuyên hay không. Tập mục dữ liệu thường xuyên là những tập
mục dữ liệu có độ hỗ trợ lớn hơn hay bằng ngưỡng tối thiểu cho trước. Phát triển thuật
toán khai phá luật kết hợp, là làm giảm độ phức tạp tính toán của thuật toán để cải
thiện tốc độ xử lý.
Ta có thể phân loại các thuật toán tìm tập thường xuyên theo hai tiêu chí :
• Phương pháp duyệt qua không gian tìm kiếm
• Phương pháp xác định độ hỗ trợ của tập mục dữ liệu
Với phương pháp duyệt qua không gian tìm kiếm được phân làm 2 cách : duyệt
theo chiều rộng (BFS) và duyệt theo chiều sâu (DFS).

Duyệt theo chiều rộng là duyệt dữ liệu nguyên bản, để tính độ hỗ trợ của tất cả
các tập ứng viên có k-1, mục dữ liệu trước khi tính độ hỗ trợ của các tập ứng viên có k
mục dữ liệu. Một cơ sở dữ liệu có n mục dữ liệu, trong lần lặp thứ k để tìm những tập
k-mục dữ liệu ứng viên, phải kiểm tra tất cả Cnk =

tập k-mục dữ liệu.

Duyệt theo chiều sâu là duyệt qua CSDL đã được chuyển thành cấu trúc cây,
quá trình duyệt được gọi là đệ quy theo chiều sâu của cây.
Với CSDL có n mục dữ liệu, I= {x 1, x2,…,xn} thì không gian tìm kiếm là tất cả
các tập con của I. Đây là bài toán khó, nếu không có phương pháp duyệt thích hợp thì
bài toán không giải được khi n đủ lớn.
Phương pháp xác định hỗ trợ của tập mục dữ liệu X ⊆ I được phân làm 2 cách:
Cách thứ nhất là đếm số giao tác trong CSDL chứa X. Cách thứ hai là tìm phần giao
của các tập định danh giao tác chứa X.
11


Phát biểu bài toán phát hiện luật kết hợp
Cho một tập các mục I, một CSDL giao dịch D, ngưỡng hỗ trợ minsup, ngưỡng
tin cậy minconf. Tìm tất cả các luật kết hợp X => Y trên CSDL D sao cho : sup
(X=>Y) ≥ minsup và conf (X=>Y) ≥ minconf. Bài toán khai thác luật kết hợp có thẻ
chia ra 2 bài toán con được phát biểu trong thuật toán sau:
Nội dung thuật toán:
Đầu vào: I, D, minsup, minconf
Đầu ra: Các luật kết hợp thỏa mãn minsup và minconf
Phương thức:
1. Tìm tất cả các tập mục phổ biến từ CSDL D tức là tìm tất cả các tập mục có
độ hỗ trợ lớn hơn hoặc bằng minsup.
2. Sinh ra các luật từ tập mục phổ biến (large itemsets) sao chỗ độ tin cậy của

luật lớn hơn hoặc bằng minconf
Bước 1 : Tìm các tập mục phổ biến
Bước 2 : Sinh các luật kết hợp từ tập mục phổ biến tìm được ở bước 1.
2.4. Luật kết hợp cơ sở
2.4.1. Phát hiện các tập mục phổ biến
Các thuật toán phát hiện tập mục phổ biến, phải thiết lập một số giai đoạn trên
CSDL. Trong giai đoạn đầu, ta thực hiện tính độ hỗ trợ support cho mỗi mục riêng lẻ
và xác định xem mục nào là phổ biến, nghĩa là có support ≥ minsup. Trong mỗi giai
đoạn tiếp theo, ta bắt đầu với các tập mục phổ biến đã tìm được trong giai đoạn trước
để sinh ra các tập mục có khả năng là tập phổ biến mới (tập mục ứng cử) và tính độ
hỗ trợ cho các tập mục ứng cử này bằng một phép duyệt CSDL. Cuối mỗi giai đoạn,
người ta xác định xem trong các tập mục phổ biến cho giai đoạn tiếp theo. Tiến trình
này sẽ tiếp tục cho đến khi không tìm được một tập các mục phổ biến mới hơn.

12


Hình 2.1 : Sơ đồ tổng quan của thuật toán khai phá tập mục phổ biến
Thuật toán Apriori
Các bước chính trong việc khai phá các luật kết hợp:
- Sinh ra tất cả tập các mục chọn phổ biết(có tần suất > tần suất tối thiểu).
- Sinh ra các luật kết hợp có độ tin cậy cao ( độ tin cậy của luật kết hợp > độ tin
cậy tối thiểu) từ tất cả các tập mục chọn phổ biến.
Số lượng các luật có thể có. Giả sử có d mục chọn khác nhau:
- Tổng tập các mục chọn = 2d
- Tổng cố lượng các luật kết hợp có thể: R = 3d – 2d+1 + 1
Nguyên lý của apriori: tập con các tập của mục chọn phổ biết cũng phổ biến.
Nội dung thuật toán :
Dữ liệu vào : Tập các giao dịch D, ngưỡng hỗ trợ minsup
Dữ liệu ra : Tập Answer bao gồm các tập mục phổ biến trên D


13


Phương pháp :

Giải thích thuật toán :
Trong thuật toán này, giai đoạn đầu đơn giản chỉ là việc tính độ hỗ trợ của các
mục. Để xác định L1, ta chỉ giữ lại các mục có độ hỗ trợ lớn hơn hoặc bằng minsup.
Trong các giai đoạn thứ k sau đó (k>1) mỗi giai đoạn gồm 2 pha:
• Pha 1 : Các (k-1) –itemset phổ biến trong tập Lk-1 tìm được trong giai đoán thứ
k-1 được dùng để sinh ra các tập mục ứng cử C k bằng cách thực hiện hàm
apriori_gen().
• Pha 2 : CSDL D sẽ được quét để tính độ hỗ trợ cho mỗi tập mục ứng cử rtrong
Ck. Các tập mục ứng cử trong C k mà được chứa trong giao dịch t có thể được xác định
một cách hiệu quả bằng việc sử dụng cây băm.
 Hàm apriori_gen() thực hiện hai bước
• Bước kết nối (Joins tep) : tìm Lk là tập mục k-mục tương ứng được sinh ra bởi
việc kết nối Lk-1 với chính nó cho kết quả là C k. Giả sử L1, L2 thuộc Lk-1. Ký hiệu Lij là
mục thứ j trong Li. Điều kiện là các tập mục hay các mục tương ứng trong giao dịch có
thứ tự. Bước kết nối như sau : Các thành phần Lk-1 kết nối (nếu có chung k-2 mục đầu
tiên) tức là : (L1[1]=L2[1]) ∩ (L1[2]=L2[2]) ∩ ... ∩ (L1[k-2]=L2[k-2]) ∩ (L1[k-1]=L2[k1]).
• Bước cắt tỉa (Prune step) : Ck là tập chứa Lk (có thể là tập phổ biến hoặc
không) nhưng tất cả tập mục k-mục phổ biến được chứa trong C k. Bước này, duyệt lần
2 CSDL để tính độ hỗ trợ cho mỗi ứng cử trong Ck sẽ nhận được Lk.

14


 Hàm subnet và cấu trúc cây băm (hash- tree)

Cấu trúc cây băm : Để tăng hiệu quả cho việc tìm các tập mục thường xuyên và
tính độ hỗ trợ cho các tập mục ứng cử, thuật toán sử dụng cấu trúc cây băm để lưu trữ
các tập mục ứng cử Ck. Mỗi nút của cây băm hoặc chứ một danh sách của các tập mục
(nếu là nút lá) hoặc một băm (hash table) (nếu là nút trong). Tại mỗi nút trong, mỗi
phần tử (bucket) của bảng băm trỏ đến một nút khác. Gốc của cây được định nghĩa có
độ sâu bằng 1. Nút ở độ sâu d thì trỏ đến nút ở độ sâu (d+1). Các tập mục lưu trữ trong
các nút lá tạo thành một danh sách liên kết và đã được sắp xếp. Khi số tập mục lưu trữ
trong nút lá vượt quá ngưỡng thì nút lá chuyển thành nút trong. Khi thêm một tập mục
ci vào cây, ta bắt đầu duyệt từ nút gốc trên cây cho đến khi tìm được nút lá phù hợp,
cách thực hiện như sau : ở mỗi nút trong độ sâu d chúng ta quyết định đi theo nhánh
nào bằng cách sử dụng băm đối với mục d (ci[d] lưu mục thứ d) của tập mục ci.
Hàm subnet (Ck, t) : hàm này dùng đề tìm tất cả các tập mục ứng cử tròn C k có
chứa trong giao dịch t. Để tìm tập mục ứng cử ta bắt đầu từ nút gốc : nếu nút gốc là nút
lá thì ta xem các tập mục trong nút lá đó có chứa giao dịch t hay không. Trường hợp
nút trong và là kết quả của việc áp dụng hàm băm cho mục thứ i của giao dịch t thì ta
tiếp tục thực hiện hàm băm cho mục (i+1) của giao dịch t, cho đến khi tìm gặp nút lá.
Thủ tục tìm này được thực hiện đệ quy.
2.4.2. Một số thuật toán phát hiện tập mục phổ biến khác
 Thuật toán Apriori- TID
Thuật toán Apriori quét toàn bộ CSDL trong mỗi giai đoạn để tính độ hỗ trợ.
Việc quét toàn bộ CSDL có thể là không cần thiết đối với tất cả các giai đoạn. Với ý
tưởng, Agrawal đã đề xuất một thuật toán khác gọi là thuật toán Apriori-TID.
Tương tự thuật toán Apriori, thuật toán Apriori-TID cũng sử dụng hàm
apriori_gen() để xác định các tập mục ứng cử trước khi bắt đầu mỗi giai đoạn.
Điểm khác nhau chủ yếu của thuật toán này so với thuật toán Apriori là nó
không sử dụng CSDL để tính độ hỗ trợ trong các giai đoạn k> 1. Thay vào đó nó sử
dụng mã khóa của các tập mục ứng cử đã sử dụng trong giai đoạn trước. Nhiều thí
nghiệm trên nhiều CSDL chỉ ra rằng thuật toán Apriori cần ít thời gian hơn thuật toán
Apriori- TID trong các giai đoạn đầu nhưng mất nhiều thời gian cho các giai đoạn sau.
 Thuật toán Apriori- Hybrid

Thuật toán này dựa vào ý tưởng “không cần thiết phải sử dụng cùng một thuật
toán cho tất cả các giai đoạn lên trên dữ liệu”. Như đã nói ở trên thuật toán Apriori
thực thi hiệu quả ở giai đoạn đầu, còn thuật toán Apriori- TID thực thi hiệu quả ở giai

15


đoạn sau nên phương pháp của thuật toán Apriori- Hybrid là kết hợp cả 2 thuật toán
trên.
 Thuật toán AIS (Agrawal Imielinski Swami)
Trong thuật toán ASI, tập các mục ứng cử được sinh ra và được tính khi quét
toàn bộ CSDL. Với mỗi giao dịch t, thuật toán chọn các tập mục phổ biến nào đã được
phát hiện ở giai đoạn trước có chứa trong giao dịch. Các tập mục ứng cử mới được
sinh ra bằng việc mở rộng các tập phổ biến này với các mục khác trong giao dịch t.
2.4.3. Sinh luật kết hợp
Để sinh các luật, với mỗi tập mục phổ biến l, ta tìm tất cả các tập con khác rỗng
của l. Với mỗi tập a ⊂ l tìm được, ta sinh ra luật a ⇒ (l - a) nếu tỷ số

≥ minconf.

Thủ tục sinh ra các tập mục con của một tập mục phổ biến là thủ tục để quy,
được mô tả như sau :
Với tập mục phổ biến {A, B, C, D} đầu tiên ta chọn tập con là {A, B, C} rồi
sau đó chọn tập con là {A, B}… Khi đó, nếu ∃ a ⊂ l và luật a ⇒ (l - a) có độ tin cậy
nhỏ hơn minconf thì ta không cần phải xem xét các luật có tiền đề là a’, ∀ a’ ⊆ a.
Chẳng hạn, nếu ABC ⇒ D Có độ tin cậy nhỏ hơn minconf thì ta không cần kiểm tra
luật AB => CD vì AB⊂ ABC nên sup (AB) ≥ sup (ABC) và do đó

< minconf.


16




CHƯƠNG III : MỘT SỐ PHƯƠNG PHÁP KHAI PHÁ LUẬT
KẾT HỢP SONG SONG VÀ PHÂN TÍCH ĐÁNH GIÁ
CÁC THUẬT TOÁN
3.1. Nguyên lý thiết kế thuật toán song song
Những thuật toán, trong đó có một số thao tác có thể thực hiện đồng thời được
gọi là thuật toán song song. Tổng quát hơn, thuật toán song song là một tập các tiến
trình hoặc các tác vụ có thể thực hiện đồng thời và có thể trao đồi dữ liệu với nhau để
kết hợp cùng giải một bài toán đặt ra.
Có năm nguyên lý chính trong việc thiết kế thuật toán song song :
1. Các nguyên tắc lập lịch : Giảm thiểu các bộ xử lý sử dụng trong thuật toán
sao cho thời gian tính toán không tăng (xét theo khía cạnh độ phức tạp).
2. Nguyên lý hình ống : Nguyên lý này được áp dụng khi bài toán xuất hiện
một dãy các thao tác {T1, T2,…Tn} trong đó Ti+1 thực hiện sau khi Ti kết thúc.
3. Nguyên lý chia để trị : Chia bài toán thành những phần nhỏ, tương đối độc
lập với nhau và giải quyết chúng một cách song song.
4. Nguyên lý đồ thì phụ thuộc dữ liệu : Phân tích mối quan hệ dữ liệu trong tính
toán để xây dựng đồ thị phụ thuộc dữ liệu và dựa vào đó để xây dựng thuật toán song
song.
5. Nguyên lý điều khiển tranh đua : Nếu hai tiến trình cùng muốn truy cập vào
cùng một dữ liệu thì chúng phải tương tranh với nhau, nghĩa là chúng có thể cản trở
lẫn nhau.
Ngoài ra, khi thiết kế thuật toán song song cần quan tâm đến các vấn đề sau :
- Hiệu quả thực hiến của thuật toán song song có thế rất khác nhau, mà yếu tố
quan trọng nhất ảnh hưởng đến độ phức tạp tính toán là cấu hình topo liên kết của các
đơn vị xử lý.

- Thuật toán song song phải được thiết kế dựa trên những kiến thức về kiến trúc
máy tính, ngôn ngữ lập trình song song các phướng pháp tính toán.
3.2. Hướng tiếp cận chính trong thiết kế thuật toán khai phá luật kết hợp song
song
Hai hướng tiếp cận chính trong thiết kế thuật toán khai phá luật kết hợp song
song đó là : mô hình song song dữ liệu và mô hình song song thao tác.

17


3.2.1. Mô hình song song dữ liệu

Hình 3.1 Mô hình song song dữ liệu
Mô hình song song dữ liệu thực thi thao tác giống nhau hay thực thi lệnh trên
một tập con dữ liệu cùng một thời điểm. Tất cả các bộ xử lý thực hiện chương trình
giống nhau. Tuy nhiên, trong chương trình này, ta có thể sử dụng cấu trúc điều khiển
if- then- else để chỉ định lệnh nào được thực thi với bộ xử lý nào, tức là một phần số
chương trình chỉ thị được thực hiện trên một hay một vài bộ xử lý.
Trong mô hình song song dữ liệu, dữ liệu cần phải phân chia thành các tập con
dữ liệu để tăng tốc đạt được bằng cách giảm khối lượng dữ liệu cần được xử lý trên
mỗi bộ xử lý.
Thuật toán được thiết kế dựa vào mô hình song song dữ liệu dễ dàng thực thi, ít
phụ thuộc vào kiến trúc máy tính song song và năng suất cao. Tuy nhiên, nó cũng gặp
khó khăn trong việc cân bằng tải công việc do sự chênh lệch dữ liệu.
3.2.2. Mô hình song song thao tác
Trong mô hình song song thao tác, mỗi bộ xử lý thực thi tập chỉ thị khác nhau.
Các chương trình phối hợp với nhau để hoàn thành cũng một mục tiêu. Ý tưởng mô
hình song song thao tác là giảm độ phức tạp giao tác bằng cách chia thao tác thành các
thao tác nhỏ để thực thi.
Tập dữ liệu hoạt động trong mỗi chương trình không nhất thiết giống nhau. Các

thuật toán song song được thiết kết dựa vào mô hình song song thao tác có độ phức tạp
tính toán nhỏ hơn so với các thuật toán tuần tự do thao tác được chia thành những thao
tác nhỏ hơn để dễ xử lý. Tuy nhiên, việc thực thi các thuật toán này lại phụ thuộc vào
kiến trúc máy tính song song và mang tính chuyên dụng.

18


3.3. Một số thuật toán khai phá luật kết hợp song song
3.3.1. Thuật toán Count Distribution (CD)
Thuật toán sử dụng kiến trúc không chia sẻ, mỗi bộ xử lý có một bộ xử lý
chính và bộ nhớ phụ riêng. Các bộ xử lý này được kết nối với nhau bởi một mạng
truyền thông và có thể được truyền thông tin cho nhau bằng việc truyền thông điệp.
Dựa trên mô hình song song dữ liệu, dữ liệu được phân hoạch cho các bộ xử lý, mỗi
bộ xử lý thực thi công việc giống như thuật toán Apriori tuần tự nhưng thông tin bởi
các bộ xử lý trên các phân hoạch dữ liệu của nó. Số đếm hỗ trợ tổng thể được thiết lập
thông qua môi trường truyền thông điệp MPI

Hình 3.2 : Sơ đồ thuật toán Count Distribution
Các kí hiệu sử dụng trong thuật toán :
I : Tập mục phân biệt trong CSDL giao dịch D
D1, D2,….Dp : Các phân hoạch CSDL, p là số các bộ xử lý
Minsup : độ hỗ trợ tối thiểu
L : Tập các tập mục phổ biến
Nội dung thuật toán
Dữ liệu vào : I, minsup, D1, D2,…Dp
Dữ liệu ra : L

19



Phương pháp

Giải thích thuật toán :
Trong thuật toán CD, CSDL D được phân hoạch thành {D 1, D2,…Dp} và phân
bố lần lượt cho các bộ xử lý Pi (1≤ i≤ p). Thuật toán gồm 3 bước cơ bản sau :
Bước 1 : Mỗi bộ xử lý P i quét phân hoạch CSDL cục bộ Di để tính các số đếm
hỗ trợ cục bộ cho các tập mục ứng cử Ck.
Bước 2 : Mỗi bộ xử lý trao đổi các số đếm hỗ trợ cục bộ của các tập mục ứng
cử trong CSDL D bằng cách sử dụng lệnh MPI_Allreduce trong MPI.
Bước 3 : Các tập mục phổ biến tổng thể L k được xác định dựa vào ngưỡng hỗ
trợ minsup và các tập mục ứng cử C k+1 được sinh ra từ Lk bằng cách áp dụng thuật toán
apriori_gen() trên mỗi bộ xử lý một cách độc lập. Thuật toán CD lặp lại bước 1→3 cho
đến khi không còn tập mục ứng cử nào được sinh ra.
3.3.2. Thuật toán Data Distribution (DD)
Trong thuật toán DD, CSDL D được phân hoạch thành {D 1, D2,…,Dp} nên mỗi
bộ xử lý làm việc với một tập dữ liệu không đầy đủ, do đó việc trao đổi dữ liệu giữa
các bộ xử lý là cần thiết. Ngoài ra, các tập mục ứng cử cũng được phân hoạch và phân
bố cho tất cả các bộ xử lý, mỗi bộ xử lý làm việc với tập mục ứng cử C i khác nhau.

20


Hình 3.3 : Sơ đồ mô tả thuật toán Data Distribution
Nội dung thuật toán :
Dữ liệu vào : I, minnsup, D1, D2,…,Dp
Dữ liệu ra : L
Phương pháp

21



×