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

Tiểu luận công nghệ tri thức và ứng dụng LUẬT KẾT HỢP KHẲNG ĐỊNH – LUẬT KẾT HỢP DƯƠNG

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 (707.25 KB, 22 trang )

Bài thu hoạch môn Công nghệ tri thức
MỤC LỤC
MỤC LỤC 1
MỞ ĐẦU  2
CHƯƠNG I 3
TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU 3
 3
I. KHAI PHÁ TRI THỨC:

3


II. KHAI PHÁ DỮ LIỆU – DATA MINING:

4


 
!"#
$%&'( )
*%% )
CHƯƠNG II 9
LUẬT KẾT HỢP 9
 9
I. LUẬT KẾT HỢP KHẲNG ĐỊNH (LUẬT KẾT HỢP DƯƠNG):

9
+,%&-
$./%01"234
5"6764
II. LUẬT KẾT HỢP PHỦ ĐỊNH (LUẬT KẾT HỢP ÂM)



13
+,%&
5"6
III. THUẬT TOÁN CẢI TIẾN

15
8'6
5"6#
CHƯƠNG III 19
CÀI ĐẶT ỨNG DỤNG 19
 19
I. MÔI TRƯỜNG CÀI ĐẶT ỨNG DỤNG:

19
II. MÔ TẢ CHƯƠNG TRÌNH

19
TÀI LIỆU THAM KHẢO 22
1
Bài thu hoạch môn Công nghệ tri thức
MỞ ĐẦU

Khai thác luật kết hợp được giới thiệu từ năm 1993, là một tiến trình quan
trọng trong khai thác dữ liệu, mục đích là tìm ra các luật tiềm ẩn trong CSDL. Bài
toán khai thác luật kết hợp nhận được rất nhiều sự quan tâm của nhiều nhà khoa
học.
Trong nghiên cứu khai mỏ dữ liệu, khai phá luật kết hợp là một trong
những chủ đề nghiên cứu quan trọng nhất. Hầu hết các thuật toán khai phá luật kết
hợp tập trung vào việc tìm kiếm các luật kết hợp khẳng định (hay còn gọi là luật

kết hợp dương). Nhiều đề tài nghiên cứu trong khai mỏ dữ liệu cho thấy rằng các
luật kết hợp phủ định (hay còn gọi là luật kết hợp âm) cũng quan trọng như luật
kết hợp dương.
Các luật kết hợp phủ định có thể giúp người dùng nhanh chóng quyết định
các mục (items) quan trọng thay vì phải kiểm tra toàn bộ các giao dịch
(transaction). Ví dụ, trong sinh học, chúng ta có thể tìm ra các mối quan hệ phủ
định như nếu protein A xuất hiện thì sẽ không xuất hiện protein B và C. Từ mối
quan hệ này, giúp các nhà khoa học nghiên cứu không mất quá nhiều thời gian để
tìm ra một phương thuốc mới. Nếu theo phương pháp truyền thống, để tìm ra các
mối quan hệ này có thể tiêu tốn nhiều thời gian và tạo ra nhiều các luật thừa. Vì
vậy, một thuật toán hiệu quả để tìm ra các luật kết hợp phủ định là khá hữu ích.
Luật kết hợp dương và luật kết hợp âm rất quan trọng trong việc khai thác
những thông tin hữu ích bị ẩn chứa trong kho dữ liệu khổng lồ. Đặc biệt, luật kết
hợp phủ định có thể tương quan loại trừ lẫn nhau giữa các mặt hàng (items). Mặc
dù đã có rất nhiều nghiên cứu, song vẫn còn tồn tại một số thách thức trong việc
khai thác luật kết hợp dương và luật kết hợp âm để giải quyết vấn đề “khó khăn
trong việc xác định các tập phần tử thường xuyên”, “làm thế nào để xóa các mâu
thuẫn giữa luật kết hợp âm và luật kết hợp dương”. Trong bài báo cáo này, chúng
tôi tập trung vào một số thuật toán hỗ trợ cho việc khai mỏ các luật kết hợp dương
và luật kết hợp âm.
2
Bài thu hoạch môn Công nghệ tri thức
Chương I
TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU

I. Khai phá tri thức:
i. Khái niệm khai phá tri thức:
- Khám phá tri thức là tìm ra những tri thức tiềm ẩn, những tri thức mới
(không phải là những tri thức kinh điển, kinh nghiệm,…)
ii. Quá trình khám phá tri thức:

Hình 1: Quá trình khám phá tri thức
- Quá trình khám phá tri thức là một chuỗi lặp gồm các bước:
(1) Data Cleaning (làm sạch dữ liệu): lọai bỏ nhiễu và các dữ liệu không
cần thiết.
(2) Data Integration (tích hợp dữ liệu): quá trình hợp nhất dữ liệu thành
những kho dữ liệu (data warehouses & data marts) sau khi đã làm sạch
và tiền xử lý (data cleaning & preprocessing).
3
Bài thu hoạch môn Công nghệ tri thức
(3) Data selection (chọn lựa dữ liệu): chọn lựa dữ liệu từ những kho dữ
liệu và sau đó chuyển đổi về dạng thích hợp cho quá trình khai thác tri
thức. quá trình này bao gồm cả việc xử lý với dữ liệu nhiễu (noisy
data), dữ liệu không đầy đủ (incomplete data),…
(4) Data Transformation (chuyển đổi dữ liệu): các dữ liệu được chuyển
đổi sang các dạng phù hợp cho quá trình xử lý.
(5) Data Mining (khai phá dữ liệu): là một trong các bước quan trọng
nhất, trong đó sử dụng những phương pháp thông minh để chắc lọc ra
những mẫu dữ liệu.
(6) Pattern Evaluation (đánh giá mẫu): quá trình đánh giá các kết quả tìm
được thông qua các độ đo nào đó.
(7) Knowledge presentation (biểu diễn tri thức): quá trình này sử dụng các
kỹ thuật để biểu diễn và thể hiện trực quan cho người dùng.
- Quá trình khám phá tri thức được thực thi trên các đối tượng:
o Data sources (các nguồn dữ liệu).
o Data warehouse (kho dữ liệu).
o Task-relevant data (dữ liệu cụ thể sẽ được khai phá).
o Patterns (mẫu kết quả từ khai phá dữ liệu).
o Knowledge (tri thức đạt được).
II. Khai phá dữ liệu – Data Mining:
1. Khái niệm khai phá dữ liệu:

- Khai phá dữ liệu là một tập hợp các kỹ thuật được sử dụng để tự động khai
thác và tìm ra các mối quan hệ lẫn nhau của dữ liệu trong một tập hợp dữ liệu
khổng lồ và phức tạp, đồng thời cũng tìm ra các mẫu tiềm ẩn trong tập dữ liệu đó.
Dữ liệu được lưu trữ có thể là:
o Các tập tin truyền thống (flat files).
o Các cơ sở dữ liệu quan hệ (relational databases) hay quan hệ đối tượng
(object relational databases).
o Các cơ sở dữ liệu giao tác (transactional databases) hay kho dữ liệu
(data warehouses).
o Các cơ sở dữ liệu hướng ứng dụng: cơ sở dữ liệu không gian (spatial
databases), cơ sở dữ liệu thời gian (temporal databases), cơ sở dữ liệu
không thời gian (spatio-temporal databases), cơ sở dữ liệu chuỗi thời
gian (time series databases), cơ sở dữ liệu văn bản (text databases), cơ
sở dữ liệu đa phương tiện (multimedia databases),…
o Các kho thông tin: world wide web,…
4
Bài thu hoạch môn Công nghệ tri thức
ii. Các tác vụ khai phá dữ liệu:
- Năm thành tố cơ bản để đặc tả một tác vụ khai phá dữ liệu:
o Dữ liệu cụ thể sẽ được khai phá (task-relevant data)
• Phần dữ liệu từ các dữ liệu nguồn được quan tâm
• Tương ứng với các thuộc tính hay chiều dữ liệu được quan tâm
• Bao gồm: tên kho dữ liệu/cơ sở dữ liệu, các bảng dữ liệu hay các
khối dữ liệu, các điều kiện chọn dữ liệu, các thuộc tính hay chiều dữ liệu
được tâm, các tiêu chí gom nhóm dữ liệu
o Bao gồm: các phân cấp ý niệm, niềm Lọai tri thức sẽ đạt được (kind of
knowledge)
• Bao gồm: đặc trưng hóa dữ liệu, phân biệt hóa dữ liệu, mô hình phân
tích kết hợp hay tương quan, mô hình phân lớp, mô hình dự đoán, mô hình
gom cụm, mô hình phân tích phần tử biên, mô hình phân tích tiến hóa

• Tương ứng với tác vụ khai phá dữ liệu cụ thể sẽ được thực thi
o Tri thức nền (background knowledge)
• Tương ứng với lĩnh vực cụ thể sẽ được khai phá
• Hướng dẫn quá trình khám phá tri thức
• Hỗ trợ khai phá dữ liệu ở nhiều mức trừu tượng khác nhau
• Đánh giá các mẫu được tìm thấy
• tin của người sử dụng về các mối quan hệ của dữ liệu.
o Các độ đo (interestingness measures)
• Thường đi kèm với các ngưỡng giá trị (threshold)
• Dẫn đường cho quá trình khai phá hoặc đánh giá các mẫu được tìm
thấy
• Tương ứng với loại tri thức sẽ đạt được và do đó, tương ứng với tác
vụ khai phá dữ liệu cụ thể sẽ được thực thi
• Kiểm tra: tính đơn giản (simplicity), tính chắc chắn (certainty), tính
hữu dụng (utility), tính mới (novelty)
o Các kỹ thuật biểu diễn tri thức/trực quan hóa mẫu (pattern visualization
and knowledge presentation)
• Xác định dạng các mẫu/tri thức được tìm thấy để thể hiện đến người
sử dụng
• Bao gồm: luật (rules), bảng (tables), báo cáo (reports), biểu đồ
(charts), đồ thị (graphs), cây (trees), và khối (cubes).
iii. Các nhiệm vụ chính của khai phá dữ liệu:
5
Bài thu hoạch môn Công nghệ tri thức
Hình 2: Nhiệm vụ chính của khai phá dữ liệu
- Dự đoán (predictive):
o Sử dụng một vài biến để dự báo giá trị chưa biết hoặc giá trị tương lai
của các biến khác
• Phân lớp: phát hiện ra mô tả của một vài lớp đã được xác định và
phân loại dữ liệu vào một trong các lớp đó.

• Hồi qui: ánh xạ từ một mẫu dữ liệu thành một biến dự đoán trước có
giá trị thực.
• Phát hiện sự thay đổi / lạc hướng: phát hiện ra những thay đổi quan
trọng nhất trong dữ liệu
- Mô tả (Descriptive):
o Xác định các mẫu mô tả DL mà con người có thể hiểu được
• Gôm cụm: tìm ra một tập xác định các nhóm hay các cụm để mô tả
dữ liệu
• Tóm tắt: phát hiện ra một mô tả tóm tắt cho một tập con dữ liệu
• Mô hình hóa phụ thuộc: phát hiện ra một mô hình mà mô tả phụ
thuộc quan trọng nhất giữa các biến.
iv. Các kỹ thuật khai phá dữ liệu:
- Khai thác dữ liệu lấy ý tưởng từ các lĩnh vực như:
o Các hệ thống phân tích dữ liệu thống kê (statistical data analysis
systems).
o Các hệ thống truy hồi thông tin (information retrieval systems)
6
Bài thu hoạch môn Công nghệ tri thức
o Các hệ sơ sở dữ liệu miễn dịch (deductive database systems).
o Các hệ cơ sở dữ liệu (database systems).
- Các kỹ thuật truyền thống có thể không phù hợp do:
o Kích thước lớn của dữ liệu.
o Số chiều dữ liệu lớn.
o Bản chất dữ liệu không đồng nhất
v. Ý nghĩa và vai trò của khai phá dữ liệu:
- Công nghệ hiện đại trong lĩnh vực quãn lý thông tin hiện diện khắp nơi
(ubiquitous) và có tính ẩn trong nhiều khía cạnh của đời sống hằng ngày: làm việc,
mua sắm, tìm kiếm thông tin, nghỉ ngơi,…
- Được áp dụng trong nhiều ứng dụng thuộc nhiều lĩnh vực khác nhau.
- Hỗ trợ các nhà khoa học, giáo dục học, kinh tế học, doanh nghiệp, khách

hàng,…
vi. Ứng dụng của khai phá dữ liệu
a. Phân tích và quản lý thị trường
- Nguồn của dữ liệu từ đâu?
o Các giao dịch sử dụng thẻ tín dụng, các thẻ khách hang thường xuyên,
các phiếu giảm giá, các cuộc gọi phàn nàn của khách hang.
- Quảng cáo cá nhân (Target marketing)
o Tìm ra (xác định) những nhóm khách hang “mẫu” có cùng các đặc điểm
về sở thích, mức thu nhập, thói quen chi tiêu, …
o Xác định các mẫu (kiểu) chi trả / mua bán thường xuyên.
- Phân tích thị trường (Cross-maket analysis)
o Tìm ra các mối lien kết / tương quan giữa các sản phẩm bán ra (hoặc
giữa các đợt bán hàng), để đưa ra các dự đoán.
- Lập hồ sơ khách hàng (Customer profiling)
o Những kiểu khách hàng nào mua những mặt hàng nào (phân nhóm hoặc
phân loại).
- Phân tích yêu cầu khách hàng
o Xác định các sản phẩm phù hợp nhất cho các nhóm khách hang khác
nhau.
o Dự đoán những yếu tố nào sẽ thu hút được các khách hàng mới
- Cung cấp những thông tin tóm tắt
o Các báo cáo tóm tắt theo nhiều chiều (yếu tố).
o Các thông tin thống kê (xu hướng, dịch chuyển).
b. Quản lý rủi ro:
7
Bài thu hoạch môn Công nghệ tri thức
- Lập kế họach tài chính và đáng giá tài sản
o Phân tích và dự đoán luồng tiền mặt.
o Phân tích các tuyên bố tài chính của doanh nghiệp để đánh giá tài sản.
o Phân tích các chuỗi dữ liệu tài chính.

- Lập kế họach sử dụng tài nguyên.
o Tóm tắt và so sánh các tài nguyên và sự khai thác (sử dụng).
- Cạnh tranh trong kinh doanh.
o Theo dõi các đối thủ cạnh tranh trong kinh doanh và các xu hướng của
thị trường.
o Nhóm các khách hang theo từng lớp, và định giá cho từng lớp.
o Xây dựng chiến lược giá trong một thị trường cạnh tranh cao.
c. Phát hiện gian lận:
- Các phương pháp: phân cụm và xây dựng mô hình dự đoán gian lận, phân
tích ngoại lai (outlier).
- Các ứng dụng: Chăm sóc sức khỏe, bán lẻ, các dịch vụ sử dụng thẻ tín
dụng, viễn thông
o Bảo hiểm ô tô: “kịch bản” một chuỗi các va chạm.
o Rửa tiền: các giao dịch chuyển tiền đáng ngờ.
o Bảo hiểm y tế: sự móc nối giữa bệnh nhân và bác sỹ, các xét nghiệm
không cần thiết.
o Viễn thông: các kiểu cuộc gọi bất thường.
o Công nghiệp bán lẻ: phát hiện các người làm thuê gian lận.
o Chống khủng bố.
d. Các vấn đề thách thức:
- Tính hiệu quả (efficiency) và tính ổn định (scalability) của các giải thuật
khai phá dữ liệu.
- Các phương pháp khai phá dữ liệu song song, phân tán, luồng (stream), và
tăng cường (incremental)
- Xử lý với dữ liệu có số chiều (số thuộc tính) lớn
- Xử lý với dữ liệu chứa nhiễu (lỗi), không chắc chắn, không hoàn chỉnh.
- Đưa (tích hợp) vào quá trình khai phá dữ liệu các ràng buộc, tri thức
chuyên gia, tri thức nền tảng (background knowledge).
- Đánh giá mẫu và tích hợp tri thức.
- Khai phá các kiểu dữ liệu rất khác nhau (dữ liệu tin sinh, web, mạng thông

tin,…).
- Tích hợp khai phá dữ liệu vào các thiết bị hoạt động.
- Bảo đảm tính an ninh, toàn vẹn, riêng tư trong khai phá dữ liệu.
8
Bài thu hoạch môn Công nghệ tri thức
Chương II
LUẬT KẾT HỢP

I. Luật kết hợp khẳng định (Luật kết hợp dương):
1. Định nghĩa:
- Gọi I={i
1
, i
2
, …, i
n
} là tập các items.
- D là tập giao tác, trong đó mỗi giao tác T
i
là tập các item. T
i
⊆ I.
- Ta gọi một giao tác T chứa X nếu X ⊆ T (Với X ⊆ I)
- Mỗi giao tác T
i
có chỉ danh là TID.
- Luật kết hợp dương là một mối quan hệ điều kiện giữa 2 tập các hạng mục
dữ liệu X và Y theo dạng sau : Nếu X thì Y, và ký hiệu là X=>Y.
Chúng ta có : X=>Y, nếu : X ⊂ I, Y ⊂ I và X ∩ Y =∅
- Có 2 đơn vị đo cơ bản quan trọng cho luật kết hợp là : support và

confidence .
o Độ tác động (Support): Thể hiện phạm vi ảnh hưởng của luật trên toàn
bộ CSDL.
Luật X=>Y có độ support là s nếu s% số giao tác trong D có chứa X∪Y.
Hay là :
Support(X=>Y) = Support(X ∪ Y)
= Card(X ∪ Y) / Card(D)% =s%
Với: Card(X ∪ Y) tập các giao tác trên CSDL có chứa cả vế trái lẫn vế
phải của luật
Card(D) : Tập tất cả các dòng trên CSDL.
o Độ tin cậy (Confidence): Thể hiện độ chính xác, tính đúng đắn hay khả
năng tin cậy của luật trong phạm vi ảnh hưởng của luật (xác định bởi độ đo
support).
Luật X=>Y có độ tin cậy là c (confidence) nếu có c% số giao tác trong D
chứa X ∪ Y so với tổng số giao tác có trong D chỉ chứa X. Khi đó ta có:
Confidence(X=>Y) = Card(X ∪ Y) / Card(X)% = c%
Với: Card(X ∪ Y) tập các giao tác trên CSDL có chứa cả vế trái lẫn vế
phải của luật
Card(X): Tập tất cả các dòng chứa vế trái của luật trên CSDL
9
Bài thu hoạch môn Công nghệ tri thức
ii. Ý tưởng về tìm luật kết hợp:
- Rất tự nhiên, khi tìm kiếm các luật kết hợp trên cơ sở dữ liệu, người ta
thường đặt ra một giới hạn về độ support và confidence của các luật tìm được gọi
là minsup và minconf. Chỉ những luật nào có độ support lớn hơn minsup và độ
confidence lớn hơn minconf mới được quan tâm. Như vậy bài toán tìm luật kết
hợp dương sẽ được phát biểu là :
Tìm tất cả các luật R : X → Y sao cho support(R) > minsup và confidence(R)
> minconf.
Quy trình tìm luật kết hợp:

Input: S (tập phổ biến), minsup, minconf
Output: X (tập LKH)
B1: Với mọi S
i

Kiểm tra nếu sup(S
i
) < minsup thì loại S
i
ra khỏi S
B2: Với mọi Si
Với mọi A là tập con của S
i
& A khác rỗng
if (conf (A ⇒ (Si - A)) >= minconf)
thêm A vào X
return X
iii. Thuật toán Apriori
Ý tưởng:
- Apriori là một thuật giải được do Rakesh Agrawal, Tomasz Imielinski,
Arun Swami đề xuất lần đầu vào năm 1993. Thuật toán tìm giao dịch t có độ hỗ
trợ và độ tin cậy thoả mãn lớn hơn một giá trị ngưỡng nào đó.
- Thuật toán được tỉa bớt những tập ứng cử viên có tập con không phổ biến
trước khi tính độ hỗ trợ.
- Thuật toán Apriori tính tất cả các tập ứng cử của tập k trong một lần duyệt
CSDL. Apriori dựa vào cấu trúc cây băm. Tìm kiếm đi xuống trên cấu trúc cây
mỗi khi ta chạm lá, ta tìm được một tập ứng cử viên có tiền tố chung được bao
gồm trong giao dịch. Sau đó các tập ứng cử này được tìm trong giao dịch đã được
ánh xạ trước đó. Trong trường hợp tìm thấy biến đếm được tăng lên 1.
- Ký hiệu: Giả sử các mục trong mỗi giao dịch được lưu giữ theo trật tự từ

điển. Gọi số các mục trong một tập mục là kích thước của nó và gọi tập mục có
kích thước k là tập k-mục (tập k mục). Các mục trong mỗi tập mục cũng được giữ
ở trật tự từ điển. Ta sử dụng các ký hiệu sau:
10
Bài thu hoạch môn Công nghệ tri thức
o 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 đó)
o 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)
Thuật toán:
Input: CSDL D, minsup.
Output: Tập các tập mục phổ biến.
1. L
1
= {Các 1 - itemset phổ biến};
2. k=2;
3. While( L
k-1
! =

)
4. { C
k
= apriori_gen(L
k-1
, minsup);// các ứng cử mới theo chương trình con ở
dưới đây.
5. for( ∀ giao dịch t∈ D)

6. { C
t
=Subset (C
k
,t);// ứng cử viên được chứa trong t
7. for (∀ ứng cử c ∈ C
t
)
8. c.count ++;
10. }
11. L
k
={ c

C
k

c.count

minsup}
12. k++;
13. }
14. Return L=

k
L
k'
;
// sinh ứng cử viên mới (**)
Void apriori_gen(L

k-1
, minsup )
1. { for (

itemset l
1

L
k-1
)
2. for (

itemset l
2

L
k-1
)
3. if((L
1
(1)== L
2
(1)&& L
1
(2) == L
2
(2)&& && L
1
(k-2) == L
2

(k-2)) &&
L
1
(k-1) == L
2
(k-1))
4. { c= L
1
kết nối L
2
;
5 if( has_inrequent_subset(c, L
k-1
)) delete c;
6 else add c to C
k
;
7 }
8 return C
k
9. }
Boolean has_infrequent_subset(c,L
k-1
)
1. { for (

(k-1)-subset s

c)
2. if(s ∉ L

k-1
) return TRUE;
3. else return FALSE ;
11
Bài thu hoạch môn Công nghệ tri thức
4. }
Giải thích:
- Lần duyệt đầu tiên, sẽ tính số lần xuất hiện của mỗi mục để xác định các 1-
itemset phổ biến. Lần duyệt thứ k (k ≥ 2) sẽ bao gồm 2 giai đoạn:
o Tập phổ biến L
k-1
đã tìm thấy ở lần duyệt thứ k-1 được sử dụng để sinh
ra các tập ứng cử viên C
k
bằng việc sử dụng hàm Apriori_gen. Dựa vào CSDL,
tính độ hỗ trợ của các ứng của viên trong C
k
. Các ứng cử viên trong C
k

được chứa trong giao dịch t có thể được xác định một cách hiệu quả bằng việc
sử dụng cây băm được mô tả như sau:
o Trong giai đoạn 2 (giai đoạn sửa, tỉa): xoá bỏ các tập c

C
k
sao cho
một vài (k-1) – tập con của c không nằm trong L
k-1
. Thủ tục này là đầy đủ bởi

đối với bất kì tập nào L
k
với độ hỗ trợ tối thiểu thì các tập con kích cỡ (k-1)
cũng có độ hỗ trợ tối thiểu, do đó nếu ta mở rộng mỗi tập trong L
k-1
với tất cả
các tập mục có thể và sau đó xoá tất cả các tập mà (k-1) – tập con của nó không
nằm trong L
k-1
, ta sẽ nhận được tập các tập trong L
k.
- Việc kết nối là tương đương với việc mở rộng L
k-1
với mỗi mục nằm trong
CSDL và sau đó xoá bỏ các tập này mà đối với nó (k-1) –itemset nhận được bằng
việc xoá đi mục thứ (k-1) không nằm trong L
k-1
. Ở giai đoạn này C
k


L
k
. Với lập
luận như vậy, giai đoạn tỉa là giai đoạn người ta xoá khỏi C
k
tất

cả các tập mà các
(k-1) tập con của nó không nằm trong L

k-1
, cũng không xoá bất kỳ một tập nào có
thể nằm trong L
k
.
- Hàm Subset: Các tập ứng cử viên C
k
được lưu trữ trong một cây băm. Một
nút của cây này hoặc là chứa một danh sách của các tập (nút lá) hoặc bảng băm
( một nút trong). Trong mỗi một nút trong, mỗi cụm (bucket) của bảng băm chỉ
đến một nút khác. Gốc của cây băm được xem ở độ sâu là 1. Một nút trong ở độ
sâu d sẽ dẫn đến nút ở độ sâu d+1. Các tập được lưu trữ trong các lá. Khi ta bổ
sung thêm một tập c, ta bắt từ nút gốc và đi xuống cây cho đến khi ta chạm vào
một lá. Tại một nút ở độ sâu d, ta quyết định sẽ đi theo cành nào bằng việc áp
dụng hàm băm đối với mục thứ d của tập đó và theo con trỏ trong Bucket tương
ứng. Tất cả các nút ban đầu được tạo ra như là nút lá. Khi số các tập trong một nút
lá vượt quá ngưỡng được chọn, nút lá này được chuyển thành một nút trong.
- Bắt đầu từ nút gốc, hàm Subset tìm tất cả các ứng cử viên được chứa trong
giao dịch t như sau: Nếu ta bắt đầu tại một lá, ta tìm những tập trong nút lá này
được chứa trong giao dịch t và bổ sung các mối quan hệ với chúng đối với tập kết
quả mong muốn. Nếu ta đang ở một nút trong và ta đến được nó bằng việc băm
mục i, ta băm trên mỗi mục đi sau i trong t và áp dụng một cách đệ quy thủ tục đó
12
Bài thu hoạch môn Công nghệ tri thức
đối với nút này trong Bucket tương ứng. Đối với nút gốc, ta băm theo mỗi mục
trong t.
- Để thấy được tại sao hàm Subset trả lại tập các tham khảo mong muốn hãy
để ý đến những gì sẽ xảy ra tại nút gốc. Đối với bất kỳ tập c nào được chứa trong
giao dịch t, mục đầu tiên cần phải có trong t. Tại nút gốc, việc băm mọi mục trong
t đảm bảo được rằng ta chỉ không biết các tập mà nó bắt đầu với một mục không

nằm trong t. Những lí luận tương tự áp dụng cho các mức sâu hơn. Vì các mục
trong bất kì tập nào cũng được sắp thứ tự, nếu ta đến được một nút hiện tại bằng
việc băm mục i, ta chỉ cần quan tâm đến những mục trong t nó xuất hiện sau i.
- Bước tỉa: Xoá bớt tất cả các tập mục c ∈ C
k
mà (k-1) tập con của c không
phụ thuộc L
k-1
.
1. for (

tập mục c

C
k
)
2. for (

(k-1) – tập con s của c)
3. if (s

L
k-1
)
4. delete c khỏi C
k
;
Nhận xét:
- Thuật toán Apriori với n là độ dài lớn nhất của tập được sinh ra. Vậy thì
thuật toán sẽ thực hiện duyệt toàn bộ các giao tác n+1 lần. Như vậy, nếu bỏ qua

thời gian so sánh tìm sự xuất hiện của một mẫu trong một giao tác thì độ phức tạp
của thuật toán Apriori là O(A) > O(n*L) trong đó L là kích thước CSDL còn n là
độ dài cần đạt được của các mẫu.
- Ngoài ra, nếu độ hỗ trợ tối thiểu minsup bị thay đổi thì thuật toán sẽ phải
thực hiện lại từ đầu, điều này sẽ rất mất thời gian. Thuật toán Apriori được xây
dựng nhằm phát hiện các luật kết hợp giữa các đối tượng với độ hỗ trợ và độ tin
cậy tối thiểu.
II. Luật kết hợp phủ định (luật kết hợp âm)
1. Định nghĩa:
Định nghĩa luật kết hợp phủ định: luật kết hợp phủ định là một biểu thức
có dạng: A→¬B, ¬A→B hay ¬A→¬B; A ⊂ I và B ⊂ I mà A∩B=∅
Trong đó I là tập tất cả các items, A và B là tập con của tập I.
- Ví dụ: 78% khách hàng mua sữa và bánh mì thì ko mua bơ
- Chúng ta phân loại luật kết hợp theo các dạng sau:
o Positive Rule: (PR): A B
o Consequent Negative Rule (CNR): A→¬B
13
Bài thu hoạch môn Công nghệ tri thức
o Antecedent Negative Rule (ANR): ¬A→B
o Antecedent and Consequent Negative Rule (ACNR): ¬A→¬B
- Độ support và độ Confidence của CNR, ANR và ACNR được cho bởi công
thức sau:
o Kết quả luật kết hợp âm - Consequent Negative Rule (CNR):
o Tiền đề luật kết hợp âm - Antecedent Negative Rule (ANR)
o Tiền đề và kết quả luật kết hợp âm - Antecedent and Consequent
Negative Rule (ACNR):
- Luật kết hợp phủ định tìm kiếm các tập luật trong 3 trường hợp: Độ support
và độ tin cậy nhỏ hơn, lớn hơn hay bằng minsupp và minconf tương ứng. Thuật
toán sử dụng hệ số tương quan (CRC) giữa các tập phổ biến để tìm các luật kết
hợp phủ định. Hệ số tương quan (CRC) của tập phổ biến có thể được định nghĩa

là:
o Với A, B là các tập phổ biến
o Khi CRC (A,B) = 1: A và B độc lập với nhau
o Khi : A và B có mối tương quan phủ định
o Khi : A và B có mối tương quan phủ định
ii. Thuật toán:
14
Bài thu hoạch môn Công nghệ tri thức
- Thuật toán NEGATIVE RULE GENRATING ALGORITHM (NRGA): là
1 thuật toán tìm tất cả các luật dạng CNR, ARN và ACN
Input: A training dataset T, minsupp, minconf.
Output: frequent itemsets (FI), CNR, ANR, ACNR.
1) Let: FI=NULL và CNR=NULL, ANR=NULL, ACNR=NULL.
2) Tạo ra các tập chỉ mục thường xuyên từ tập giao dịch T.
3) for (any frequent itemset A and ⌐B in FI)
3.1 Tính support của A => ⌐B.
3.2 Tính confidence của A => ⌐B
3.3 if (supp (A=> ⌐B) ≥ minsupp and conf (A=> ⌐B) ≥ minconf)
if (CRC (A, ⌐B) <1)
{
CNR=CNR Ụ (A=> ⌐B).
}
4) for (any frequent itemset ⌐A and B in FI)
4.1 Tính supports của ⌐ A => B
4.2 Tính confidence của ⌐A => B
4.3 if (supp (⌐A=> B) ≥ minsupp and conf (⌐A=> B) ≥ minconf)
if (CRC (⌐A, B) <1)
{
ANR=ANR Ụ (⌐A=> B).
}

5) for (any frequent itemset ⌐A and ⌐B in FI)
5.1 Tính giá trị độ hỗ trợ of ⌐ A => ⌐B
5.2 Tính giá trị độ tin cậy of ⌐A => ⌐B
5.3 if (supp (⌐A=> ⌐B) ≥ minsupp and conf (⌐A=> ⌐B) ≥ minconf)
if (CRC (⌐A, ⌐B) <1
{
ACNR=ACNR Ụ (⌐A=>⌐ B).
}
6) Return CNR, ANR, ACNR.
III. Thuật toán cải tiến
1. Bài toán:
- Cho tập các giao dịch TD = {( A, B, D); (B, C, D); (B, D); (B, C, D, E);
( A, B, D, F )},
- Với tập các giao dịch trên, theo thuật toán tìm các luật kết hợp âm bên trên,
ta tìm 49 tập mục không thường xuyên:
15
Bài thu hoạch môn Công nghệ tri thức
AC, AE, AF, BE, BF, CE, CF, DE, DF, EF, ABC, ABE, ABF, ACD, ACE,
ACF, ADE, ADF, AEF, BCE, BCF, BDE, BDF, BEF, CDE, CDF, CEF,
DEF, ABCD, ABCE, ABCF, ABDE, ABDF, ABEF, ACDE, ACDF,
ACEF, ADEF, BCDE, BCDF, BDEF, CDEF,
ABCDE, ABCDF, ABCEF, ABDEF, ACDEF, BCDEF, ABCDEF.
- Có ít nhất là 110 luật kết hợp âm có thể có từ tập phổ biến thường xuyên
ABCDEF, và có ít nhất 818 luật kết hợp âm từ 49 tập phổ biến thường
xuyên trên.
- Điều này đã cho thấy rằng chúng ta phải tìm kiếm trong 1 tập luật rất lớn (ít
nhất là 818 luật) luật kết hợp âm, mặc dù cơ sở dữ liệu là khá nhỏ.
- Trong trường hợp khi có cơ sở dữ liệu lớn hơn thì sao? Rõ ràng là sẽ rất
khó khăn và mất thời gian khi duyệt các luật kết hợp trong một cơ sở dữ
liệu lớn.

- Vậy vấn đề đặt ra là:
(1) Làm thế nào để tìm ra tập mục không thường xuyên hiệu quả
(2) Làm thế nào để từ các tập mục không thường xuyên đó, tìm ra luật kết hợp
âm hiệu quả.
ii. Thuật toán
- Bước 1: Tìm kiếm các tập chỉ mục thường xuyên và không thường xuyên
của độ đo (Interest)
o Các tập chỉ mục thường xuyên liên quan đến luật kết hợp dương mà
không nằm trong độ đo (Interest), và các tập chỉ mục không thường xuyên liên
quan đến các luật kết hợp âm mà không nằm trong độ đo (Intrest). Thuật toán sau
là một thuật toán cải tiến cho việc tìm các tập chỉ mục thường xuyên và không
thường xuyên trong độ đo phù hợp (potential interest).
16
Bài thu hoạch môn Công nghệ tri thức
- Bước 2: Từ thuật toán AllItemsetsOfInterest tạo ra tập PL từ tập chỉ mục
thường xuyên và tập NL từ tập chỉ mục không thường xuyên
- Bước 3: Khai phá các luật dương theo mẫu A=>B trong PL và luật âm của
mẫu A⇒¬B, ¬A⇒ B, và ¬A⇒¬B trong NL.
17
Bài thu hoạch môn Công nghệ tri thức
18
Bài thu hoạch môn Công nghệ tri thức
Chương III
CÀI ĐẶT ỨNG DỤNG

I. Môi trường cài đặt ứng dụng:
- Hệ điều hành: Windows 7
- Ngôn ngữ lập trình Visual Studio C#
- .Net framework 3.5
II. Mô tả chương trình

- Form Main: cho phép người dùng nhập, thêm, sửa, xóa các transaction, độ
min support và min confidence.
19
Bài thu hoạch môn Công nghệ tri thức
- Form luật kết hợp dương: Xuất hiện khi người dùng click nút “Luật kết hợp
dương”. Xuất tập phổ biến, tập phổ biến tối đại, tập đóng, tập luật kết hợp dương.
- Form luật kết hợp âm: Xuất hiện khi người dùng click nút: “Luật kết hợp
âm”. Xuất tập item không thường xuyên, các tập luật kết hợp âm
20
Bài thu hoạch môn Công nghệ tri thức
21
Bài thu hoạch môn Công nghệ tri thức
TÀI LIỆU THAM KHẢO
[1] Giới thiệu phần mềm khai phá tri thức CITD DataMining 2000
/>[2] Chuyên đề Công nghệ tri thức và ứng dụng GS. TSKH Hoàng Kiếm
[3] Application of Data Mining to Intensive Care Unit Microbiologic Data 1 Stephen A.
Moser, Warren T.Jones, and Stephen E. Brossette The University of Alabana at
Birmingham, Birmingham, Alabana, USA.
22

×