Phát hiện tri thức và phân tích dữ liệu đang là một ngành khoa học không ngừng phát triển , các thuật toán áp dụng trong dạng này cũng rất là nhiều .Dưới đây là các dạng toán cơ bản nhất của môn học KDD
Trang 11. Phân Hoạch.
Câu 1: Cho price ={5, 10 ,11 ,13, 15, 35 ,50, 55 ,72, 92 ,204, 215}.Hãy
phân hoạch price thành 3 bin
a. Dùng kỹ thuật phân hoạch equal – frequency và kỹ thuật làm trơn
(smoothing) bin medians
equal – frequency : Chia đều price trên thành 3 bin , mỗi bin có 4
giá trị
Bin 1: 5, 10, 11, 13Bin 2:15, 35, 50, 55Bin 3:72, 92, 204, 215
Smoothing by bin medians : mỗi bin trên có 4 giá trị nên tiến
hành tính trung bình 2 giá trị ở giữa( giá trị 2 và 3) làm medians của từng bin.ví dụ: medians(Bin 1) = = 10.5
Bin 1: 10.5, 10.5, 10.5, 10.5 Bin 2: 42.5, 42.5, 42.5, 42.5 Bin 3:148 ,148 ,148, 148
Smoothing by bin boundaries : tính giá trị trung bình của tất cả
các giá trị trong từng bin, cái nào bé hơn hoặc bằng giá trị trung bình ấy thì lấy giá trị nhỏ nhất trong bin ngược lại cái nào lớn hơn giá trị trung bình thì lấy giá trị lớn nhất của bin đó
Ví dụ: = = 9.75 → Bin 1: 5,13,13,13Bin 1: 5, 13, 13, 13
Bin 2: 15,15,55,55Bin 3: 72, 72, 215, 215
b. Dùng kỹ thuật phân hoạch equal – width và kỹ thuật làm trơn
(smoothing) bin medians
equal – width : lấy giá trị lớn nhất của price trừ đi giá trị nhỏ nhất
của price rồi chia 3 (),từ đó suy ra 3 khoảng là ( 5→75)(75→145)(145→215) sau đó lựa chọn các giá trị của price – giá trị nào thuộc khoảng nào thì cho vào khoảng đó
Bin 1: 5, 10, 11, 13 , 15, 35, 50, 55, 72Bin 2: 92
Bin 3: 204, 215
Smoothing by bin medians: Bin nào có tổng số giá trị lẻ thì lấy
giá trị trung tâm làm giá trị medians( Bin 1: có 9 giá trị mà giá trị chính giữa(thứ 5) là 15 nên medians của Bin 1 :(15), bin có tổng sốgiá trị chẵn thì tính trung bình 2 giá trị chính giữa chia 2
Trang 2Bin 1: 15, 15 ,15, 15 ,15, 15 ,15, 15 ,15Bin 2: 92
Bin 3: 209.5, 209.5
Smoothing by bin boundaries:
Bin 1: 5, 5, 5, 5, 5, 72, 72, 72, 72Bin 2: 92
Bin 3: 204, 215
Câu 2: Cho price ={5, 10 ,11 ,13, 15, 35,45 ,50, 55 ,72, 92 ,204, 215}.Hãy
phân hoạch price thành 4 bin
a. Dùng kỹ thuật phân hoạch equal – frequency và kỹ thuật làm trơn
(smoothing) bin medians
equal – frequency : price có 13 giá trị mà chia thành 4 bin khi đó
mỗi bin sẽ có 3 giá trị còn thừa 1 giá trị có thể cho vào bin nào cũng được
Bin 1:5,10,11,13Bin 2:15,35,45Bin 3:50,55,72Bin 4:92,204,215
Smoothing by bin medians :
Bin 1:10.5,10.5,10.5,10.5Bin 2:35,35,35
Bin 3:55,55,55Bin 4:204,204,204
Smoothing by bin boundaries :
Bin 1:5,13,13,13Bin 2:15,45,45Bin 3:50,50,72Bin 4:92,215,215
b. Dùng kỹ thuật phân hoạch equal – width và kỹ thuật làm trơn
(smoothing) bin medians
equal – width : bài này chia làm 4 bin nên sẽ lấy giá trị
( = 52.5) , 4 khoảng (5→57.5)(57.5→110)(110→162.5)(162.5→215) rồi chia bin tương tự câu 1:
Bin 1:5, 10 ,11 ,13, 15, 35,45 ,50, 55 Bin 2:72, 92
Bin 3:
Trang 3Bin 4:204, 215
Smoothing by bin medians :
Bin 1:15,15,15,15,15,15,15,15,15Bin 2:82,82
Bin 3:
Bin 4:209.5
Smoothing by bin boundaries :
Bin 1:5,5,5,5,5,55,55,55,55Bin 2:72,92
Bin 3:
Bin 4:204,215
Bài toán này Bin 3 trống nên kỹ thuật phân hoạch equal – widthchỉ phù hợp khi dữ liệu nhiều và phân chia số lượng Bin nhất định
a. Tính toán ma trận khoảng cách cho 5 điểm với khoảng cách Euclide
Áp dụng công thức: d(xi,xj) = ta có bảng ma trận khoảng cách giữa các điểm sau:
b. Cho một điểm dữ liệu mới, x = (1.4,1.6) là truy vấn, xếp hạng các điểm
cơ sở dữ liệu dựa trên sự tương đồng với truy vấn sử dụng khoảng cách Euclidean, khoảng cách Manhattan
Trang 4Cách làm: tính khoảng cách từ 5 điểm trong cơ sở dữ liệu tới điểm truy vẫn theo khoảng cách Euclidean và khoảng cách Manhattan.
Trong đó, thuộc tính A1 là thuộc tính nhị phân đối xứng Các thuộc tính khác
là nhị phân bất đối xứng, với quy định Y=1, N=0
Trang 5a. Tính ma trận khoảng cách cho các đối tượng với tập thuộc tính từ A2 đến A6.
Áp dụng tính chất: d(xi,xj) =
Ví dụ: d(x1,x2) = (ở đây, có thuộc tính A2,A3,A5 khác nhau của x1,x2 nên được gán giá trị là Y=1; Mẫu số có 2 thuộc tính giống nhau là A4,A6 nên được gán giá trị là Y = 1 tại A4 và N = 0 tại A6
- Tương tự tính toán khoảng cách cho tất cả các tập thuộc tính từ A1 → A6
3. Luật kết hợp ( 2 thuật toán chính là Fp – Growth và Apriori)
Câu 1: một số câu hỏi trắc nhiệm.
Transaction database sau được sử dụng cho các câu hỏi 1-3 (Một Lựa Chọn).
Tid Item bought
10 Beer, Nuts, Diaper
20 Beer, Coffee, Diaper
30 Beer, Diaper, Eggs
40 Nut, Eggs, Milk
50 Nuts, Coffee, Diaper, Eggs, Milk
Trang 61. Cho X là 1-itemset {Beer} và Y là 1-itemset {Diaper} Cho biết tập tất cảcác transaction từ bảng trên chứa itemset X U Y.
3. Cho biết confident và support cua luật kết hợp (association rule)
{Diaper} -> {Coffee, Nuts}?
A. support s = 0.4, confident c = 0.5
B. support s = 0.8, confident c = 0.5
C. support s = 0.4, confident c = 1
D. support s = 0.1, confident c = 1
E. Các dáp án trên đều sai.
4. Cho bảng dưới đây chứa tất cả các frequence pattern Cho biết frequence pattern nào trong số chúng là closed pattern nhưng không phải max pattern (Nhiều lựa chọn)
Frequence Pattern Support Beer, Nuts, Diaper 100 Beer, Coffee, Diaper 200 Beer, Diaper, Eggs 50 Beer, Nuts, Eggs, Milk 400 Beer, Nuts, Diaper, Eggs, Milk 50
A {Beer, Nuts, Diaper}
B {Beer, Coffee, Nuts}
C {Beer, Nuts, Eggs, Milk}
D {Beer, Diaper, Eggs}
Câu 2: Dùng thuật toán Apriori thực hiện thuật toán tìm mẫu phổ biến và
sinh ra các luật kết hợp biết minsup = 50% ; minconf = 50% ( cơ sở dữ liệu như bảng giao dịch sau)
Trang 7 Các bước thực hiện thuật toán:
1 Duyệt (Scan) toàn bộ transaction database để có được support S của itemset, so sánh S với min_sup, để có được 1-itemset (L1)
1-2 Sử dụng Lk-1 nối (join) Lk-1 để sinh ra candidate k-itemset Loại bỏ các itemsets không phải là frequent itemsets thu được k-itemset
3 Scan transaction database để có được support của mỗi candidate itemset, so sánh S với min_sup để thu được frequent k –itemset (Lk)
k-4 Lặp lại từ bước 2 cho đến khi Candidate set (C) trống (không tìm thấy frequent itemsets)
5 Với mỗi frequent itemset I, sinh tất cả các tập con s không rỗng của I
6 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ậy (Confidence) của nó > =min_conf
Quy trình thực hiện thuật toán:
Trang 8Itemsets Support(A,B) Support(A) Confidence
4. Thuật toán cây quyết định.
Câu 1: cho cơ sở dữ liệu sau:
Trang 9< Tính theo thông tin cột Class : (4 +) và (6 -) >
- InfoA(D) = * I(4,3) + * I(0,3)
= *( * + * ) + * 0
= 0.69
< Tính theo cột thuộc tính A : đếm số giá trị T – F ( trong T và
F nhìn sang cột Class để chọn các giá trị (+) – (-) của Từng giá trị T – F>
- InfoB(D) = *I(3,1) + * I(1,5)
= * [()*log2() +(-)*log2()] + *[(- )*log2( ) +(- )*log2( )]
= 0.715
Gain (A) = Info(D) – InfoA(D) = 0.971 – 0.69 = 0.281
Gain (B) = Info(D) – InfoB(D) = 0.971 – 0.715 = 0.256
Trang 10Thực hiện các tính toán và đưa ra thứ tự lựa chọn các thuộc tính cho cây quyết định
sử dụng Information Gain (bao gồm cả các nhánh)
- Info(D) = I(10,5,5) = * log2() + * log2() + * log2() = 1.5
- InfoA1(D) = *I(2,2,1) + * I(4,0,0) + * I(4,3,4)
= *[- *log2() + - *log2() + - *log2() ] + 0 + *[- *log2() + -
*log2() + - *log2() ] = 1.245
- InfoA2(D) = * I(2,2,4) + * I(3,2,0) + * I(5,1,1)
= *[- *log2() + - *log2() + - *log2() ] + *[- *log2() + - *log2()
+ - *log2() ] + *[- *log2() + - *log2() + - *log2()] = 1.2448
- InfoA3(D) = * I(4,2,2) + * I(3,2,1) + * I(3,1,2)
= *[- *log2() + - *log2() + - *log2() ] + *[- *log2() + - *log2()
+ - *log2() ] + *[- *log2() + - *log2() + - *log2()] = 1.475
Ta có :
Gain (A1) = Info(D) – InfoA1(D) = 1.5 – 1.245 = 0.255
Gain (A2) = Info(D) – InfoA2(D) = 1.5 – 1.2448 = 0.2552
Gain(A3) = Info(D) – InfoA3(D) = 1.5 – 1.475 = 0.025
Thứ tự chọn là: A2 → A1 → A3
5. Thuật toán k-nn.
Trang 11Cho tập mẫu gồm những mẫu các thuộc tính (A1, A2, Class) như sau: (1, 1,A), (1, 2,B), (2, 1,A), (2, 1.5,C), (3, 2,B), (4,1.5,C), (4, 2,A), (5, 1.5,B), (4.5, 2,C), (4, 4,C), (4.5, 4,B), (4.5, 5,A),
(4, 5,B), (5, 5,C)
a. Hãy xác định nhãn cho đối tượng (4.2, 4.7) theo thuật toán k-NN với k=3, với khoảng cách sử dụng là Euclide
b. Hãy xác định nhãn cho đối tượng ở câu a) nhưng trường hợp K=4
Áp dụng công thức tính khoảng cách Euclide ta có bảng sau:
a. Với k = 3 nên 3 điểm gần nhất với đối tượng là : x7 – x9 – x10
→ ta có thể chọn ngẫu nhiên 1 trong 3 điểm làm nhãn dán ( vì A – B – C khác biệt)
b. Với k = 4 thì ta có 4 điểm gần đối tượng nhất là : x7 – x8 – x9 – x10
→ta sẽ chọn nhãn dán là B ( vì B xuất hiện 2 lần tại x8 – x10 còn A và C chỉ xuất hiện 1 lần)
6. Tìm trung tập cụm của thuật toán K – means và K – Medoid.
Cho cụm gồm 5 mẫu sau đây:
X1(1,1) ; X2(1,2) ; X3(2,1) ; X4(1.6,1.4) ; X5(2,2)
a. Tìm trung tâm cụm theo thuật toán K - medoid.
Trung tâm cụm theo thuật toán K – medoid được định nghĩa là :
Trang 12• Áp dụng công thức Manhattan tính khoảng cách các điểm trong
cụm(là khoảng cách Minkowski khi q=1)Khoảng cách Minkowski :
Ta được bảng khoảng cách sau:
Từ trên ta suy ra Min(arg) = 1 tại → =
b. Tìm trung tâm cụm theo thuật toán K – means.
Áp dụng công thức tính trung tâm các cụm sau:
Mean =( , ) ta có trung tâm cụm dữ liệu trên là:
C ( , ) → C(1.52 ; 1.48)
7. Phân cụm thuật toán K – means
Câu 1: Cho tập dữ liệu sau : A(2,10) ; B(2,5) ; C(8,4) ; D(5,8) E(7,5) ; F(6,4) ; G(1,2) ; H(4,9)
a. Tìm các trung tâm cụm sau lần lặp thứ 1 dùng thuật toán k-mean , giả sử các trung tâm cụm ban đầu A , D , G.
Gọi các trung tâm cụm lần lượt là: vì đề bài cho các trung tâm cụm ban đầu là A,D,G nên ta có: = A = (2,10) ; = D = (5,8) ; = G = (1,2)
Trang 13 Áp dụng công thức tính khoảng cách Euclide để tính khoảng cách từ trung tâm các cụm tới các điểm trong tập dữ liệu.
Ta có bảng sau:
Cụm 1
Cụm2
Cụm3Gần Gần Gần
5
8.062257748
6.708203932
x
F 6 4 7.211102551 4.12310562
6
5.385164807
7.615773106
xSau lần lặp thứ nhất ta có các cụm sau:
Trang 14Cụm3Gần Gần Gần
9
7.516648189
x
6
2.549509757
x
C 8 4 8.48528137
4
2.828427125
6.670832032
x
D 5 8 3.60555127
5
2.236067977
6.519202405
x
E 7 5 7.07106781
2
1.414213562
6.041522987
0.707106781
x
H 4 9 2.23606797
7
3.605551275
6.964194139
Trang 15được ở lần lập 2 tiến hành lặp lần 3, ta có bảng sau :
Cụm 1
Cụm2
Cụm3Gần Gần Gần
A 2 10 1.118033989 6.18970920
2
7.516648189
x
B 2 5 4.60977222
9
4.562071898
2.549509757
x
E 7 5 6.02079728
9
0.901387819
6.041522987
x
F 6 4 6.26498204
3
1.820027472
G 1 2 7.76208734
8
6.656763478
0.707106781
x
H 4 9 1.118033989 4.10030486
7
6.964194139
x
Sau lần lặp thứ ba ta có các cụm sau:
• Cụm 1 : A(2,10) , H(4,9) , D(5,8)
Trang 16được ở lần lập 3 tiến hành lặp lần 4, ta có bảng sau :
Cụm 1
Cụm2
Cụm3Gần Gần Gần
A 2 10 1.94650969
7
7.710830046
7.516648189
x
B 2 5 4.33461647
7
5.075125614
2.549509757
x
C 8 4 6.61429512
5
1.008414597
6.670832032
x
D 5 8 1.66400120
2
4.356248386
6.519202405
G 1 2 7.49192231
7
6.366859508
0.707106781
x
H 4 9 0.33 5.71986888 6.96419413
9
x
Trang 17Sau lần lặp thứ tư ta có các cụm sau:
Ta thấy trung tâm 3 cụm không thay đổi nữa nên kết thúc tại đây:
Cụm 1 : trung tâm (,9) ; gồm các điểm {A(2,10) , H(4,9) , D(5,8)}
Cụm 2 : trung tâm (7, ; gồm các điểm {C(8,4) , E(7,5) , F(6,4)}
Cụm 3: trung tâm ; gồm các điểm {B(2,5) , G(1,2)}
Câu 2: Cho tập mẫu gồm những mẫu hai thuộc tính sau : (1,1) ; (1,2)
(2,1) ; (2,1.5) ; (3,2) ; (4,1.5)
; (4,2) (5,1.5) ; (4.5,2) ; (4,4) ; (4.5 , 4) ; (4.5 , 5) ; (4,5) (5,5) Dùng giải thuật k-means để gom cụm tập mẫu nêu trên với k=3 ứng với các trường hợp sau:
a. Các trung tâm ban đầu là (2,1.5) ; (4.5,2) ; (4.5 , 5).
Gọi các trung tâm cụm lần lượt là: = (2,1.5) ; = (4.5,2) ; = (4.5,5)
Áp dụng công thức tính khoảng cách Euclide để tính khoảng cách từ trung tâm các cụm tới các điểm trong tập dữ liệu
Với k=3 , tiến hành lặp lần 1 ta có bảng sau:
Cụm 1 Cụm 2 Cụm 3Gần Gần Gần
1 1 1.118033989 3.64005494 5.31507290 x
Trang 19→ (4.375,1.75)
• Cụm 3: ( )
→Tiếp tục lặp lần 2 với trung tâm các cụm mới : (1.8,1.5) ; (4.375,1.75) ; , ta
có bảng lần lặp 2 như sau:
x y (1.8,1.5) (4.375,1.75) (4.4,4.6) Lần 2
Cụm1
Trang 20Sau lần lặp thứ hai ta có các cụm sau:
Ta thấy trung tâm của các cụm không thay đổi nên kết thúc tại lần lặp thứ 2:
Cụm 1 : trung tâm (1.8,1.5) ; gồm các điểm {(1,1) ,(1,2) , (2,1) , (2,1.5) , (3,2)}
Cụm 2 : trung tâm (4.375, ; gồm các điểm {(4,1.5), (4,2), (5,1.5), (4.5,2)}
Cụm 3: trung tâm ; gồm các điểm {(4,4), (4.5 , 4), (4.5 , 5) , (4,5)
, (5,5)}
b. Các trung tâm cụm ban đầu là (1,2) ; (3,2) ; (4,2).
Gọi các trung tâm cụm lần lượt là: = (1,2) ; = (3,2) ; = (4,2)
Áp dụng công thức tính khoảng cách Euclide để tính khoảng cách từ các cụm tới các điểm trong tập dữ liệu
Với k=3 , tiến hành lặp lần 1 ta có bảng sau:
Cụm 1 Cụm 2 Cụm 3Gần Gần Gần
7
3.16227766 x
Trang 211 2 0 2 3 x
2 1 1.41421356
2
1.414213562
2.236067977
3.041381265
Trang 22Tiếp tục lặp lần 2 với trung tâm các cụm mới : (1.5,1.375) ; (3,2) ; , ta có bảng lần lặp 2 như sau:
Cụm1
Trang 23x y (1.5,1.375) ( , ) Lần 3
Cụm1
Cụm1
Cụm 2 Cụm 3
Trang 24Ta thấy trung tâm của các cụm không thay đổi nên kết thúc tại lần lặp thứ 4:
Cụm 1 : trung tâm (1.5,1.375) ; gồm các điểm {(1,1) ,(1,2) , (2,1) , (2,1.5)}
Cụm 2 : trung tâm (4.1, ; gồm các điểm {(3,2) , (4,1.5), (4,2), (5,1.5), (4.5,2)}
Cụm 3: trung tâm ; gồm các điểm {(4,4), (4.5 , 4), (4.5 , 5) , (4,5)
, (5,5)}
Nhận xét :
Trang 25• Kết quả phân cụm của câu a và b hoàn toàn khác nhau → Tuy nhiên : việc lựa chọn các trung tâm cụm ban đầu không ảnh hướng tới kết quả phân cụm.
→điểm (3,2) có thể phân 1 trong 2 cụm bất kỳ
• Ở lần lặp thứ nhất của câu b) tại các điểm 3 và 4 có giá trị khoảng cách tới trung tâm cụm C1 C2 là bằng nhau → có thể gom 2 giá trị đó vào cụm nào cũng được → không ảnh hưởng tới kết quả phân cụm
8. Phân cụm thuật toán K – medoid.
Cho bảng dữ liệu sau:
Hãy phân cụm bảng dữ liêu trên bằng thuật toán K-medoid
Cách làm: đầu tiên chọn số cụm định phân ( cái này đề bài có thể cho trước).Tiếp theo chọn trọng tâm 2 cụm( đề bài có thể cho trước , nếu không cho có thể chọn ngẫu nhiên để tính toán)
Ở bài toán này chọn K=2 ( chia bảng dữ liệu thành 2 cụm).Và chọn X5
và X10 là trọng tâm của 2 cụm
Suy ra trọng tâm 2 cụm là : C1(8,5) ; C2(4,5)
Bây giờ chúng ta tính khoảng cách những điểm còn lại tới trọng tâm của
2 cụm bằng khoảng cách Manhattan (là khoảng cách Minkowski khi q=1)Khoảng cách Minkowski :
Trang 26Ta được bảng khoảng cách sau:
Lần 1Gần
Trang 27trùng với trọng tâm cụm ở phần trên) Bài này sẽ chọn X8 là trọng tâm cụm mới của cụm K1 còn cụm K2 vẫn giữ nguyên trọng tâm cụm là X10.
Ta có bảng khoảng cách mới như sau:
Lần 2Gần
9. Sử dụng ngôn ngữ R phân cụm các thuật toán.
Câu 1: Phân cụm dữ liệu ở câu 7 bằng thuật toán K – means.
Trang 28- Đầu tiên , nhập dữ liệu vào R - Phần này có thể copy dữ liệu vào file Excel,txt, rồi nhập số liệu vào R hoặc có thể tạo như sau:
Trang 29- Phân dữ liệu thành 3 cụm và tìm trong tâm từng cụm.
> YANG.3means = kmeans(YANG, centers = 3)
< Trên đây là trọng tâm của 3 cụm, kết quả giống bài 7>
- Tiếp theo tìm kiếm các điểm của từng cụm
> YANG.3means$cluster
[1] 3 3 3 3 2 2 2 2 2 1 1 1 1 1
→4 giá trị đầu là cụm 3 ; 5 giá trị tiếp theo là cụm 2 ; 5 giá trị cuối cùng là cụm 1
- Hiển thị các cụm trên đồ thị, mỗi cụm tương ứng 1 màu
Trang 31Câu 2: Phân cụm K – medoid trong R – Sử dụng PAM.
data("USArrests") # tải tập dữ liệu
df <- scale(USArrests) # chia tỷ lệ dữ liệu
head(df, n=3) # xem 3 hàng đầu tiên của dữ liệu