Tải bản đầy đủ (.docx) (29 trang)

Ứng dụng thuật toán Apriori để tìm quy tắc trong bảng kê bệnh truyền nhiểm

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 (258.43 KB, 29 trang )

CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG
Phụ lục
Giới thiệu 4
Phần I
Giới thiệu một số thuật toán về Data Mining 5
Thuất toán C4.5 5
Thuật toán k-means 6
Thuật toán SVM 9
Thuật toán Apriori 9
Thuật toán EM 12
Thuật toán PageRank 14
Thuật toán AdaBoost 15
Thuật toán kNN 15
Thuật toán Naïve Bayes 15
Thuật toán CART 16
Phần II
Ứng dụng thuật toán Apriori để tìm quy tắc trong bảng kê bệnh truyền nhiểm
Giai đoạn chọn lọc dữ liệu 18
Gai đoạn làm sạch dữ liệu 19
Giai đoạn làm giàu dữ liệu 19
Giai đoạn mã hóa dữ liệu 20
Giai đoạn khám phá dữ liệu 20
Giới thiệu chương trình 23
Kết luận 31

CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG
Giới thiệu
Trong cuộc sống, với khối lượng thông tin khổng lồ trong mọi lĩnh vực kinh tế, tự
nhiên, khoa học, lịch sử… và cả khoa học huyền bí. Việc đưa ứng dụng công nghệ thông
tin nhầm tìm ra những quy luật tồn tại trong khối dữ liệu đó là một yêu cầu cần thiết giúp
con người nghiên cứu, đánh giá, đưa ra những định hướng cho hoạt động ngành nghề của


mình.
Từ những yêu cầu trên, lĩnh vực Data Mining đã được ra đời với mục đích giải quyết
vấn đề phân tích dữ liệu nhầm tìm ra những quy luật, thông tin quý giá.
Với sự hướng dẫn của Giáo sư - tiến sỹ khoa học Hoàng Kiếm tôi được tiếp cận một
môn khoa học khởi đầu cho những giá trị tuy duy. Tôi xin chân thành cám ơn Thầy đã tận
tình hướng dẫn, chia sẽ những kiến thức, kinh nghiệm trong thực tiển để tôi dễ dàng hiểu
và tiếp cận, nắm bắt những kỹ năng của sáng tạo, làm tiền đề cho quá trình học tập và
phát triển sau này. Xin cảm ơn!

CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG
Phần I
MỘT SỐ THUẬT TOÁN VỀ DATA MINING
Có nhiều thuật toán để giải quyết vấn đề Data Mining:
 C4.5
 K-means
 SVM (Support Vector Machines)
 Apriori
 EM ( Expectation Maximization)
 PageRank
 AdaBoost
 kNN (k-nearest neightbor classification)
 Naïve Bayes
 CART
 Thuật toán C4.5
Hệ thống xây dựng bộ phân lớp là một công cụ thường dung trong Data Mining
Cây quyết định
Cho tập S các mẫu, C4.5 sinh ra cây quyết định ban đầu như sau:
Nếu tất cả các mẫu trong S đều thuộc về cùng một lớp hay tập S nhỏ thì cây là một
nút lá với nhãn là lớp xuất hiện nhiều nhất trong S
Ngược lại, chọn một thuộc tính với hai hay nhiều “kết quả” trong tập thuộc tính.

Tạo thuộc tính này là nút gốc của cây với mỗi nhánh là mỗi kết quả của thuộc tính,

CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG
chia tập mẫu còn lại của S thành các tập con S1, S2, …., Sk theo các kết quả của S, áp
dụng cùng cách làm một cách đệ qui cho các tập S1,…, Sk
C4.5 dựa vào một trong hai heuristics sau để chọn thuộc tính làm nút gốc:
- Information Gain
Trong đó Value (A) là tập các giá trị của thuộc tính A, S
v
là tập con của S mà A
nhận giá trị v.
- Gain ration
 Thuật thoán k-means
Là thuật toán lập đơn giản để chia CSDL thành k nhóm (k do người dùng chỉ định)
Được phát triển bởi nhiều nhà nghiên cứu khác nhau, điển hình là Lloyd (1957,
1982), Forgey (1965), Friedman và Rubin (1967), McQueen (1967).
Thuật toán k-means
Thuật thao tác trên một tập các vectơ d-chiều, D = {xi| i = 1 N} trong đó xi ∈R
d

là điểm dữ liệu thứ i. Thuật toán bắt đầu bằngcách chọn k điểm làm trọng tâm.Kỹ
thuật để chọn các điểm hạt giống này là “ngẫu nhiên”. Sau đó thuật toán gọi hai bước
sau cho đến khi hội tụ (không còn thay đổi nữa):
*Bước 1. Gán dữ liệu: Mỗi điểm dữ liệu được gán vào nhóm nào gần nhất. Đây là việc
phân chia dữ liệu.

CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG
*Bước 2. Tính lại trọng tâm: đại diện của mỗi nhóm được tính lại bằng với trung bình
(mean) của các điểm dữ liệu thuộc nhóm.
Nếu các điểm dữ liệu được tính bởi xác suất (probability measure/ weights) thì đại

diện được tính bằng giá trị kì vọng (expectation) của dữ liệu.
Khoảng cách giữa hai đối tượng
Khoảng cách Minkowski:
Trong đó i=(X
i1
, X
i2
, X
ip
) và j=(X
j1
, X
j2
, X
jp
) là hai đối dữi liệu p-chiều và q là số
nguyên dương
Nếu q = 1, d là khoảng cách Manhattan
Khoảng cách giữa hai đối tượng
Nếu q = 2, d là khoảng cách Euclidean:
Các tính chất của khoảng cách Euclidean

CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG
d(i,j)>0
d(i,i)=0
d(i,j)=d(j,i)
d(i,j)≤d(i,k)+d(k,j)

CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG
 SVM

Đặc điểm
 Có nền tảng lý thuyết tốt.
 Mạnh và có độ chính xác cao.
 Không đòi hỏi nhiều về số mẫu huấn luyện.
Mục đích là tìm hàm phân lớp tốt nhất, phân biệt hai lớp trong dữ liệu huấn luyện. Độ
đo cho hàm phân lớp tốt nhất có thể được nhìn nhận theo phương diện hình học.
Đối với dữ liệu tuyến tính, hàm phân lớp tuyến tính tương ứng với một siêu phẳng
phân chi hai lớp.Vấn đề đặt ra là có nhiều siêu phẳng, làm thế nào để tìm siêu phẳng tối
ưu phân chia lớp.
 Apriori
Tiếp cận Data mining, apriori là một trong những thuật toán phổ biến nhất nhầm tiềm
qua các quy luật trong CSDL. Apriori phát sinh bùng nổ thao tác theo hàm mũ, nó tìm ra
các luật kết hợp thỏa 2 điều kiện min_sup và min_conf
Là thuật toán nền tảng để tìm các tập phổ biến sử dụng phương pháp tìm kiếm theo
chiều rộng.
Thuật toán Apriori

CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG
 Duyệt toàn bộ transation database để có được support S của 1-itemset, so sánh S
với min_sup để có được L1(1-itemset)
 Loại bỏ các itemsets không phải là frequent itemsets thu được k-itemset
 Duyệt transaction database để có được support của mỗi candidate k-itemset, so
sánh S với min_sup để thu được frequent k-itemset(L
k
)
 Lập lại bước 2 cho đến khi Candidate set (C) trống (không tìm thấy frequent
itemsets)
 Với mỗi frequent itemset I, sinh tất cả các tập con s không rỗng của I
 Với mỗi tập con s không rỗng của I, sinh ra các luật s=>(I-s) nếu độ tin cập
(Confidence) của nó ≥min_conf

Công thức tính support của luật X=> Y
Trong đó N là tổng sốrecords
Công thức tính độ tin cậy của luật X=>Y:
Trong đó n(X) là tổng số records chứa X
Các luật thỏa mãn có support và confidence thỏa mãn cả Minimum support và
Minimum confidence gọi là các luật mạnh (Strong Rule)
Minimum support và Minimum confidence goi là các giá trị ngưỡng, xác định
trước khi sinh ra các luật kết hợp.
Ví dụ:
 

 

 
     
     


   
      
  





 


    


!
"
"
!
CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG
    
       
     
    
    



 

 
     
    
    
    
Ta có frequent itemsets I={B,C,E}, với minconf=80% ta có 2 luật kết hợp là:
#$
%!&!

'(
 )
'(
 )
 '(

 )
'(
 )
 '(
 )
 '(
 )
{B,C}=>{E} và {C,E}=>{B}
Thuật toán Apriori phát hiện các luận kết hợp dạng khẳng định (Positive Rule
X=>Y) chứ không thể phát hiện các luật kết hợp ở dạng phủ định (Negative
Association Rule) ví dụ : khách hàng mua mặt hàng A thường không mua mặt
hàng B.

"
!
CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG
 Thuật toán EM (Expectation maximization)
EM là thuật toán thường được sử dụng trong gom nhóm dữ liệu….Nó cũng có thể
được ứng dụng trong việc tái xây dựng ảnh y khoa,….
Thuật toán
Tạo mô hình ban đầu
Random hoặc với số lượng nhỏ các mẫu huấn luyện.
Sử dụng mô hình ϴ’ để đạt được mô hình ϴ sao cho ϴ “tốt hơn” ϴ’
Lập lại bước trên cho đến khi đạt được cực đại.
Ví dụ:
Ví dụ đơn giản là điền các giá trị thiếu trên một cột
Cho cột dữ liệu sau [4 10 4, 10, ?, ?] trong đó dấu ? biểu thị giá trị chưa
biết. Sử dụng EM để điền giá trị thiếu này.
Giả sử mô hình chúng ta sử dụng là mean và ban đầu được khởi tạo
bằng 0. Khi đó:

DL mới: [4, 10, 0, 0]
Bước lặp 1: Mean: 3.5
DL mới :[4, 10, 3.5, 3.5]
Bước lặp 2: Mean: 5.25
DL mới: [4, 10, 5.25, 5.25]

CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG
Bước lặp 3: Mean: 6.125
DL mới: [4, 10, 6.125, 6.125]
Bước lặp 4: Mean: 6.5625
DL mới: [4, 10, 6.5625, 6.5625]
Bước lặp 5: Mean: 6.7825
DL mới: [4, 10, 6.7825, 6.7825]
Kết quả: Mean: 6.890625

CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG
 Page Rank
Page Rank được trình bày bởi Sergey Brin và Larry Page tại hội thảo quốc tế lần thứ 7
về WWW tháng 4 năm 1998. Đây là thuật toán xếp hạng tìm kiếm sử dụng hyperlink trên
web. Dựa vào thuật toán này, họ xây dụng công cụ search Google.
PageRank dựa trên xếp hạng thống kê của trang web theo hướng giá trị PageRank
được tính offline và không phụ thuộc vào yêu cầu tìm kiếm
PageRank là một giá trị quan trọng để đánh giá trang web
Thuật toán
Với N trang web {A
1
,A
2
,…A
n

}
PageRank-Iterate(G)
P
0
< -e/N
k<-1
(e thường được chọn =1, d=0.85)
Repeat P
k
<-(1-d)e + dA
T
P;
K<-k+1;
Until ||P
k
-P
k-1
|| <ɛ

CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG
 AdaBoost
Ensemble Learning là phương pháp nhằm giải quyết việc nhiều người học cùng giải
quyết một vấn đề. Khả năng tổng quát của một hệ ensemble thường tốt hơn đáng kể so
với một người học, nên phương pháp ensemble rỏ ra rất hấp dẫn.
Yoav Freund và Robert Schapire là những người đề xuất ra thuật toán
AdaBoost.AdaBoost có độ chính xác cao, rất đơn giản, ứng dụng rộng và rất thành công.
 kNN
Phương pháp đơn giản là bộ phân lớp Rote. Cách tiếp cận chính: Phân lớp dựa vào
việc so khớp hoàn toàn vế trái của dự liệu test, với một torng các dòng của dự liệu
training.

Ưu điểm : Đơn giản
Khuyết điểm: nhiều test và training.
kNN phức tạp hơn Rote: tìm nhóm k đối tượng gần nhất với dữ liệu test và dựa vào
đó để gán nhãn lớp cho test. Vấn đề chính là đo khoảng cách các đối tượng.
 Naïve Bayes
Cho một tập đối tượng, mỗi đối tượng thuộc về một lớp và chứa một vector các biến.
Mục đích của chúng ta là xây dựng một luật cho phép gán nhãn lớp đối tượng tương lai
được cho bởi một vector các biến.Và Naïve Bayes là một phương pháp quan trọng.

CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG
Để đơn giản, chúng ta giả sử chỉ 2 lớp là 0, 1. Mục đích là xâydựng nên một điểm số
sao cho nếu lớn thì kết hợp với 1 và nhỏ kếthợp với 0. Phân lớp đạt được bằng cách so
sánh điểm số này vớingưỡng t. Nếu đặt P(i|x) là xác suất của x thuộc về lớp i thì khi đó
P(1|x)/P(0|x) xác định. Theo lí thuyết ta có P(i|x) tỉ lệ thuận vớif(x,i)*P(i) nên ta có:
Giả sử rằng các mẫu là ngẫu nhiên và x là độc lập thì
 Cart
Được công bố vào năm 1984 bởi Leo Breimen, Jerome Friedman, Richard Olshen và
Charles Stone.
Cart được chia đê qui nhị phân.
Xử lý được trên dữ liệu liên tục hay định danh.
Dữ liệu được lưu trữ dưới dạng các dòng, không cần bin.
Cây được xây dựng với kích thước lớn nhất
Phần II

CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG
Ứng dụng thuật toán Apriori để tìm quy tắc trong bảng kê
bệnh truyền nhiểm
Các bước của tiến trình khai thác dữ liệu:
 Chọn lọc dữ liệu
 Xóa bỏ dữ liệu không cần thiết

 Làm giàu dữ liệu
 Mã hóa
 Khám phá tri thức
 Báo cáo
Vì dữ liệu luôn thay đổi theo thời gian, nên quá trình khai thác dữ liệu cũng diễn ra liên
tục theo thời gian (quây lui nhiều hay từng giai đoạn)

CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG
 Giai đoạn chọn lọc dữ liệu:
Dữ liệu không luôn luôn tồn tại những thông tin cần thiết, vì vậy chúng ta cần phải sang
lọc và chọ ra những giá trị cần thiết đúng với những mục đích nhu cầu.
STT Họ và tên
Tuổi
Ngày
nhập
viện
Ngày
xuất
viện
Chẩ
n
đoá
n
Bệnh
viện
Tình
trạng
lúc ra
viện
Ghi chú

Nam Nữ Ấp PX QH
1 A 2008 Ấp 7 BM
Củ
Chi
10/1/2
012
NM
C Pastuer
không có địa
phương
2 B 2010
Ấp
12
TT
Đ
Củ
Chi
29/1/2
012
NM
C BVNĐ1 Đã điều tra
3 C 1982
Ấp
Hội
Thạn
h TA
Củ
Chi
6/1/20
12 NSV BVBNĐ

không có địa
phương
4 D 1985
TT
Đ
Củ
Chi
4/1/20
11 NSV BVBNĐ Đã điều tra
5 E 1965 Ấp 7
TT
Đ
Củ
Chi
8/1/20
12 NTH BVBNĐ Đã điều tra
6 F 2010 Ấp 3
PV
A
Củ
Chi
21/1/2
012 SPB BVNĐ1 Đã điều tra
7 G 2006
Ấp
Ba
Sòng
AN
T
Củ

Chi
14/1/2
012 SXH BVNĐ1 Đã điều tra
8 H 2011
Ấp
Chợ

AN
T
Củ
Chi
17/1/2
012 SXH BVNĐ1 Đã điều tra
Qua quá trình chọn lọc dữ liệu. Những giá trị còn lại là
STT
Tuổi
PX Chẩn đoán
Nam Nữ
1 2008 BM NMC
2 2010 TTĐ NMC
3 30 TA NSV

CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG
4 15 tháng TTĐ NSV
5 1965 TTĐ NTH
6 2010 PVA SPB
7 2006 ANT SXH
8 2011 ANT SXH
 Giai đoạn làm sạch dữ liệu
Luôn tồn tại những dạng dữ liệu không đúng chuẩn, ví dụ: ta quan sát thấy độ tuổi của

bệnh nhân khi thi nhập năm sinh, khi thì tuổi, khi thì tháng tuổi. Trước khi tiến hành
Khai phá, chúng ta phải giải quyết vấn đề thống nhất chuẩn dữ liệu, cũng như tái huy
hoạch các giá trị theo những chuẩn mà chúng ta quan tâm ví dụ
Chúng ta sẽ gom nhóm theo từng độ tuổi:
Nhóm 1: từ: 0 tuổi ->10 tuổi
Nhóm 2: từ:11 tuổi -> 20 tuổi
Nhóm 3: từ:21 tuổi ->50 tuổi
Nhóm 4: ngoài 50 tuổi
• Chống trùng lấp: để thông tin khi khai thác dữ liệu đạt được sử chuẩn xác cao nhất
có thể, chúng ta phải đảm bảo rằng những dữ liệu trùng lắp được xóa bỏ.
• Giới hạn vùng giá trị: chúng ta cũng nên tiến hành kiểm tra, xóa bỏ những giá trị
nằm ngoài vùng giá trị cần thiết
 Làm giàu dữ liệu

CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG
Giai đoạn này nhầm bổ sung thêm nhiều loại thông tin có liên quan vào CSDL để
tặng thêm tính cần thiết làm gia tăng khả năng khai phá dữ liệu
 Giai đoạn mã hóa dữ liệu
Chuyển đổi kiểu dự liệu từ phức tạp thành đơn giản, thuận lợi trong quá trình tiến
hành khai phá
 Phân vùng đối với độ tuổi
 Biến đổi giá trị nhóm tuổi thành các giá trị T1, T2, T3, T4, và giới tính
nam là G1 và nữ là G2
 Giai đoạn khám phá dữ liệu
Đây là giai đoạn phức tạp nhất nhầm tìm ra các tri thức có ích tìm ẩn trong khối
dữliệu. Một số bài toàn điển hình:
 Bài toán khám phá dữ liệu kết hợp\
 Bài toán phân loại
 Bài toán gom nhóm
 Bài toán dữ báo

……………
Như đã giới thiệu một số thuật toán ở phần 1, ở phần 2 tôi xin trình bày của ứng
dụng về thuật toán Apriori.
Nguyên tắc loại bỏ Apriori: Nếu không phải là tập phổ biến thì tập bao của nó cũng
không phổ biến
• Phương pháp : Tìm tất cả các tập phổ biến 1-hạng mục

CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG
• Tạo các tập ứng viên kính thước k- hạng mục từ các tập phổ biến có kích thước (k-
1)-hạng mục
• Kiểm tra độ phổ biến của các ứng viên trên CSDL và loại bỏ các ứng viên không
phổ biến
• Dừng lại khi không tạo được tập phổ biến hay tập ứng viên
Input: CSDL D, minsupp
Output: L: các tập phổ biến trong D
C
k
: Tập ứng viên kích thước k
L
k
: Tập phổ biến kích thước k
L
1
= tập phổ biến 1-hạng mục D
For (k=1;L
k
#null;k++)
C
k+1
=apriori_gen(L

k
)// tạo tập ứng viên k+1 hạng mục
For mỗi giao tác t ∈ D //duyệt CSDL để tính support
C
t
=subset(C
k+1
,t)// lấy tập con của t ứng viên
For mỗi ứng viên c ∈ C
t
c.count++
}
L
k+1
= {c ∈ C
k+1
| c.count ≥ minsupp}
}
Return L=U
k
L
k;
• Tạo ứng viên K+1-hạng mục:
Hàm apriori_gen nhan L
k
và trả về tập ứng viên kích thước (k+1).Gồm 2 bước kết và loại
bỏ
• Giả sử các hạng mục trong L
k
sắp sếp theo thứ tự

Procedure apriori_gen (L
k
: Tập phổbiến kích thức k)
for mỗi itemset l
1
∈L
k
for moi itemset l
2
∈L
k
if(l
1
[1] = l
2
[1]) ∧(l
1
[2] = l
2
[2]) ∧ …∧(l
1
[k-1] = l
2
[k-1])∧(l
1
[k] < l
2
[k]) then

CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG

{ c = l
1
l
2
; // Bước 1 :kêt Lk với chính nó
ifhas_infrequent_subset (c, Lk ) then
Xóa c ;// B2 : Loại bỏ các ứng viên không có lợi
elseThêm c vào C
k+1
;
}
returnCk+1 ;
• Bước 2: loại bỏ để giảm C
k+1
Procedure has_infrequent_subset (c: Tập ứng viên kích thước k+1, L
k
tập phổ
biến kích thước k)
for moi k-subset s ∈c
ifs ∉L
k
then
returnTrue ;
returnFalse ;
Nhận xét thuật toán Apriori
• Phải duyệt CSDL nhiều lần
• Số lượng tập ứng viên rất lớn
• Thực hiện tính độ phổ biến nhiều, đơn điệu
Ý tưởng cải tiến thuật toán Apriori:
• Giảm số lần duyệt CSDL

• Giảm số lượng tập ứng viên
• Qui trình tính độ phổ biến thuận lợi hơn.
Giới thiệu sơ lượt thuật toán Apriori – TID
Tương tự như thuật toán Aprirori, sử dụng hàm apriori_gen để tạo ứng viên
Cải tiến theo hướng giảm số lượng giao dịch

CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG
Apriori _Tid không tính độ phổ biến của các tập hạng mục từ các mẫu tin của CSDL mà
xây dựng cấu trúng lưu trữ mới C
k
cho CSDL ban đầu.
• Mẫu tin trong C
k
có dạng <Tid,{X
k
}> với X
k
là tập phổ biến k-hạng mục xuất hiện
trong giao dịch có mã Tid
• Nếu một giao dịch không chứa bất kỳ một tập phổ biến k hạng mục thì giao dịch
này không được đưa vào C
k
Giới thiệu, cài đặt chương trình
 Cơ sở dự liệu
Sau khi thực hiện các bước chuẩn bị (chọn lọc dữ liệu… ) cơ sở dữ liệu trở nên
đơn giản, và có cấu trúc như sau
*
Tuoi Gtinh P/X Benh

T1 G1 BM NMC


T1 G1 TTD NMC

T3 G2 TA NSV

T3 G1 TTD NSV

T3 G1 TTD NTH

T1 G2 PVA SPB

T1 G1 ANT SXH

T1 G1 ANT SXH

T1 G1 BM SXH

T2 G2 HP SXH

T3 G1 HP SXH

T1 G2 ND SXH

T3 G1 PT SXH

T2 G2 PT SXH
Gồm các cột: Nhóm tuổi, giới tính, Phường xã, kết luận bệnh

CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG
Cách sử dụng.vì đặc tính của CSDL gốc là bảng exel nên khi thực hiện các thao tác

chuẩn bị, chúng ta tiến hành import dữ liệu vào chương trình, sau khi import lick nút
START để chương trình thực thi
Giới thiệu một số ý tưởng về thuật toán của chương trình
• Dùng câu lệnh sql để thống kê các tập giá trị.
• Đếm số phần tử của mỗi tập, và các phần tử của tổng CSDL để tính độ support
• Sau khi có được minsupp ta tiến hành lấy các tập thỏa support và đưa vào mãng
list[i][j] với i là đánh dấu giá trị tương ứng của cột, và j đánh dấu giá trị của tập,
giatri[i][j] lưu lại support của từng tập giá trị
• Và ở các lần thực thi tiếp theo ta sẽ thực hiện kết hợp giữa các tập giá trị ở các cột
dữ liệu khác nhau, kết hợp mãng giá trị có được và câu lệnh thực thi sql để tìm ra
giá trị và độ support

CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG
Đến khi không còn tìm ra các tập giá trị thích hợp thì dừng lại.
******đoạn chương trình tìm các tập phù hợp với giá trị min_supp ****************
Function run(va As String)
Select Case va
Case Is = 1
vaa = "Stt"
Case Is = 2
vaa = "a"
Case Is = 3
vaa = "b"
Case Is = 4
vaa = "c"
Case Is = 5
vaa = "d"
End Select
Form1.Data2.DatabaseName = App.Path & "\tachfile1.mdb"


CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG
'Data2.RecordSource = "Select * from Table1 where a=(select a from Table1 where
Stt=(select min(Stt) from Table1))"
Form1.Data2.RecordSource = "Select distinct "& vaa & " as cc from Table1"
Form1.Data2.Refresh
Dim Conn As Database
Set Conn = OpenDatabase(App.Path & "\tachfile1.mdb")
Form1.Text4.DataField = "cc"
Form1.Data2.Recordset.MoveFirst
Dim vcount, vsupcount, minsupp, i, giatri
vcount = Form1.sum.Text
i = 0
Do While Form1.Data2.Recordset.EOF = False
Form1.Data3.DatabaseName = App.Path & "\tachfile1.mdb"
Form1.Data3.RecordSource = "Select count(*) as supcount from Table1 where " & vaa
& " ='" & Form1.Text4.Text & "'"
Form1.Data3.Refresh

CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG
vsupcount = Form1.Text5.Text
giatri = Form1.Text2.Text
Form1.Text7.Text = Format(((vsupcount * 100) / vcount), "##.##")
minsupp = Form1.Text7.Text
If (Val(giatri) < Val(minsupp)) Then
manga(va, i) = Form1.Text4.Text// lấy giá trị của tập
manggiatri(va, i) = Form1.Text7.Text// giá trị support
i = i + 1
End If
Form1.Data2.Recordset.MoveNext
Loop

mang1(va) = i
Dim j
End Function
**********thực hiện kết các ứng viên**************************


×