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

Học bằng phương pháp xây dựng cây định danh

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 (538.95 KB, 18 trang )

ĐẠI HỌC QUỐC GIA TP.HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
CAO HỌC KHÓA VI - NĂM HỌC 2012
****

****
Giáo viên hướng dẫn:
GS. TSKH. Hoàng Kiếm
Nhóm thực hiện:
Nguyễn Hữu Thành (CH1101136)
Trần Thị Kiều Diễm (CH1101074)
/
LỜI NÓI ĐẦU
Sự ra đời của máy tính điện tử và sự phát triển vượt bậc của ngành công
nghiệp máy tính cùng với nhu cầu của con người đối với máy tính ngày một cao
hơn, ngoài những công việc tính toán thông thường, con người còn mong đợi máy
tính có khả năng xử lí thông minh hơn, giải quyết những công việc giống như con
người. Từ đó công nghệ tri thức ra đời và phát triển.
Bài thu hoạch này cho ta những khái niệm chung nhất về định nghĩa và vai
trò của công nghệ tri thức, giới thiệu những phương pháp “học” để máy tính có thể
xử lí thông tin gần giống như con người thậm chí hơn cả con người, cụ thể hơn là
phương pháp “học” bằng cách xây dựng cây định danh. Từ tập dữ liệu đã quan sát
được, áp dụng thuật giải xây dựng cây định danh ta tìm được tập luật, tập luật này
là tri thức mới mà máy “khám phá được” từ dữ liệu thô ban đầu.
/
MỤC LỤC
/
PHẦN 1. CÔNG NGHỆ TRI THỨC
I. Khái niệm công nghệ tri thức
1. Khái niệm tri thức
- Tri thức là kết quả của quá trình nhận thức, học tập và lập luận.


- Tri thức khác với thông tin và dữ liệu ở chỗ tri thức cho ta cách giải quyết một
vấn đề hay giải pháp để thực hiện một công việc nào đó.
2. Khái niệm công nghệ tri thức
- Công nghệ tri thức là những phương pháp, kĩ thuật dùng để:
 Tiếp nhận, biểu diễn tri thức.
 Xây dựng các hệ cơ sở tri thức
 Khám phá tri thức
II. Vai trò của công nghệ tri thức
- Sự bùng nổ thông tin cùng với sự phát triển nhanh chóng, vượt bậc của ngành
công nghiệp máy tính, nhu cầu của người dùng đối với máy tính ngày một cao hơn: không
chỉ giải quyết những công việc lưu trữ, tính toán bình thường, người dùng còn mong đợi
máy tính có khả năng thông minh hơn, có thể giải quyết vấn đề như con người. Và từ đó
trí tuệ nhân tạo nói chung và đặc biệt là công nghệ tri thức ra đời và phát triển
- Công nghệ tri thức đóng vai trò hết sức quan trọng trong việc phát triển Công
nghệ thông tin, nâng cao sự hữu dụng của máy tính, giúp con người gần gũi với máy tính
hơn.
- Công nghệ tri thức còn góp phần thúc đẩy nhiều ngành khoa học khác phát triển,
khả năng phát triển khoa học dựa trên tri thức liên ngành…
- Mô hình minh họa
(Từ tập dữ liệu Inputs, các hệ cơ sở tri thức được cài đặt trong máy tính sẽ giúp tìm được
output cần thiết, đó chính là các tri thức hoàn toán mới được rút ra từ tập dữ liệu Inputs)
Công nghệ tri thức – Trang 4/18 GVHD: GS.TSKH. Hoàng Kiếm
MÁY TÍNH
TIẾP NHẬN, BIỂU
DIỄN, TỐI ƯU HÓA
CSTT
CÁC HỆ
CƠ SỞ TRI THỨC
KHAI THÁC DỮ
LIỆU, KHÁM PHÁ

TRI THỨC
Inputs Outputs
PHẦN 2. MÁY HỌC VÀ KHÁM PHÁ TRI THỨC
I. Định nghĩa máy học
- Máy học là chương trình máy tính có khả năng tự hoàn thiện chính nó từ “kinh
nghiệm” mà nó thu thập được trong quá trình thi hành, hay nói rõ hơn kết quả mà chương
trình máy học đưa ra lúc đầu có thể chưa chính xác nhưng càng về sau càng chính xác.
- Đa số các chương trình máy học đều phải phân tích một lượng dữ liệu đầu vào để từ
đó rút ra các quy luật (gọi là tri thức) và áp dụng quy luật này vào dữ liệu mới để cho ra
kết quả.
- Phân loại máy học:
Có nhiều quan điểm khác nhau về phân loại máy học
o Phân loại thô chia thành học có giám sát (supervised) và học không giám sát
(unsupervised). Học có giám sát nghĩa là trong quá trình học có sự trợ giúp của con người,
tuy nhiên cách học này có hạn chế là máy không thể tự thân vận động.
o Phân loại theo hai “tiêu chuẩn” cùng lúc là “cấp độ học” và “cách tiếp cận”
1) Phân loại theo cấp độ học có:
• Học vẹt (Rote learning): liệt kê tất cả các trường hợp có thể xảy ra một
cách vét cạn.
• Học theo giải thích (by explanation): vận dụng những tri thức sẵn có của
hệ thống để khai thác thêm thông tin về một đối tượng mới cần biết chứ không tạo ra tri
thức mới.
• Học theo ví dụ, trường hợp (by examples, cases): lấy ra một vài trường
hợp đặc trưng sau đó làm mẫu để phân tích những trường hợp khác, áp dụng khi mẫu dữ
liệu lớn.
• Học khám phá (by discovering): tìm ra tri thức mới từ tập các mẫu cho
trước, tri thức mới này có thể là chủ ý hoặc không là chủ ý của con người, đây là một cách
học theo kiểu trường hợp thông minh thường được cài đặt theo hướng tiếp cận khai mỏ dữ
liệu (data mining)
2) Phân loại theo cách tiếp cận có:

• Tiếp cận thống kê: liệt kê tất cả giá trị trước đó, dựa vào giá trị đó để dự
đoán kết quả cho giá trị tiếp theo, cách tiếp cận này ban đầu có thể cho ra kết quả chưa
chính xác nhưng càng về sau càng chính xác.
• Tiếp cận toán tử logic: xây dựng các mệnh đề đặc trưng cho các nhóm,
mệnh đề cơ sở cho các tập mẫu, sau đó kiểm tra giá trị của mệnh đề cơ sở. Cách tiếp cận
này cần có sự giúp sức của con người.
• Tiếp cận hình học (phân hoạch không gian, xây dựng cây định danh, …)
• Tiếp cận mạng Neural nhân tạo
• Tiếp cận khai mỏ dữ liệu (data mining)
II. Định nghĩa khám 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, …) từ tập dữ liệu đã có.
III. Minh họa một số thuật toán học bằng phương pháp xây dựng cây định danh
1. Định nghĩa cây định danh:
Công nghệ tri thức – Trang 5/18 GVHD: GS.TSKH. Hoàng Kiếm
Cây định danh là cây được xây dựng dựa trên tập dữ liệu cho trước mà khi tiến hành
duyệt cây ta có được tập các luật từ nó. Mỗi nút của cây định danh là một thuộc tính của
tập dữ liệu.
2. Xây dựng cây định danh dùng phương pháp Quinlan
- Thuật toán này dựa trên ý tưởng tiếp cận hình học là phân chia không gian bài
toán tạo thành một cây quyết định, mục đích của thuật toán này là tìm ra các quy luật của
dữ liệu từ tập dữ liệu cho trước.
- Ý tưởng:
o Xác định thuộc tính quan tâm (thuộc tính mục tiêu)
o Xác định thuộc tính dẫn xuất
o Trong số các thuộc tính dẫn xuất ta chọn một thuộc tính để phân hoạch bằng
cách tính vecto đặc trưng cho từng thuộc tính, nếu thuộc tính dẫn xuất nào có nhiều vecto
đơn vị thì sẽ chọn để phân hoạch
o Sau khi phân hoạch nếu tập phân hoạch nào còn lẫn lộn các mẫu không có
cùng thuộc tính mục tiêu thì sẽ chọn nhánh đó để xét tiếp đến khi nào ở mỗi nhánh chỉ còn

chứa các mẫu có cùng thuộc tính mục tiêu thì ngưng.
o Sau khi xây dựng cây định danh xong ta rút ra tập luật từ cây định danh đó
và tối ưu tập luật.
- Thuật toán:
o Với mỗi thuộc tính dẫn xuất A còn có thể sử dụng để phân hoạch thì ta tính:
V
A
(j) = (T(j, r
1
), T(j, r
2
), …, T(j, r
n
), )
T(j, r
i
) =
Với r
1
, r
2
, …, r
n
là các giá trị thuộc tính quan tâm.
o V(A
j
) được gọi là vector đơn vị nếu nó có duy nhất một thành phần có giá trị
1 và những thành phần khác có giá trị 0.
o Thuộc tính được chọn để phân hoạch là thuộc tính có nhiều vector đơn vị
nhất.

- Minh họa thuật toán với tập dữ liệu sau:
Các
trường
hợp
Mặt biển dao
động
Nhiều bọt
biển nổi lên
Nước rút Kết quả
1 Trung bình Có Rất nhanh Có sóng lớn
2 Nhiều Không Rất nhanh Không có sóng lớn
3 Nhiều Có Nhanh Có sóng lớn
4 Trung bình Có Trung bình Không có sóng lớn
5 Nhiều Có Trung bình Có sóng lớn
6 Nhiều Có Rất nhanh Có sóng lớn
7 Nhiều Không Trung bình Không có sóng lớn
8 Trung bình Không Rất nhanh Không có sóng lớn
Công nghệ tri thức – Trang 6/18 GVHD: GS.TSKH. Hoàng Kiếm
Tổng số phần tử trong phân hoạch có giá trị thuộc tính dẫn xuất là
A là j và có giá trị thuộc tính mục tiêu là r
i
Tổng số phần tử trong phân hoạch có giá trị thuộc tính dẫn xuất là A là j
9 Trung bình Không Trung bình Không có sóng lớn
o Xác định thuộc tính quan tâm: Kết quả
o Xác định thuộc tính dẫn xuất: Mặt biển dao động, Nhiều bọt biển nổi lên,
Nước rút
o Tính vecto đặc trưng:
V
mặt biển dao động
(Trung bình)=(T(Trung bình, Có sóng lớn), T(Trung bình, Không có sóng

lớn))
= (1/4, 3/4)
= (0.25, 0.75)
V
mặt biển dao động
(Nhiều)=(T(Nhiều, Có sóng lớn), T(Nhiều, Không có sóng lớn))
= (3/5, 2/5)
= (0.6, 0.4)
V
Nhiều bọt biển nổi lên
(Có)=(T(Có, Có sóng lớn), T(Có, Không có sóng lớn))
= (4/5, 1/5)
= (0.8, 0.2)
V
Nhiều bọt biển nổi lên
(Không)=(T(Không, Có sóng lớn), T(Không, Không có sóng lớn))
= (0/5, 5/5)
= (0, 1) (vecto đơn vị)
V
Nước rút
(Rất nhanh)=(T(Rất nhanh, Có sóng lớn), T(Rất nhanh, Không có sóng lớn))
= (2/4, 2/4)
= (0.5, 0.5)
V
Nước rút
(Nhanh)=(T(Nhanh, Có sóng lớn), T(Nhanh, Không có sóng lớn))
= (1/1, 0/1)
= (1, 0) (vecto đơn vị)
V
Nước rút

(Trung bình)=(T(Trung bình, Có sóng lớn), T(Trung bình, Không có sóng lớn))
= (1/4, 3/4)
= (0.25, 0.75)
o Chọn thuộc tính phân hoạch: ta thấy thuộc tính dẫn xuất Nhiều bọt biển nổi
lên và thuộc tính Nước rút đều có 1 vecto đơn vị, nhưng số phân hoạch của thuộc tính
Nhiều bọt biển nổi lên ít hơn do đó chọn thuộc tính này để phân hoạch
Có Không
1, 3, 4, 5, 6 2, 7, 8, 9
o Đối tượng được gạch chân và in đậm có thuộc tính Kết quả là Có sóng lớn
o Gọi tập đối tượng ban đầu là P, P = {1, 3, 4, 5, 6 , 2, 7, 8, 9}
o Sau khi phân hoạch ta được 2 tập con P1, P2, với P1 = {1, 3, 4, 5, 6};
P2 = {2, 7, 8, 9}
Công nghệ tri thức – Trang 7/18 GVHD: GS.TSKH. Hoàng Kiếm
Nhiều bọt biển
nổi lên
o Nhận thấy bên tập con P1 còn lẫn lộn giữa các đối tượng Có sóng lớn và
Không có sóng lớn, do đó ta tiếp tục phân hoạch với tập dữ liệu mới P1 như sau
Các
trường
hợp
Mặt biển dao
động
Nước rút Kết quả
1 Trung bình Rất nhanh Có sóng lớn
3 Nhiều Nhanh Có sóng lớn
4 Trung bình Trung bình Không có sóng lớn
5 Nhiều Trung bình Có sóng lớn
6 Nhiều Rất nhanh Có sóng lớn
V
mặt biển dao động

(Trung bình)=(T(Trung bình, Có sóng lớn), T(Trung bình, không có sóng lớn))
= (1/2, 1/2)
= (0.5, 0.5)
V
mặt biển dao động
(Nhiều)=(T(Nhiều, Có sóng lớn), T(Nhiều, không có sóng lớn))
= (3/3, 0/3)
= (1, 0) (vecto đơn vị)
V
Nước rút
(Rất nhanh)=(T(Rất nhanh, Có sóng lớn), T(Rất nhanh, không có sóng lớn))
= (2/2, 0/2)
= (1, 0)
V
Nước rút
(Nhanh)=(T(Nhanh, Có sóng lớn), T(Nhanh, không có sóng lớn))
= (1/1, 0/1)
= (1, 0) (vecto đơn vị)
V
Nước rút
(Trung bình)=(T(Trung bình, Có sóng lớn), T(Trung bình, không có sóng lớn))
= (1/2, 1/2)
= (0.5, 0.5)
o Chọn thuộc tính phân hoạch tiếp theo là Mặt biển dao động
Có Không
P1={1, 3, 4, 5, 6}
P2={2, 7, 8, 9}
2, 7, 8, 9
Nhiều Trung bình
3, 5, 6 1, 4

o P1 được phân hoạch thành 2 tập con P1.1 và P1.2, với P1.1 = { 3, 5, 6}
và P1.2 = {1, 4}.
Công nghệ tri thức – Trang 8/18 GVHD: GS.TSKH. Hoàng Kiếm
Nhiều bọt biển
nổi lên
Mặt biển dao
động
o Ta thấy trong P1.2 còn lẫn lộn các đối tượng có sóng lớn và không có sóng
lớn nên tiếp tục phân hoạch với tập dữ liệu mới là P1.2 như sau:
Các trường hợp Nước rút Kết quả
1 Rất nhanh Có sóng lớn
4 Trung bình Không có sóng lớn
o Vì còn 1 thuộc tính dẫn xuất cuối cùng nên ta lấy thuộc tính này phân hoạch
tiếp, cây định danh cuối cùng như sau:
Có Không
P1={1, 3, 4, 5, 6}
P2={2, 7, 8, 9}
Nhiều Trung bình
P1.2 = {1, 4}
P1.1 = { 3, 5, 6}
Rất nhanh Trung bình
1 4
Vậy ta rút ra tập luật như sau:
1. (Không có nhiều bọt biển nổi lên)  Không có sóng lớn
2. (Có nhiều bọt biển nổi lên) và (mặt biển dao động nhiều)  có sóng lớn
3. (Có nhiều bọt biển nổi lên) và (mặt biển dao động trung bình) và (nước rút rất
nhanh) có sóng lớn
4. (Có nhiều bọt biển nổi lên) và (mặt biển dao động trung bình) và (nước rút trung
bình) không có sóng lớn
Tối ưu tập luật:

- Xét luật 1. (Không có nhiều bọt biển nổi lên)  Không có sóng lớn
Do luật 1 có 1 mệnh đề nên không có mệnh đề thừa.
- Xét luật 2. (Có nhiều bọt biển nổi lên) và (mặt biển dao động nhiều)  có sóng lớn
Trong luật 2 có 2 mệnh đề: (Có nhiều bọt biển nổi lên) và (mặt biển dao động nhiều)
 Dùng bảng Contigency để xét có thể loại bỏ mệnh đề (có nhiều bọt biển nổi lên)
hay không.
Công nghệ tri thức – Trang 9/18 GVHD: GS.TSKH. Hoàng Kiếm
Nhiều bọt biển
nổi lên
Mặt biển dao
động
Nước rút
(mặt biển dao động nhiều)
Có sóng lớn Không có sóng lớn
Có nhiều bọt biển nổi lên 3 0
Không có nhiều bọt biển nổi lên 0 2
Do tổng số đối tượng có kết quả (Không có sóng lớn) là 2 <> 0 nên không thể loại
mệnh đề (Có nhiều bọt biển nổi lên) khỏi luật 2.
 Dùng bảng Contigency để xét có thể loại bỏ mệnh đề (mặt biển dao động nhiều)
hay không.
(Có nhiều bọt biển nổi lên)
Có sóng lớn Không có sóng lớn
mặt biển dao động nhiều 3 0
Không phải mặt biển dao động nhiều 1 1
Tương tự cũng không thể loại bỏ mệnh đề (mặt biển dao động nhiều) khỏi luật 2.
Vậy luật 2 vẫn là (Có nhiều bọt biển nổi lên) và (mặt biển dao động nhiều)  có
sóng lớn
- Xét luật 3. (Có nhiều bọt biển nổi lên) và (mặt biển dao động trung bình) và (nước rút
rất nhanh) có sóng lớn
Trong luật 3 có 3 mệnh đề: (Có nhiều bọt biển nổi lên), (mặt biển dao động nhiều),

(nước rút rất nhanh)
 Dùng bảng Contigency để xét có thể loại bỏ mệnh đề (Có nhiều bọt biển nổi lên)
hay không.
(mặt biển dao động nhiều), (nước rút rất nhanh)
Có sóng lớn Không có sóng lớn
Có nhiều bọt biển nổi lên 1 0
Không có nhiều bọt biển nổi lên 0 1
Không thể loại bỏ mệnh đề (Có nhiều bọt biển nổi lên)
 Dùng bảng Contigency để xét có thể loại bỏ mệnh đề (mặt biển dao động nhiều)
hay không.
(Có nhiều bọt biển nổi lên), (nước rút rất nhanh)
Có sóng lớn Không có sóng lớn
mặt biển dao động trung bình 1 0
Không phải mặt biển dao động trung bình 1 0
Loại mệnh đề mặt biển dao động trung bình ra khỏi luật 3.
Luật 3 thành: (Có nhiều bọt biển nổi lên) và (nước rút rất nhanh) có sóng lớn
 Xét có thể loại bỏ mệnh đề (nước rút rất nhanh) hay không.
(Có nhiều bọt biển nổi lên)
Có sóng lớn Không có sóng lớn
nước rút rất nhanh 2 0
Không phải nước rút rất nhanh 2 1
Không thể loại bỏ mệnh đề (nước rút rất nhanh)
Công nghệ tri thức – Trang 10/18 GVHD: GS.TSKH. Hoàng Kiếm
Vậy luật 3 cuối cùng: (Có nhiều bọt biển nổi lên) và (nước rút rất nhanh) có
sóng lớn
- Xét luật 4. (Có nhiều bọt biển nổi lên) và (mặt biển dao động trung bình) và (nước rút
trung bình) không có sóng lớn
 Xét có thể loại bỏ mệnh đề (Có nhiều bọt biển nổi lên) hay không
(mặt biển dao động trung bình) và (nước rút trung bình)
Không có sóng lớn Có sóng lớn

Có nhiều bọt biển nổi lên 1 0
Không có nhiều bọt biển nổi lên 1 0
Loại mệnh đề (Có nhiều bọt biển nổi lên) ra khỏi luật 4
Vậy luật 4 thành: (mặt biển dao động trung bình) và (nước rút trung bình)
không có sóng lớn
 Xét có thể loại bỏ mệnh đề (mặt biển dao động trung bình) hay không
nước rút trung bình
Không có sóng lớn Có sóng lớn
mặt biển dao động trung bình 2 0
Không phải mặt biển dao động trung bình 1 1
Không thể loại bỏ mệnh đề (mặt biển dao động trung bình)
 Xét có thể loại bỏ mệnh đề nước rút trung bình) hay không
mặt biển dao động trung bình
Không có sóng lớn Có sóng lớn
nước rút trung bình 2 0
Không phải nước rút trung bình 1 1
Không thể loại bỏ mệnh đề nước rút trung bình
Vậy luật 4 cuối cùng là: (mặt biển dao động trung bình) và (nước rút trung
bình) không có sóng lớn
Tập luật sau khi tối ưu như sau:
1. (Không có nhiều bọt biển nổi lên)  Không có sóng lớn
2. (Có nhiều bọt biển nổi lên) và (mặt biển dao động nhiều)  có sóng lớn
3. (Có nhiều bọt biển nổi lên) và (nước rút rất nhanh) có sóng lớn
4. (mặt biển dao động trung bình) và (nước rút trung bình) không có sóng lớn
Chọn luật mặc định:
Ta chọn luật 2 hoặc 3 vì tổng số mệnh đề mà nó thay thế là nhiều hơn khi ta chọn luật
1 hoặc 4
Xác định tập luật cuối cùng là:
1. (Không có nhiều bọt biển nổi lên)  Không có sóng lớn
2. (Mặt biển dao động trung bình) và (nước rút trung bình) Không có sóng lớn

3. Không có luật nào thỏa  Có sóng lớn
3. Xây dựng cây định danh dùng phương pháp Ila
- Ý tưởng: Thuật toán này dựa trên ý tưởng tiếp cận hình học là phân hoạch
nhưng tính chất phân hoạch khác cây định danh ở chỗ thuật toán này sẽ lặp để tìm luật
Công nghệ tri thức – Trang 11/18 GVHD: GS.TSKH. Hoàng Kiếm
phân loại cho từng phân hoạch trên các lớp của tập mẫu, khi một luật được xác định sẽ
loại bỏ các mẫu liên quan đồng thời thêm luật này vào tập luật.
- Thuật toán:
o Bước 1: Chia mẫu ban đầu thành n bảng con, mỗi bảng con ứng với một giá
trị của thuộc tính quyết định của tập mẫu. Với mỗi bảng con ta thực hiện lần lượt từ bước
2 đến bước 8.
o Bước 2: j=1
o Bước 3: Chia danh sách các thuộc tính thành các tổ hợp khác nhau, mỗi tổ
hợp gồm j thuộc tính.
o Bước 4: Với mỗi tổ hợp thuộc tính có được, tính số lần giá trị thuộc tính xuất
hiện theo cùng tổ hợp thuộc tính trong các dòng còn lại của bảng con đang xét với yêu cầu
giá trị thuộc tính đó không xuất hiện trong các bảng con khác. Gọi tổ hợp đầu tiên có số
lần xuất hiện nhiều nhất là tổ hợp lớn nhất.
o Bước 5: Nếu tổ hợp lớn nhất có giá trị bằng 0, tăng j lên 1 và quay lại bước 3
o Bước 6: Loại bỏ các dòng thỏa tổ hợp lớn nhất ra khỏi bảng con đang xử lí.
o Bước 7: Thêm một luật mới vào tập luật R, với vế trái là tập các thuộc tính
của tổ hợp lớn nhất và vế phải là thuộc tính quyết định tương ứng.
o Bước 8: Nếu tất cả các dòng đều đã được loại bỏ, tiếp tục thực hiện từ bước 2
cho các bảng con còn lại, ngược lại thì quay lại bước 4. Nếu tất cả các bảng con đã được
xét đến thì kết thúc, ta có R cần tìm.
- Minh họa thuật toán với tập dữ liệu sau:
Các
trường
hợp
Mặt biển dao

động
Nhiều bọt
biển nổi lên
Nước rút Kết quả
1 Trung bình Có Rất nhanh Có sóng lớn
2 Nhiều Không Rất nhanh Không có sóng lớn
3 Nhiều Có Nhanh Có sóng lớn
4 Trung bình Có Trung bình Không có sóng lớn
5 Nhiều Có Trung bình Có sóng lớn
6 Nhiều Có Rất nhanh Có sóng lớn
7 Nhiều Không Trung bình Không có sóng lớn
8 Trung bình Không Rất nhanh Không có sóng lớn
9 Trung bình Không Trung bình Không có sóng lớn
o Bước 1: Chia tập dữ liệu thành 2 bảng con như sau:
 Bảng 1:
Các trường
hợp
Mặt biển dao
động
Nhiều bọt
biển nổi lên
Nước rút Kết quả
1 Trung bình Có Rất nhanh Có sóng lớn
3 Nhiều Có Nhanh Có sóng lớn
5 Nhiều Có Trung bình Có sóng lớn
6 Nhiều Có Rất nhanh Có sóng lớn
 Bảng 2:
Công nghệ tri thức – Trang 12/18 GVHD: GS.TSKH. Hoàng Kiếm
Các trường
hợp

Mặt biển dao
động
Nhiều bọt
biển nổi lên
Nước rút Kết quả
2 Nhiều Không Rất nhanh Không có sóng lớn
4 Trung bình Có Trung bình Không có sóng lớn
7 Nhiều Không Trung bình Không có sóng lớn
8 Trung bình Không Rất nhanh Không có sóng lớn
9 Trung bình Không Trung bình Không có sóng lớn
 Xét bảng con thứ 1
o Bước 2: j=1
o Bước 3: có 3 tổ hợp, mỗi tổ hợp gồm 1 thuộc tính là {Mặt biển dao động};
{Nhiều bọt biển nổi lên}; {Nước rút}
o Bước 4: tìm tổ hợp lớn nhất
Tổ hợp { Mặt biển dao động }, thuộc tính “Trung bình” xuất hiện ở cả bảng
1 và bảng 2, thuộc tính “Nhiều” cũng xuất hiện ở cả 2 bảng, ta có:
T(Mặt biển dao động
trung bình
) = 0; T(Mặt biển dao động
Nhiều
) = 0
Tương tự cho 2 tổ hợp {Nhiều bọt biển nổi lên}; {Nước rút}, ta có:
T(Nhiều bọt biển nổi lên

) = 0;
T(Nước rút
Rất nhanh
) = 0; T(Nước rút
nhanh

) = 1; T(Nước rút
trung bình
) = 0
Ta thấy T(Nước rút
nhanh
) = 1 là lớn nhất
o Bước 5: không thỏa điều kiện nên không thực hiện
o Bước 6: loại bỏ dòng có thuộc tính Nước rút nhanh ra khỏi bảng 1, ta được
bảng con 1 mới:
Các trường
hợp
Mặt biển dao
động
Nhiều bọt
biển nổi lên
Nước rút Kết quả
1 Trung bình Có Rất nhanh Có sóng lớn
5 Nhiều Có Trung bình Có sóng lớn
6 Nhiều Có Rất nhanh Có sóng lớn
o Bước 7: thêm vào tập luật R luật sau:
IF (Nước rút = Nhanh) THEN Kết quả = Có sóng lớn
o Bước 8: bảng con còn 3 dòng chưa được loại bỏ nên ta tiếp tục quay lại bước 4
tìm tổ hợp lớn nhất
T(Mặt biển dao động
trung bình
) = 0; T(Mặt biển dao động
Nhiều
) = 0
T(Nhiều bọt biển nổi lên


) = 0;
T(Nước rút
Rất nhanh
) = 0; T(Nước rút
trung bình
) = 0
Do tổ hợp lớn nhất là 0 nên tăng j = j+1 = 2, ta được 3 tổ hợp, mỗi tổ hợp gồm
2 thuộc tính là {Mặt biển dao động, Nhiều bọt biển nổi lên}; {Nhiều bọt biển nổi lên, Nước
rút}; {Mặt biển dao động, Nước rút}
T(Mặt biển dao động
trung bình
, Nhiều bọt biển nổi lên

)=0
T(Mặt biển dao động
nhiều
, Nhiều bọt biển nổi lên

)=2
T(Nhiều bọt biển nổi lên
có,
Nước rút
rất nhanh
)=2
T(Nhiều bọt biển nổi lên
có,
Nước rút
trung bình
)=0
T(Mặt biển dao động

trung bình
, Nước rút
rất nhanh
)=0
T(Mặt biển dao động
nhiều
, Nước rút
trung bình
)=0
Công nghệ tri thức – Trang 13/18 GVHD: GS.TSKH. Hoàng Kiếm
Tổ hợp lớn nhất là T(Mặt biển dao động
nhiều
, Nhiều bọt biển nổi lên

), loại bỏ
những dòng thỏa 2 thuộc tính này ra khỏi bảng đang xét ta được
Các trường hợp Mặt biển dao động Nhiều bọt biển nổi lên Nước rút Kết quả
1 Trung bình Có Rất nhanh Có sóng lớn
Thêm vào tập luật R luật sau:
IF (Mặt biển dao động = Nhiều) AND (Nhiều bọt biển nổi lên = Có)
THEN Kết quả = Có sóng lớn.
Ta tiếp tục tìm tổ hợp lớn nhất với dòng còn lại trong bảng con đang xét
T(Mặt biển dao động
trung bình
, Nhiều bọt biển nổi lên

)=0
T(Nhiều bọt biển nổi lên
có,
Nước rút

rất nhanh
)=2
T(Mặt biển dao động
trung bình
, Nước rút
rất nhanh
)=0
Tổ hợp lớn nhất là T(Nhiều bọt biển nổi lên
có,
Nước rút
rất nhanh
), loại bỏ dòng
này khỏi bảng đang xét thì trong bảng không còn dòng nào nên dừng thuật toán với bảng
con 1
Thêm vào tập luật R luật sau:
IF (Nhiều bọt biển nổi lên = Có) AND (Nước rút = Rất nhanh)
THEN Kết quả = Có sóng lớn.
 Xét bảng con thứ 2 (tương tự bảng con 1)
Với j = 1 ta tính được
T(Mặt biển dao động
trung bình
) = 0; T(Mặt biển dao động
Nhiều
) = 0
T(Nhiều bọt biển nổi lên

) = 0; T(Nhiều bọt biển nổi lên
không)
= 4
T(Nước rút

Rất nhanh
) = 0; T(Nước rút
trung bình
) = 0
Tổ hợp lớn nhất là: T(Nhiều bọt biển nổi lên
không
).
Bảng dữ liệu mới sau khi loại bỏ các dòng có thuộc tính “nhiều bọt biển nổi
lên” là “không”
Các trường
hợp
Mặt biển dao
động
Nhiều bọt
biển nổi lên
Nước rút Kết quả
4 Trung bình Có Trung bình Không có sóng lớn
Thêm luật mới vào tập R:
IF (Nhiều bọt biển nổi lên = Không) THEN Kết quả = Không có sóng lớn.
Tăng j = j+1 = 2, ta được 3 tổ hợp, mỗi tổ hợp gồm 2 thuộc tính là {Mặt biển
dao động, Nhiều bọt biển nổi lên}; {Nhiều bọt biển nổi lên, Nước rút}; {Mặt biển dao động,
Nước rút}
T(Mặt biển dao động
trung bình
, Nhiều bọt biển nổi lên

)=0
T(Nhiều bọt biển nổi lên
có,
Nước rút

trung bình
)=0
T(Mặt biển dao động
trung binh
, Nước rút
trung bình
)=1
Tổ hợp lớn nhất là: T(Mặt biển dao động
trung binh
, Nước rút
trung bình
)
Loại bỏ dòng có tổ hợp phím này thì trong bảng đang xét không còn dòng nào,
luật mới được thêm vào R là:
Công nghệ tri thức – Trang 14/18 GVHD: GS.TSKH. Hoàng Kiếm
IF (Mặt biển dao động = trung bình) AND (Nước rút = Trung bình)
THEN Kết quả = Không có sóng lớn.
 Thuật giải kết thúc vì không còn bảng con nào để xét, vậy tập luật cuối cùng như sau:
1. IF (Nước rút = Nhanh) THEN Kết quả = Có sóng lớn
2. IF (Mặt biển dao động = Nhiều) AND (Nhiều bọt biển nổi lên = Có) THEN Kết
quả = Có sóng lớn.
3. IF (Nhiều bọt biển nổi lên = Có) AND (Nước rút = Rất nhanh) THEN Kết quả =
Có sóng lớn.
4. IF (Nhiều bọt biển nổi lên = Không) THEN Kết quả = Không có sóng lớn
5. IF (Mặt biển dao động = trung bình) AND (Nước rút = Trung bình) THEN Kết
quả = Không có sóng lớn.
Chọn luật mặc định:
Ta chọn luật 2 hoặc 3 vì tổng số mệnh đề mà nó thay thế là nhiều hơn khi ta chọn luật
1, 4 hoặc 5.
Xác định tập luật cuối cùng là:

4. (Không có nhiều bọt biển nổi lên)  Không có sóng lớn
5. (Mặt biển dao động trung bình) và (nước rút trung bình) Không có sóng lớn
6. Không có luật nào thỏa  Có sóng lớn
Công nghệ tri thức – Trang 15/18 GVHD: GS.TSKH. Hoàng Kiếm
PHẦN 3. CÀI ĐẶT THUẬT TOÁN ILA ĐỂ TÌM LUẬT TỪ TẬP DỮ
LIỆU CHO TRƯỚC
I. Tập dữ liệu minh họa:
Quan sát đối tượng là các học sinh phổ thông, vì đây là lứa tuổi mà nhân cách cũng
như tính tư duy, sáng tạo thể hiện rõ nhất và khá ổn định, bên cạnh những năng lực sẵn có
cộng với điều kiện và tác động từ phía gia đình, nhà trường và xã hội thì kết quả rèn luyện
của các học sinh quan sát được như sau:
Một số thuộc tính và các giá trị:
- Giới tính : Nam, nữ
- Học lực: Giỏi, Khá, TB, Yếu, Kém
- Hạnh kiểm: Tốt, TB, Yếu
- Sức khỏe: Tốt, Bình thường, Yếu
- Sự quan tâm của gia đình: Rất nhiều, Ít, Không
- Tính cách: Chăm chỉ, Ham chơi, Nhanh nhẹn, Thông minh
- Năng khiếu đặc biệt: Có, Không
Thuộc tính quyết định:
- Kết quả của cuộc sống: Thành đạt, Không, Bình thường.
Một số mẫu:
ST
T
Giới
tính
Học
lực
Hạn
h

kiểm
Sức
khỏe
Sự quan
tâm của
gia đình
Năng
khiếu
đặc
biệt
Tính
cách
Kết quả
1 Nam Giỏi Tốt Tốt Ít
Khôn
g
Thông
minh
Thành đạt
2 Nữ Khá Tốt
Bình
thường
Rất
nhiều
Khôn
g
Ham
chơi
Bình
thường

3 Nữ
Trung
bình
Tốt Tốt
Rất
nhiều

Ham
chơi
Không
4 Nữ Giỏi Tốt Tốt Không
Khôn
g
Chăm
chỉ
Thành đạt
5 Nam
Trung
bình
Khá Tốt
Rất
nhiều
Khôn
g
Nhanh
nhẹn
Thành đạt
6 Nam
Trung
bình

Trung
bình
Bình
thường
Không Có
Nhanh
nhẹn
Bình
thường
7 Nam Khá Khá
Bình
thường
Ít
Khôn
g
Thông
minh
Thành đạt
8 Nữ Khá Tốt Yếu
Rất
nhiều
Khôn
g
Chăm
chỉ
Bình
thường
9 Nam Khá Tốt Yếu Ít
Khôn
g

Chăm
chỉ
Bình
thường
10 Nữ Giỏi Tốt Tốt Không
Khôn
g
Nhanh
nhẹn
Thành đạt
II. Cài đặt
Công nghệ tri thức – Trang 16/18 GVHD: GS.TSKH. Hoàng Kiếm
1. Tổ chức dữ liệu học
• Một số thuộc tính và các giá trị:
- Giới tính : Nam, nữ
- Học lực: Giỏi, Khá, TB, Yếu, Kém
- Hạnh kiểm: Tốt, TB, Yếu
- Sức khỏe: Tốt, Bình thường, Yếu
- Sự quan tâm của gia đình: Rất nhiều, Ít, Không
- Tính cách: Chăm chỉ, Ham chơi, Nhanh nhẹn, Thông minh
- Năng khiếu đặc biệt: Có, Không
• Thuộc tính quyết định:
- Kết quả của cuộc sống: Thành đạt, Không, Bình thường.
2. Mô tả cấu trúc dữ liệu
• Ta dùng một mảng 2 chiều để mô tả tập mẫu, mỗi hàng là một đối tượng , mỗi cột
là một thuộc tính
• Số bảng con được chia ra sẽ là số thuộc tính quyết định của tập mẫu, vậy ta sẽ cho
vòng lặp từ 1 đến số thuộc tính của mẫu và xét từng bảng con, xét đến bảng con nào ta
đánh dấu bảng con đó.
• Dùng 2 mảng 1 chiều để lưu vị trí đối tượng thuộc bảng bảng con thứ mấy và lưu

giá trị các thuộc tính không bao gồm thuộc tính quyết định.
3. Thuật giải Ila chính
void ILA()
{
int arr[MAX_ATTR];// Mảng để kết hợp các thuộc tính
int arrMax[MAX_ATTR]; // Mảng để giữ tổ hợp lớn nhất
int Max, Count;
int iTemp, iRecord; // Record đại diện cho tổ hợp lớn nhất
nSubTable = ChiaBangCon(DanhDau, TTQD); //chia bảng con
memcpy(DanhDau1, DanhDau, sizeof(DanhDau)); //sao chép để giữ lại bảng
con để so sánh tiếp khi xét bảng con khác vì sau các bước của thuật toán ta sẽ
xóa hết đối tượng trong bảng con đang xét.
for (int i=1; i<=nSubTable; i++) // i chạy từ 1 đến số bảng con
{
for (int j=1; j<SoTT; j++) // j chạy từ 1 đến số thuộc tính của mẫu
{
Max = 0; iRecord = 0;
for (int k=0; k<j; k++)
arr[k] = k;
do{
Công nghệ tri thức – Trang 17/18 GVHD: GS.TSKH. Hoàng Kiếm
Count = DemSoMautrongBangCon(arr, j, i, iTemp); //tính tổ
hợp thuộc tính
if (Count>Max)
{
Max = Count; // lấy giá trị tổ hợp lớn nhất
iRecord = iTemp; // Lưu vị trí record đại diện
memcpy(arrMax, arr, sizeof(arr));
}
}while (TaoThuocTinhKetHop(arr, j));

if (Max >0) // nếu giá trị tổ hợp lớn nhất >0 thì tạo luật
{
TaoLuat(arrMax, j, iRecord);
DanhDauBangCon(arrMax, j, i, iRecord); // đánh dấu những đối
tượng đã tạo luật
j ;
}
if (DanhDauHetBangCon(i))
{memcpy(Check, Check1, sizeof(Check1));
break; // thoát vòng lập để sang bảng con kế tiếp
}
}
}
}
III. Kết quả thực hiện
Sau khi thực hiện thuật giải Ila với tập dữ liệu trên ta thu được kết quả như sau
Công nghệ tri thức – Trang 18/18 GVHD: GS.TSKH. Hoàng Kiếm

×