TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
TP.HỒ CHÍ MINH
CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG
Đề tài: TÌM HIỂU VỀ KHAI PHÁ DỮ LIỆU
VÀ CÁC THUẬT TOÁN SỬ DỤNG TRONG KHAI PHÁ DỮ LIỆU
GVHD: GS TSKH Hoàng Kiếm
HVTH: Nguyễn Hồng Thái
LỚP: CH-CNTTQM K6
Mã HV: CH1101040
11
Tp HCM, tháng 05 năm 2012
Nhận xét của giáo viên:
………….……
………….……
………….……
………….……
………….……
………….……
………….……
………….……
………….……
………….……
………….……
………….……
………….……
………….……
………….……
………….……
………….……
………….……
………….……
………….……
………….……
………….……
………….……
………….……
………….……
………….……
………….……
………….……
………….……
22
Đồ án môn học: Công nghệ trí thức và ứng dụng
Mục lục
- 3 -
Đồ án môn học: Công nghệ trí thức và ứng dụng
I. Khai phá dữ liệu
1. Giới thiệu
Khoảng vài thập kỷ trở lại đây, từ lúc máy tính ra đời, và đặc biệt là
từ lúc internet được sử dụng rộng rãi trên toàn thế giới, thì khối lượng dữ liệu
số tạo ra đã trở nên cực kỳ lớn, và không ngừng được tăng lên với tốc độ
chóng mặt. Sự tích lũy dữ liệu này xảy ra với một tốc độ bùng nổ. Người ta
ước đoán rằng lượng thông tin trên toàn cầu tăng gấp đôi sau khoảng hai năm.
Rõ ràng với lượng dữ liệu lớn như vậy, sẽ là nguồn tri thức vô tận nếu
con người biết khai thác và sử dụng nó một cách hợp lí. Thế nhưng với nguồn
tài nguyên quá lớn như vậy, trong khi thời gian và sức lực của mỗi người thì
có giới hạn, và không phải dữ liệu nào cũng hữu ích cho người dùng, đặt con
người vào bài toàn tìm kiếm những nội dung phù hợp với mục đích của mình.
Vì vậy việc trắc lọc dữ liệu thô để tìm ra nguồn tri thức hữu dụng thực sự là
bài toán quan trọng và hữu ích trong giai đoạn hiện nay cũng như tương lai.
Lĩnh vực khai phá dữ liệu (data mining) chuyên nghiên cứu về những vấn đề
này.
2. Định nghĩa
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 đó.
3. Các chức năng chính
Khai phá dữ liệu được chia nhỏ thành một số hướng chính như sau:
- 4 -
Đồ án môn học: Công nghệ trí thức và ứng dụng
1) Tìm luật kết hợp (association rules)
Là dạng luật biểu diễn tri thức ở dạng khá đơn giản. Ví dụ: “60 % nam
giới vào siêu thị nếu mua bia thì có tới 80% trong số họ sẽ mua thêm thịt bò
khô”. Luật kết hợp được ứng dụng nhiều trong lĩnh vực kính doanh, y học, tin-
sinh, tài chính & thị trường chứng khoán, .v.v.
2) Phân lớp và dự đoán (classification & prediction)
Xếp một đối tượng vào một trong những lớp đã biết trước. Ví dụ: phân
lớp vùng địa lý theo dữ liệu thời tiết. Hướng tiếp cận này thường sử dụng một
số kỹ thuật của machine learning như cây quyết định (decision tree), mạng nơ
ron nhân tạo (neural network), .v.v. Người ta còn gọi phân lớp là học có giám
sát (học có thầy).
3) Phân cụm (clustering)
Xếp các đối tượng theo từng cụm (số lượng cũng như tên của cụm chưa
được biết trước. Người ta còn gọi phân cụm là học không giám sát (học không
thầy).
Khai phá chuỗi (sequential/temporal patterns): tương tự như khai phá luật
kết hợp nhưng có thêm tính thứ tự và tính thời gian. Hướng tiếp cận này được
ứng dụng nhiều trong lĩnh vực tài chính và thị trường chứng khoán vì nó có tính
dự báo cao.
4. Ứng dụng của khai phá dữ liệu
- Phân tích dữ liệu và hỗ trợ ra quyết định (data analysis & decision
support)
- Điều trị y học
- Text mining & Web mining
- Tài chính, bảo hiểm và thị trường chứng khoán
- Nhận dạng (pattern recognition)
- 5 -
Đồ án môn học: Công nghệ trí thức và ứng dụng
5. Các phương pháp khai phá dữ liệu (data mining):
Quá trình khai phá dữ liệu là quá trình phát hiện mẫu trong đó giải thuật khai
phá dữ liệu tìm kiếm các mẫu đáng quan tâm theo dạng xác định như các luật, cây
phân lớp, hồi quy, phân nhóm,…
1) Qui nạp
Một cơ sở dữ liệu là một kho thông tin nhưng các thông tin quan trọng
hơn cũng có thể được suy diễn từ kho thông tin đó. Có hai việc chính để thực
hiện việc này là suy diễn và quy nạp.
- Phương pháp suy diễn: Nhằm rút ra thông tin là kết quả logic của các thông tin
trong cơ sở dữ liệu. Phương pháp suy diễn dựa trên các sự kiện chính xác để suy
ra các tri thức mới từ các thông tin cũ. Mẫu chiết xuất được bằng cách sử dụng
phương pháp này thường là các luật suy diễn.
- Phương pháp quy nạp: Phương pháp quy nạp suy ra các thông tin được sinh ra
từ cơ sở dữ liệu. Có nghĩa là nó tự tìm kiếm, tạo mẫu và sinh ra tri thức chứ
không phải bắt đầu với các tri thức đã biết trước. Các thông tin mà phương pháp
này đem lại là các thông tin hay các tri thức cấp cao diễn tả về các đối tượng
trong cơ sở dữ liệu. Phương pháp này liên quan đến việc tìm kiếm các mẫu
trong cơ sở dữ liệu.
2) Cây quyết định và luật:
- Cây quyết định: Cây quyết định là một mô tả tri thức dạng đơn giản nhằm phân
các đối tượng dữ liệu thành một số lớp nhất định. Các nút của cây được gán
nhãn là tên các thuộc tính, các cạnh được gán các giá trị có thể của các thuộc
tính, các lá miêu tả các lớp khác nhau. Các đối tượng được phân lớp theo các
đường đi trên cây, qua các cạnh tương ứng với giá trị của thuộc tính của đối
tượng tới lá.
- 6 -
Đồ án môn học: Công nghệ trí thức và ứng dụng
Figure 1: Mẫu kết với phương pháp cây quyết định
- Tạo luật: Các luật được tạo ra nhằm suy diễn một số mẫu dữ liệu có ý
nghĩa về mặt thống kê. Các luật có dạng Nếu P thì Q với P là mệnh đề đúng với phần
dữ liệu trong cơ sở dữ liệu, Q là mệnh đề dự đoán.
- Cây quyết định và luật có ưu điểm là hình thức miêu tả đơn giản, mô
hình suy diễn khá dễ hiểu đối với người sử dụng. Tuy nhiên, giới hạn của nó là miêu tả
cây và luật chỉ có thể biểu diễn được một số dạng chức năng và vì vậy giới hạn cả về
độ chính xác của mô hình
3) Phân lớp và hồi quy phi tuyến:
Các phương pháp này bao gồm một họ các kỹ thuật dự đoán để làm cho
các kết hợp tuyến tính và phi tuyến của các hàm cơ bản (hàm sygmoid, hàm
spine, hàm đa thức) phù hợp với các kết hợp của các giá trị biến vào.
4) Phân nhóm và phân đoạn:
Kỹ thuật phân nhóm và phân đoạn là những kỹ thuật phân chia dữ liệu sao
cho mỗi phần hoặc mỗi nhóm giống nhau theo một tiêu chuẩn nào đó. Mối quan
hệ thành viên của các nhóm có thể dựa trên mức độ giống nhau của các thành
viên và từ đó xây dựng nên các luật ràng buộc giữa các thành viên trong nhóm.
- 7 -
Có tham
gia thi
Không tham
gia thi
Không qua môn
Điểm >= 5Điểm < 5
Qua mônKhông qua môn
Đồ án môn học: Công nghệ trí thức và ứng dụng
Một kỹ thuật phân nhóm khác là xây dựng nên các hàm đánh giá thuộc tính của
các thành phần như là hàm của các tham số của các thành phần. Phương pháp
này được gọi là phương pháp phân hoạch tối ưu (optimal partitioning)
Mẫu đầu ra của quá trình khai phá dữ liệu sử dụng kỹ thuật này là các tập
mẫu chứa các dữ liệu có chung những tính chất nào đó được phân tách từ cơ sở
dữ liệu. Khi các mẫu được thiết lập, chúng có thể được sử dụng để tái tạo các
tập dữ liệu ở dạng dễ hiểu hơn, đồng thời cũng cung cấp các nhóm dữ liệu cho
các hoạt động cũng như công việc phân tích. Đối với cơ sở dữ liệu lớn, việc lấy
ra các nhóm này là rất quan trọng.
5) Các phương pháp dựa trên mẫu:
Sử dụng các mẫu miêu tả từ cơ sở dữ liệu để tạo nên một mô hình dự
đoán các mẫu mới bằng cách rút ra từ các thuộc tính tương tự như các mẫu đã
biết trong mô hình. Các kỹ thuật bao gồm phân lớp theo láng giềng gần nhất,
các giải thuật hồi quy (Dasarathy 1991) và các hệ thống suy diễn dựa trên tình
huống (case-base reasoning) (Kolodner 1993).
Khuyết điểm của các kỹ thuật này là cần phải xác định được khoảng
cách, độ đo giống nhau giữa các mẫu.
6) Khai phá dữ liệu văn bản (Text Mining):
Kỹ thuật này được ứng dụng trong một loạt các công cụ phần mềm
thương mại. Công cụ khai phá dữ liệu rất phù hợp với việc tìm kiếm, phân tích
và phân lớp các dữ liệu văn bản không định dạng. Các lĩnh vực ứng dụng như
nghiên cứu thị trường, thu thập tình báo,… Khai phá dữ liệu dạng văn bản đã
được sử dụng để phân tích câu trả lời cho các câu hỏi mở trong khảo sát thị
trường, tìm kiếm các tài liệu phức tạp.
7) Mạng neuron:
Mạng neuron là một tiếp cận tính toán mới liên quan đến việc phát triển
các cấu trúc toán học với khả năng lọc. Các phương pháp là kết quả của việc
- 8 -
Đồ án môn học: Công nghệ trí thức và ứng dụng
nghiên cứu mô hình học của hệ thống thần kinh con người. Mạng neuron có thể
đưa ra ý nghĩa từ các dữ liệu phức tạp hoặc không chính xác và có thể được sử
dụng để chiết xuất các mẫu và phát hiện ra các xu hướng quá phức tạp mà con
người cũng như các kỹ thuật máy tính khác không thể phát hiện được.
Khi đề cập đến khai thác dữ liệu, người ta thường đề cập nhiều đến mạng
neuron. Tuy mạng neuron có một số hạn chế gây khó khăn trong việc áp dụng
và triển khai nhưng nó cũng có những ưu điểm đáng kể. Một trong số những ưu
điểm phải kể đến của mạng neuron là khả năng tạo ra các mô hình dự đoán có
độ chính xác cao, có thể áp dụng được cho rất nhiều loại bài toán khác nhau đáp
ứng được các nhiệm vụ đặt ra của khai phá dữ liệu như phân lớp, phân nhóm,
mô hình hoá, dự báo các sự kiện phụ thuộc vào thời gian,…
Đặc điểm của mạng neuron là không cần gia công dữ liệu nhiều trước khi
bắt đầu quá trình học như các phương pháp khác. Tuy nhiên, để có thể sử dụng
mạng neuron có hiệu quả cần phải xác định các yếu tố khi thiết kế mạng như:
- Mô hình mạng là gì?
- Mạng cần có bao nhiêu nút?
- Khi nào thì việc học dừng để tránh bị “học quá”?
- …
Ngoài ra còn có rất nhiều bước quan trọng cần phải làm để tiền xử lý dữ
liệu trước khi đưa vào mạng neuron để mạng có thể hiểu được (ví dụ như việc
chuẩn hoá dữ liệu, đưa tất cả các tiêu chuẩn dự đoán về dạng số).
Mạng neuron được đóng gói với những thông tin trợ giúp của các chuyên
gia đáng tin cậy và được các chuyên gia đảm bảo các mô hình này làm việc tốt.
Sau khi học, mạng có thể được coi là một chuyên gia trong lĩnh vực thông tin
mà nó vừa được học.
8) Thuật giải di truyền:
Giải thuật di truyền, nói theo nghĩa rộng là mô phỏng lại hệ thống tiến
hoá trong tự nhiên, chính xác hơn đó là các giải thuật chỉ ra tập các cá thể được
- 9 -
Đồ án môn học: Công nghệ trí thức và ứng dụng
hình thành, được ước lượng và biến đổi như thế nào. Ví dụ như xác định xem
làm thế nào để lựa chọn các cá thể tạo giống vào lựa chọn cá thể nào bị loại bỏ.
Giải thuật cũng mô phỏng lại yếu tố gen trong nhiễm sắc thể sinh học trên máy
tính để có thể giải quyết nhiều bài toán thực tế khác nhau.
Giải thuật di truyền là một giải thuật tối ưu hoá. Nó được sử dụng rất
rộng rãi trong việc tối ưu hoá các kỹ thuật khai phá dữ liệu trong đó có kỹ thuật
mạng neuron. Sự liên hệ của nó đối với các giải thuật khai phá dữ liệu là ở chỗ
việc tối ưu hoá cần thiết cho các quá trình khai phá dữ liệu. Ví dụ như trong các
kỹ thuật cây quyết định, tạo luật. Như đã đề cập ở phần trước, các luật mô hình
hoá dữ liệu chứa các tham số được xác định bở các giải thuật phát hiện tri thức.
Giai đoạn tối ưu hoá là cần thiết để xác định các giá trị tham số nào tạo ra các
luật tốt nhất. Và vì vậy mà giải thuật di truyền đã được sử dụng trong các công
cụ khai phá dữ liệu.
Kết luận:
Như vậy, nhìn vào các phương pháp giới thiệu ở trên, chúng ta thấy có
rất nhiều các phương pháp khai phá dữ liệu. Mỗi phương pháp có những đặc
điểm riêng phù hợp với một lớp các bài toán với các dạng dữ liệu và miền dữ
liệu nhất định. Mặc dù nhìn bề ngoài ta thấy có rất nhiều các phương pháp và
ứng dụng khai phá dữ liệu nhưng cũng không có gì là lạ khi nhận thấy chúng có
một số thành phần chung. Hiểu quá trình khai phá dữ liệu và suy diễn được mô
hình dựa trên những thành phần này là ta đã thực hiện được nhiệm vụ của khai
phá dữ liệu.
II. Các thuật toán sử dụng trong khai phá dữ liệu:
Nhằm xác định một số thuật toán có ảnh hưởng lớn được sử dụng nhiều
trong cộng đồng Data Mining, IEEE International Conference on Data Mining
đã nổ lực xác định 10 thuật toán Data Mining để trình bày tại ICDM’06 - Hong
Kong.
- 10 -
Đồ án môn học: Công nghệ trí thức và ứng dụng
Các thuật toán được đề cử bao gồm:
1. C4.5
2. K-means
3. SVM (Support Vector Machine)
4. Apriori
5. EM (Epectation Maximization)
6. PageRank
7. AdaBoost
8. kNN (k-nearest neighbor classification)
9. Naive Bayes
10. CART
Trong phạm vi của bài thu hoạch này, em xin trình bày về 5 thuật toán C4.5,K-
means, Apiori, PageRank và Naïve Bayes
1. Thuật toán C45
Hệ thống khởi tạo các bộ phân lớp là một trong những bài toán thường gặp
trong khai phá dữ liệu. Mỗi hệ thống sẽ nhận vào một tập các trường hợp, được phân
bố trong một tập các lớp, trong đó mỗi lớp thường có một tập thuộc tính mang một tập
giá trị cố định nào đó. Đầu ra của hệ thống sẽ là một bộ phân lớp. Để khi xuất hiện một
trường hợp mới, từ bộ phân lớp này, ta có thể xác định được lớp mà trường hợp này
thuộc về, và từ đó xác định các thuộc tính tổng quát của trường hợp mới này.
Giống như những thuật toán khác trong khai phá dữ liệu, C45 sử dụng cây quyết
định để mô tả kết của mình.
1.2. Cây quyết định
Cho tập S là tập các mẫu, C4.5 sinh ra cây quyết định dựa theo thuật toán chia
để trị:
− Nếu tất cả các trường hợp trong S đều thuộc về cùng một lớp hoặc tập S nhỏ, thì
cây chỉ bao gồm một nút lá, được gán nhãn là lớp phổ biến nhất trong S.
- 11 -
Đồ án môn học: Công nghệ trí thức và ứng dụng
− Ngược lại, chọn một thuộc tính nhận 2 hay nhiều giá trị trong tập S. Tạo cây với
mỗi nhánh là mỗi giá trị đó. Tiếp tục làm một cách đệ qui với các thuộc tính còn lại.
Câu hỏi đặt ra là làm thế nào để chọn thuộc tính ở mỗi mức của cây cho tối ưu. C4.5 sử
dụng 2 hueristic là information gain và gain ratio.
Information gain: thuộc tính được chọn là thuộc tính có entropy nhỏ nhất trong số các
thuộc tính của các phần tử tập S.
Với : - Value(A) tập các gía trị của thuộc tính A
− : tập con của S mà A nhận giá trị V
Xét ví dụ sau: Giả sử ta có tập trường hợp qui định việc đi chơi Tennis, bị ảnh hưởng
bởi các yếu tố Outlook, Temp, Humidity và Wind, cho ở bảng sau. Sử dụng thuật toán
C4.5 để tạo cây quyết định.
- 12 -
Đồ án môn học: Công nghệ trí thức và ứng dụng
(9 Yes, 5 No)
Tính InfoGain của các thuôc tính (theo công thức tính InfoGain ở trên):
(trong tập S, Outlook nhận 5 giá trị là Sunny, trong đó có 2 kết
quả PlayTesnis là Yes, 3 là No, nhận 4 giá trị là Overcast đều cho kết quả là Yes, nhận
5 giá trị Rain, cho 3 kết quả Yes và 2 kết quản No)
Tương tự như trên, ta tính được giá trị InfoGain của các thuộc tính còn lại là:
InfoGain(S,T) = 0.151
InfoGain(S,H)=0.048
InfoGain(S,W)=0.029
Thuộc tính Outlook có Infogain lớn nhất nên được chọn làm gốc của cây quyết định.
Vậy ta khởi tạo được giá trị ban đầu cho cây quyết định như sau:
Figure 2
Lúc này ta tiếp tục phân lớp cho các mức 2 của cây quyết định dựa vào các thuộc tính
còn lại.
Xét trường hợp Sunny, bảng trường hợp cho Sunny còn lại là:
- 13 -
Đồ án môn học: Công nghệ trí thức và ứng dụng
(Dễ dàng nhận thấy thuộc tính Humidity có thể dùng phân lớp cho Sunny). Ở đây ta
tiếp tục sử dụng công thức tính InfoGain như sau:
Với:
Tương tự ta tính được f(Wind) > 0 và f(Temp) > 0
Nên InfoGain(Sunny, Humidity) là lớn nhất. Ta dùng Humidity để phân lớp cho
Sunny.
Một cách tương tự, ta tính được Wind là thuộc tính để phân lớp cho Rain (Figure 1)
Vậy, ta được cây quyết định như sau:
Figure 3
- 14 -
Đồ án môn học: Công nghệ trí thức và ứng dụng
GainRatio:
GainRatio cung cấp một công thức khác để xác định thuộc tính được dùng trong cây
quyết định. Công thức như sau:
2. Thuật toán K-means:
- Tư tưởng của thuật toán là chia CSDL thành k nhóm (k do người dùng quyết định)
- Thuật toán thao tác trên một tập vector d-chiều D = { | i = 1, N}, với là điểm dữ
liệu thứ i. Thuật toán bắt đầu bằng việc chọn k điểm ngẫu nhiên làm trọng tâm, sau đó
gọi 2 bước sau cho đến khi hội tụ:
B1. Gán dữ liệu: Mỗi điểm được gán vào một nhóm nào đó gần nhất. Giai đoạn
này được gọi là phân chia dữ liệu.
B2. Tính lại trọng tâm: lấy trung bình các điểm trong nhóm để làm trọng tâm.
- Công thức tính khoảng cách giữa 2 đối tượng:
- Khoảng cách Minkowski:
d(i,j) =
trong đó () và () là 2 đối tượng dữ liệu trong không gian p chiều và q là
số nguyên dương.
Nếu q =1 là khoảng cách Manhattan
d(i,j) =
Nếu q=2 là khoảng cách Euclidean
d(i,j) =
- Ví dụ cho thuật toán K-means:
Xét không gian tọa độ gồm 5 điểm như sau:
- 15 -
Đồ án môn học: Công nghệ trí thức và ứng dụng
{A(1,2), B)(0,3), C(3,1), D(4,3),E(4,0)}
Figure 4
Giả sử người dùng muốn chia 5 điểm trên thành 2 nhóm.
Bước 1: Xác định ngẫu nhiên 2 trọng tâm của 2 nhóm, đặt là M1 và M2. Giả
sử rằng M1 = A và M2 = B
Bước 2:
Xét C: d(C,M1) =
d(C,M2) =
C thuộc nhóm 1
Xét D: d(D,M1) =
d(D,M2) =
D thuộc nhóm 1
Xét E: d(E,M1) =
d(E,M2) =
E thuộc nhóm 1
Kết quả phân nhóm được cho như bên dưới:
- 16 -
Đồ án môn học: Công nghệ trí thức và ứng dụng
Figure 5
Bước 3: Tính lại trọng tâm:
Bước 2: Tính toán lại nhóm cho các điểm:
Xét A: d(A,M1) =
d(A,M2) =
A thuộc nhóm 2
Xét B: B trùng M2
B thuộc nhóm 2
Xét C: d(C,M1) =
d(C,M2) =
C thuộc nhóm 1
Xét D: d(D,M1) =
d(D,M2) =
D thuộc nhóm 1
Xét E: d(E,M1) =
d(E,M2) =
- 17 -
Đồ án môn học: Công nghệ trí thức và ứng dụng
E thuộc nhóm 1
Figure 6
Bước 3: Tính lại trọng tâm:
Bước 2: Tính toán lại nhóm cho các điểm:
Xét A: d(A,M1) =
d(A,M2) =
A thuộc nhóm 2
Xét B: d(B,M1) =
d(B,M2) =
B thuộc nhóm 2
Xét C: d(C,M1) =
d(C,M2) =
C thuộc nhóm 1
Xét D: d(D,M1) =
d(D,M2) =
- 18 -
Đồ án môn học: Công nghệ trí thức và ứng dụng
D thuộc nhóm 1
Xét E: d(E,M1) =
d(E,M2) =
E thuộc nhóm 1
Kết quả không thay đổi so với bước trước đó, (kết quả đã hội tụ), vậy ta
có kết quả phân nhóm như Figure 6.
3. Thuật toán Apiori:
Một trong những bài toán quan trọng trong khai phá dữ liệu là tìm các tập phổ biến và
khai phá luật kết hợp của các trường. Việc này hoàn toàn không đơn giản vì có thể gây
ra bùng nổ tổ hợp, khi phải xét từng tổ hợp các trường với số lượng các trường trong
các tổ hợp khác nhau. Khi tìm các tập phổ biến và luật kết hợp, thông thường phải sử
dụng 2 giá trị là độ hổ trợ và độ tin tưởng. Các tổ hợp được xem là hợp lệ khi nó có độ
hổ trợ và độ tin tưởng lớn hơn ngưỡng cho phép của phép khai phá luật kết hợp, gọi là
minSup và minConf
Apiori là thuật toán nền tảng sinh ra các tập kết hợp bằng cách sinh ra các ứng viên.
Thuật toán này sử dụng một heuristic là “khi một tập kết hợp là không phổ biến, thì khi
thêm các trường mới vào tập này thì tập mới cũng không phải tập phổ biến”.
Tóm tắt thuật toán:
- Sinh ra tập ứng viên : Tập ứng viên có size k+1 từ tập ứng viên size k
- Quét qua database để tính độ hỗ trợ của từng ứng viên
- Dựa vào độ support cho phép (minSup), thêm những ứng viên có độ hỗ trợ thõa
mãn vào tập .
Ví dụ của thuật toán:
Giả sử ta có tập đầu vào như sau:
- 19 -
Đồ án môn học: Công nghệ trí thức và ứng dụng
Giả sử rằng giá trị nhỏ nhất cho phép của độ hỗ trợ là 50%, thì các bước để tìm luật kết
hợp được mô tả trong bảng sau:
Vậy ta có tập phổ biến gồm 3 phần tử là {B,C,E}. Giả sử với độ tin cậy 80%, để tìm
các luật kết hợp, ta dựa vào bảng sau:
Vậy ta có 2 luật kết hợp thõa độ phổ biến >=50% và độ tin cậy >=80% là:
{B,C} {E} và {C,E}{B}.
- 20 -
Đồ án môn học: Công nghệ trí thức và ứng dụng
4. Thuật toán Page Rank
Thuật toán này được cho ra đời và trình bày Sergey Brin và Larry Page tại hội nghị
quốc tế WWW lần thứ 7, tháng 4 năm 1998. Đây là thuật toán xếp thứ hạng thống kê
để tìm kiếm dựa trên các đường dẫn web. Search engine nổi tiếng Google được dựa
trên thuật toán này và đã đạt được những thành công rực rỡ.
Thuật toán này tính toán giá trị thống kê của các trang dựa trên cấu trúc dạng offline
của trang đó và không phụ thuộc vào yêu cầu tìm kiếm, mà thông qua số lượng các
đường liên kết tới trang này. Ví dụ bên trong trang x chứa đường dẫn tới trang y, thì
trang y được thêm 1 điểm page rank bởi trang x.
Ví dụ về thuật toán tính page rank:
Giả sử ta có các lien kết như hình bên dưới:
Công thức tính page rank của một trang là:
PR(A) =
Trong đó Parent(A) là tập những trang web có link tới A, và N(V) là số liên kết tới ra
những trang khác trên V.
Chẳng hạn trong hình trên, ta tính được page rank của C là:
PR(C) =
Giải thuật tính pagerank:
PageRank-Iterate(G)
← e/n
- 21 -
Đồ án môn học: Công nghệ trí thức và ứng dụng
k ← 1
repeat
← (1-d)e + d;
k ← k + 1;
until || – ||1 < ε
return Pk
Trong đó d được gọi là damping factor, nhận giá trị từ 0
1, thường được chọn là
0.85, e thường được chọn là 1 và ε là giá trị rất nhỏ
Các bước tính PageRank của ví dụ trên:
Bước 1: Tính PR trung bình = 1/n = 0.25
Bước 2: Tính PR của các page theo công thức:
PR(A) = (1-d) + d(PR(T1)/C(T1) + …. + PR(Tn)/C(Tn))
Lần 1:
PR(A) = e/n = ¼ = 0.25
PR(D)= 0.15 + 0.85 * (0) = 0.15 (không có trang nào chứa liên kết tới D)
PR(B) = 0.15 + 0.85*(0.25/2) = 0.256
PR(C) = 0.15 + 0.85*(0.25/2+0.256/1+0.15/1) = 0.6013
Lần 2:
PR(A)= 0.15 + 0.85*(0.6013/1) = 0.4055
PR(B) = 0.15 + 0.85*(0.4055/2) = 0.322
PR(C) = 015+085*(0 4055/2+0 322/1+0 15/1) = 0 7235
Lần 3:
PR(A)= 0.15 + 0.85 *(0.7235/1) = 0.7649
PR(B) = 0.15 + 0.85*(0.7649/2) = 0.4751
PR(C) = 0.15+ 0.85*(0.7649/2+0.751/1+0.15) = 1.0075
Lần 4:
PR(A)= 0.15 + 0.85*(1.0075/1) = 1.0063
PR(B) = 0.15 + 0.85*(1.0063/2) = 0.5777
PR(C) = 0.15+ 0.85 *(1.0063/2+0.5777/1+0.15) = 1.1962
- 22 -
Đồ án môn học: Công nghệ trí thức và ứng dụng
Lần 5:
PR(A)= 0.15 + 0.85*(1.1962/1) = 1.1668
PR(B) = 0.15 + 0.85*(1.1668/2) = 0.66458
PR(C) = 0.15+ 0.85 *(1.1668/2+0.6645/1+0.15) = 1.338
Lần 6:
PR(A)= 0.15 + 0.85*(1.338/1) = 1.2875
PR(B) = 0.15 + 0.85*(1.2875/2) = 0.6972
PR(C) = 0.15+ 0 85 *(1.2875/2+0.6972/1+0.15) = 1.490
Lần 7:
PR(A)= 0.15 + 0.85*(1.490/1) = 1.4165
PR(B) = 0.15 + 0.85*(1.4165/2) = 0.752
PR(C) = 0.15+ 0.85 *(1.4165/2+0.752/1+0.15) = 1.5178
Lần 8:
PR(A)= 0.15 + 0.85*(1.5178/1) = 1.4409
PR(B) = 0.15 + 0.85*(1.4409/2) = 0.7623
PR(C) = 0.15+ 0.85 *(1.4409/2+0.7623/1+0 15) = 1.5378
Chênh lệch giữa lần 7 và lần 8 là:
dA = 1.4409 – 1.4165 = 0.0244
dB = 0.0103
dC = 0.02
Các tính toán trên thõa mãn < ε = 0.03
Vậy giá trị PageRank của các page đã cho là: PR(A) = 1.4409, PR(B) = 0.7623, PR(C)
= 1.5378, PR(D) = 0.15
5. Thuật toán Native Bayes
Cho trước một tập đối tượng, và mỗi đối tượng thuộc về một lớp nào đó, và mỗi đối
tượng được đại diện bởi một vector. Mục tiêu là cần xây dựng tập luật, sao cho có thể
nhận biết được lớp của một đối tượng mới đưa vào tập hợp. Kỹ thuật này được gọi là
- 23 -
Đồ án môn học: Công nghệ trí thức và ứng dụng
phân lớp có giám sát, và đã có rất nhiều kỹ thuật làm việc này, một trong số đó là
Native Bayes.
Nguyên lí: Để đơn giản, giả sử rằng chỉ có 2 lớp 0 và 1. Mục tiêu là tìm một số sao cho
nếu lớn hơn số đó thì kết hợp với 1, nhỏ hơn thì kết hợp với 0.
Đặt P(i|x) là xác suất giá trị x thuộc về lớp i.
Ta có thể phân tích P(i|x) = f(x|i) P(i)
Trong đó P(i) là xác suất xuất hiện lớp i trong toàn bộ tập giá trị ban đầu. f(x|i)
là độ phổ biến của giá trị x đối với lớp i.
Đối với trường hợp chỉ có 2 lớp (0 và 1), ta có
Thay (2) vào (1), ta được
Lấy ln2 vế ta được
Ví dụ cho thuật toán trên:
Giả sử ta có tập dữ liệu ban đầu (quyết định có đi chơi tennis không) như sau:
- 24 -
Đồ án môn học: Công nghệ trí thức và ứng dụng
Vậy, xét giá trị X = {Sunny, Hot, Normal, Weak}. Hỏi với điều kiện mới X này, thì có
đi chơi tennis ko?
Áp dụng công thức đã tính được ở trên, ta có:
Với :
Vây
Nên lớp của X là Yes, hay với điều kiện X thì đi chơi Tennis
- 25 -