Bài toán được đặt ra là từ một mẫu cơ sở dữ liệu có sẳn, máy tính có thể phát hiện ra tính quy luật trong mẫu dữ liệu đó bằng phương pháp xây dựng cây định danh và nhờ đó giúp con người
Trang 1ĐẠI HỌC CÔNG NGHỆ THÔNG TIN TP HỒ CHÍ MINH
CHƯƠNG TRÌNH ĐẠO TẠO THẠC SĨ CNTT KHÓA 6
BÀI THU HOẠCH
Đề tài:
HỌC BẰNG PHƯƠNG PHÁP DỰA TRÊN CÂY ĐỊNH DANH
Trang 2MỤC LỤC
Phần A: Mở đầu 2
Phần B: Lý thuyết cơ sở của phương pháp học bằng cây định danh 4
I Khái niệm máy học II Khám phá tri thức III Phân loại máy học I Định nghĩa về cây định danh 5
II Phân tích bài toán 5
III Thuật toán Quinlan 7
1 Thuật toán 7
2 Minh hoạ thuật toán 7
3 Nhận xét (độ đo hỗn loạn) 11
4 Phát sinh tập luật 13
5 Tối ưu hóa tập luật 13
6 Kết luận 15
IV Thuật toán ILA 15
7 Thuật toán 16
8 Minh hoạ thuật toán 16
Phần C: Cài đặt ứng dụng minh họa 22
Phần D: Kết luận 25
Tài liệu tham khảo 26
Trang 3PHẦN A MỞ ĐẦU
Trí tuệ nhân tạo ngày nay đã trở thành một trong những lĩnh vực mũi nhọn, tiên phong hàng đầu, con người chúng ta làm cho máy tính trở nên thông minh hơn, tìm cách tạo ra các chương trình thông minh hơn để có khả năng giải quyết các vấn đề thực tế như cách giải quyết của con người.
Bài thu hoạch sau đây là một khảo sát nhỏ về một phương pháp học trong trí
tuệ nhân tạo, đó là học bằng phương pháp dựa trên cây định danh Bài toán được
đặt ra là từ một mẫu cơ sở dữ liệu có sẳn, máy tính có thể phát hiện ra tính quy luật trong mẫu dữ liệu đó bằng phương pháp xây dựng cây định danh và nhờ đó giúp con người đưa ra các quyết định nhanh chóng và chuẩn xác, Có thể ứng dụng để giải quyết vấn đề thực tế.
Ví dụ ta có một bản thông tin dữ liệu như sau:
Trang 4Tên Nước tiểu Giảm cân Đau lưng S ốt Kết quả
1 (Nước tiểuVàng) và (có đau lưng) à Bệnh sỏi thận
2 (Nước tiểu Vàng) và (không đau lưng) à Không bệnh sỏi thận
3 (Nước tiểu có vôi) àBệnh sỏi thận
4 (Nước tiểu có máu) và (có sốt) à Bệnh sỏi thận
5 (Nước tiểu có máu) và (không sốt)à Không bệnh sỏi thận
Trang 5PHẦN B
LÝ THUYẾT CƠ SỞ CỦA PHƯƠNG PHÁP HỌC BẰNG
XÂY DỰNG CÂY ĐỊNH DANH
I KHÁI NIỆM MÁY HỌC:
- Máy tính hay chương trình máy tính có khả năng hoàn thiện từ “kinh nghiệm”
- Máy tính còn có nghĩa là việc mô hình hóa môi trường xung quanh hay khả năng một chương trình máy tính sinh ra một cấu trúc dữ liệu mới khác với cấu trúc hiện có chẳng hạn tìm ra những luật If…then… từ tập dữ liệu đầu vào
II 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,…)
III PHÂN LOẠI MÁY HỌC:
- Phân loại thô:
+ Cách tiếp cận:
Tiếp cận thống kêTiếp cận toán tử logicTiế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
Tiếp cận khai mỏ dữ liệu
………
IV.ĐỊNH NGHĨA VỀ CÂY ĐỊNH DANH:
Trang 6Cây định danh là cây mà nếu ta đi từ nút gốc đến các lá ta sẽ có một quyết định hay mộtquy luật dựa vào các thuộc tính trên đường đi từ gốc đến lá, như vậy mỗi đường đi từ nútgốc đến nút lá sẽ cho ra một quyết định hay một quy luật Vì vậy người ta còn gọi cây địnhdanh là cây quyết định.
Ví dụ: Với ví dụ 1 ở trên thì cây định danh được xác định như sau:
(Hình số 2)
Các kết luận hay quyết định cho cây định danh này được đưa ra như hình số 1
V PHÂN TÍCH BÀI TOÁN:
Dựa vào ý 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 định danh sau đó xây dựng các phương pháp học dựa trên cây định danh đó
1 Cây định danh được xây dựng bằng cách tìm các quy luật của dữ liệu:
Gọi P là tập hợp những người quan sát được:
Ta xét ngẫu nhiên qua từng thuộc tính rồi phân nhóm kết quả theo từng giá trị của thuộctính
Quan sát thuộc tính Nước tiểu ta có:
P Có vôi = {Châu, Hoa, Phương, Tuấn}
PCó máu = {Dung, Diễm, Hương, Nhung, Tùng}
Người được gạch dưới và in đậm là bị Bệnh sỏi thận, ta có sơ đồ sau:
Không bệnh sỏi thận
Trang 7(Hình số 3)
Ta thấy P vàng còn lẫn lộn người bệnh và không bệnh
Tiếp tục quan sát thuộc tính kế tiếp là thuộc tính Giảm cân với các tập hợp còn lẫn lộn
phân hoạch nào tốt hơn, thông minh hơn Việc chọn thuộc tính như thế nào là thông minh
hơn ta sẽ xem thuật toán Quinlan sau đây:
Nước tiểu
Giảm cân
- My
Nhanhít
Trang 8VI THUẬT TOÁN QUINLAN:
1 Thuật toán:
- 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:
VA(j) = (T(j, r1), T(j, r2), …, T(j, rn), )
T(j, ri) =
Trong đó r1, r2, …, rn là các giá trị thuộc tính mục tiêu Như vậy nếu một thuộc tính A
có thể nhận một trong 5 giá trị khác nhau thì nó sẽ có 5 vector đặc trưng
- Một vector V(Aj) đượ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
- Thuộc tính được chọn để phân hoạch là thuộc tính có nhiều vector đơn vị nhất
2 Minh họa thuật toán:
Bước 1:
Xét thuộc tính Nước tiểu
- Xét giá trị vàng:
VNước tiểu (vàng) = {T(vàng, Bệnh sỏi thận), T(vàng, không bệnh sỏi thận)}
Số người Nước tiểu vàng là: 5
Số người nước tiểu vàng và bệnh sỏi thận là: 2
Số người nước tiểu vàng và không bệnh sỏi thận là: 3 Như vậy: Vnước tiểu (vàng) = (2/5, 3/5) = (0.4, 0.6)
- Xét giá trị Có vôi:
VNước tiểu (Có vôi) = {T(Có vôi, Bệnh sỏi thận), T(Có vôi, không bệnh sỏi thận)}
Số người nước tiểu có vôi là: 4
Số người nước tiểu có vôi và bệnh sỏi thận là: 4
Số người nước tiểu có vôi và không bệnh sỏi thận là: 0 Như vậy: Vnước tiểu (có vôi) = (4/4,0/4) = (1, 0) à vector đơn vị
- Xét giá trị Có máu:
VNước tiểu (Có máu) = {T(Có máu, Bệnh sỏi thận), T(Có máu, không bệnh sỏi thận)}
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à ri
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
Trang 9Số người nước tiểu có máu là: 5
Số người nước tiểu có máu và bệnh sỏi thận là: 3
Số người nước tiểu có máu và không bệnh sỏi thận là: 2 Như vậy: Vnước tiểu (có máu) = (3/5,2/5) = (0.6, 0.4)
Xét thuộc tính Giảm cân
VGiảm cân (Không) = (2/4, 2/4)
VGiảm cân (ít) = (4/6, 2/6)
VGiảm cân (Nhanh) = (3/4, 1/4)
Xét thuộc tính đau lưng
Như vậy: thuộc tính Nước tiểu có số vector đơn vị nhiều nhất (1 vector đơn vị) nên sẽ
được chọn đầu tiên để phân hoạch
Bước 2
Ta phân hoạch theo nhánh Nước tiểu vàng
- Trong tập phân hoạch này ta thấy còn chứa những người Bệnh sỏi thận và không bệnh
sỏi thận, tiếp tục phân hoạch tập này Tính vector đặc trưng trên các tập còn lại: Giảm
cân, đau lưng, sốt
- Bảng quan sát
Tên Giảm cân Đau lưng S ốt Kết qả
Xét thuộc tính Giảm cân
VGiảm cân (Không) = (0/2, 2/2) = (0, 1) -> Vector đơn vị
Trang 10VGiảm cân (ít) = (1/2, 1/2)
VGiảm cân (Nhanh) = (1/1, 0/1) = (1,0) -> Vector đơn vị
Xét thuộc tính đau lưng
Vđau lưng (Có) = (2/2, 0/2) = (1,0) -> Vector đơn vị
Vđau lưng (Không) = (0/3, 3/3) = (0,1) -> Vector đơn vị
Xét thuộc tính Sốt
VSốt (có) = (1/3, 2/3)
VSốt (không) = (1/2, 1/2)
Vì hai thuộc tính Giảm cân và đau lưng đều có cùng 2 vector đơn vị, tuy nhiên số phân
hoạch của thuộc tính đau lưng là ít hơn nên ta chọn phân hoạch theo thuộc tính đau lưng.
Tập phân hoạch này không còn lẫn lộn người bệnh sỏi thận và không bệnh sỏi thận nên tadừng phân hoạch
Bước 3
Ta phân hoạch theo nhánh Nước tiểu có máu
- Trong tập phân hoạch này ta thấy còn chứa lẫn lộn những người Bệnh sỏi thận và khôngbệnh sỏi thận, tiếp tục phân hoạch tập này Tính vector đặc trưng trên các tập còn lại:
Giảm cân, đau lưng, sốt
- Bảng quan sát
Tên Giảm cân Đau lưng S ốt Kết quả
VGiảm cân (Nhanh) = (1/2, 1/2)
Xét thuộc tính đau lưng
Vđau lưng (Có) = (2/3, 1/3)
Vđau lưng (Không) = (1/2, 1/2)
Trang 11 Xét thuộc tính Sốt
VSốt (có) = (3/3, 0/3) = (1,0) -> Vector đơn vị
VSốt (không) = (0/2, 2/2) = (0,1) -> Vector đơn vị
Vì thuộc tính Sốt có nhiều vector đơn vị nhất ( 2 vector đơn vị), nên ta chọn phân hoạch theo thuộc tính Sốt Tập phân hoạch này không còn lẫn lộn người bệnh sỏi thận và không
bệnh sỏi thận nên ta dừng phân hoạch, kết thúc thuật toán
Ta có cây định danh cuối cùng:
(Hình số 5)
3 Nhận xét (độ đo hỗn loạn):
Thay vì phải xây dựng vector đặc trưng như phương pháp của Quinlan, ứng với mỗi thuộctính dẫn xuất ta chỉ cần tính ra độ đo hỗn loạn và lựa chọn thuộc tính nào có độ đo hỗnloạn là thấp nhất Người ta tính được công thức như sau:
Gọi TA là độ đo hỗn loạn của một thuộc tính A, ta có:
Không bệnh sỏi thận
-TA =
i
Trang 12o bj là số phần tử có thuộc tính dẫn xuất A có giá trị j
o bri là tổng số phần tử có thuộc tính dẫn xuất A có giá trị j và thuộc tính mục tiêu
có giá trị i.
Tính độ đo hỗn loạn trong bài toán chuẩn đoán bệnh trên:
Bước 1: Tính độ hỗn loạn trung bình lần 1
- Bảng quan sát: Bảng 1
Xét thuộc tính Nước tiểu
Tổng số phần tử có trong phân hoạch: 14
Số người nước tiểu vàng là: 5 (2 người bệnh sỏi thận, 3 người không bệnh sỏi thận)
Số người nước tiểu có vôi là : 4 (4 người bệnh sỏi thận, 0 người không bệnh sỏi thận)
Số người nước tiểu có máu: 5 (3 người bệnh sỏi thận, 2 người không bệnh sỏi thận)
5/14.(-3/5.log23/5 – 2/5.log22/5) =0.68
Xét thuộc tính Giảm cân
Tổng số phần tử có trong phân hoạch: 14
Số người không Giảm cân: 4 (2 người bệnh sỏi thận, 2 người không bệnh sỏi thận)
Số người Giảm cân ít là : 6 (4 người bệnh sỏi thận, 2 người không bệnh sỏi thận)
Số người Giảm cân nhanh: 4 (3 người bệnh sỏi thận, 1 người không bệnh sỏi thận)
4/14.(-3/4.log23/4 – 1/4.log21/4) =0.91
Xét thuộc tính đau lưng
Tổng số phần tử có trong phân hoạch: 14
Số người có đau lưng là: 7 (6 người bệnh sỏi thận, 1 người không bệnh sỏi thận)
Số người không đau lưng là : 7 (3 người bệnh sỏi thận, 4 người không bệnh sỏi thận)
=0.79
Xét thuộc tính Sốt
Tổng số phần tử có trong phân hoạch: 14
Số người có sốt là: 8 (6 người bệnh sỏi thận, 2 người không bệnh sỏi thận)
Số người không sốt là : 6 (3 người bệnh sỏi thận, 3 người không bệnh sỏi thận)
TSốt = 8/14.(-6/8.log26/8 – 2/8.log22/8) + 6/14.(-3/6.log23/6 – 3/6.log23/6) = 0.89
Chọn thuộc tính Nước tiểu làm thuộc tính phân hoạch vì thuộc tính này có độ trung
bình hỗn loạn nhỏ nhất.
Bước 2 : Tính độ hỗn loạn trung bình lần 2 cho nhánh Nước tiểu = vàng
- Bảng quan sát :
Trang 13Tên Nước tiểu Giảm cân Đau lưng S ốt Kết quả
Tương tự ta tính độ hỗn loạn trung bình của 3 thuộc tính : Giảm cân, Đau lưng, Sốt
(-1/1.log21/1 – 0/1.log20/1) =0.4
TSốt = 2/5.(-1/2.log21/2 – 1/2.log21/2) + 3/5.(-1/3.log21/3 – 2/3.log22/3) = 0.57
Chọn thuộc tính Đau lưng làm thuộc tính phân hoạch vì thuộc tính này có độ trung
bình hỗn loạn nhỏ nhất.
Bước 3 : Tính độ hỗn loạn trung bình lần 3 cho nhánh Nước tiểu = Có máu
- Bảng quan sát :
Tên Nước tiểu Giảm cân Đau lưng S ốt Kết quả
Tương tự ta tính độ hỗn loạn trung bình của 3 thuộc tính : Giảm cân, Đau lưng, Sốt
TSốt = 3/5.(-3/3.log23/3 – 0/3.log20/3) + 2/5.(-0/2.log20/2 – 2/2.log22/2) = 0
Chọn thuộc tính Sốt làm thuộc tính phân hoạch vì thuộc tính này có độ trung bình
Không bệnh sỏi thận
Trang 1410 Phát sinh tập luật:
Dựa vào cây định danh được xây dựng như trong hình số 5 , rút ra các luật như sau: Bằng
cách theo các nhánh của cây từ gốc đến lá
(Hình số 6)
Vấn đề còn lại là làm sao tối ưu hóa tập luật này nếu nó có tồn tại luật dư thừa
11 Tối ưu hóa tập luật:
a Loại bỏ giả thiết không cần thiết trong luật:
Sau khi các luật chuyển từ cây định danh, có thể bỏ đi các luật không cần thiết để đơngiản tập các luật được sinh ra, ta sẽ bỏ đi những giả thiết không làm thay đổi tác dụngcủa luật đối với mẫu
Ta lần lượt xét 5 tập luật ở trên:
• Xét luật 1:
IF (Nước tiểu Vàng) và (có đau lưng) THEN Bệnh sỏi thận
Giả thiết có 2 phần, nếu bỏ đi phần “Nước tiểu vàng”, còn lại “có đau lưng”, theocác mẫu thì vẫn còn lẫn lộn người có bệnh và không bệnh
Ta có bảng ngẫu nhiên (gọi là bảng ngẫu nhiên vì kết quả của bảng phụ thuộc vào
dữ liệu cho trong bảng quan sát) như sau:
vàng
Rõ ràng ta không thể loại bỏ thuộc tính “Nước tiểu vàng ” này trong luật này
Nếu bỏ đi thuộc tính có đau lưng ta có:
Có
Rõ ràng ta không thể loại bỏ thuộc tính “dùng kem” này trong luật này
1 (Nước tiểuVàng) và (có đau lưng) à Bệnh sỏi thận
2 (Nước tiểu Vàng) và (không đau lưng) à Không bệnh sỏi thận
3 (Nước tiểu có vôi) àBệnh sỏi thận
4 (Nước tiểu có máu) và (có sốt) à Bệnh sỏi thận
5 (Nước tiểu có máu) và (không sốt)à Không bệnh sỏi thận
Trang 15Hai bảng trên cho thấy không thể bỏ đi giả thiết nào trong luật này vì ta không thể bảo đảm kết luận vẫn đúng nếu bỏ đi một trong 2 giả thiết đã cho, có nghĩa là luật này không thể cho đơn giản hơn được nữa.
• Xét luật 2,3,4 và 5 ta cũng không thể loại bỏ giả thiết nào
•
Tóm lại: Tập luật này không có giả thiết thừa
b Loại bỏ luật thừa:
Xây dựng mệnh đề mặc định
Một vấn đề đặt ra là:
Khi gặp phải một trường hợp mà tất cả các luật đều không thỏa thì phải làm như thếnào? Một cách hành động là đặt ra một luật mặc định đại loại như:
Nếu không có luật nào thỏa → Bệnh sỏi thận (1) Hoặc
Nếu không có luật nào thỏa → không bệnh sỏi thận (2)
Một số quy tắc khi chọn luật mặc định:
(1) Chọn luật mặc định sao cho nó có thể thay thế cho nhiều luật nhất
(2) Chọn luật mặc định có kết luận phổ biến nhất
(3) Chọn luật mặc định sao cho tổng số mệnh đề của các luật mà nó thay thế là nhiều nhất
Sau khi loại bỏ giả thiết thừa trong phần (a), đôi khi cũng còn có luật thừa vì trùngsuy luận thông tin với các luật khác trong tập luật Ta dùng các suy luận sau đây đểloại bỏ luật thừa:
Với tập luật thu được ở hình số 6 ta thấy có 2 kết luận không bệnh sỏi thận (luật 2 & 5) và 3 kết luận bệnh sỏi thận (luật 1,3 & 4) Ta có thể dùng luật mặc
định để thay thế một hay nhiều luật có trong tập luật nếu luật mặc định đó
không làm mất đi tính đúng đắn ban đầu Do có hai kết luận nên có hai khả năng của luật mặc định:
IF không có giả thiết THEN Bệnh sỏi thận (a)
IF không có giả thiết THEN Không bệnh sỏi thận (b)
12 Kết luận:
Trang 16Sau khi dùng thuật toán Quinlan để xây dựng cây định danh, ta rút ra tập luật, đồng thời
tối ưu hóa tập luật bằng việc loại bỏ các giả thiết thừa, loại bỏ giả thiết không gây ảnhhưởng đến tập luật Sau đó loại bỏ luật thừa bằng thay thế vào luật mặc định
Sau đây ta sẽ nghiên cứu thêm một thuật toán gọi là thuật toán ILA cho việc trực tiếp xác
định tập luật từ mẫu dữ liệu có sẵn cho bài toán trên mà thông qua việc xác định cây địnhdanh
V THUẬT TOÁN ILA:
Thuật giải ILA (Inductive Learning Algorithm) được dùng để xác định các luật phân loại cho tập hợp các mẫu học Thuật giải này thực hiện theo cơ chế lặp, để tìm luật riêng đại diện cho tập mẫu của từng lớp Sau khi xác định được luật, ILA loại bỏ các mẫu liên quan khỏi tập mẫu, đồng thời thêm luật mới này vào tập luật Kết quả có được là một danh sách
có thứ tự các luật chứ không là một cây quyết định Các ưu điểm của thuật giải này có thể được trình bày như sau:
- Dạng các luật sẽ phù hợp cho việc khảo sát dữ liệu, mô tả mỗi lớp một cách đơn giản để dễphân biệt với các lớp khác
- Tập luật được sắp thứ tự, riêng biệt – cho phép quan tâm đến một luật tại thời điểm bất kỳ.Khác với việc xử lý luật theo phương pháp cây quyết định, vốn rất phức tạp trong trường hợp các nút cây trở nên khá lớn
1 Thuật toán:
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
Thực hiện lần lượt các bước từ 2 đến 8 cho mỗi bảng con có được
Bước 2: j = 1
Bước 3: Trên mỗi bảng con đang khảo sát, 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 bao gồm j thuộc tính
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
(mà đồng thời không xuất hiện tổ hợp giá trị này trên tất cả các bảng còn lại).
Gọi tổ hợp đầu tiên (trong bảng con) có số lần xuất hiện nhiều nhất là tổ hợp lớn
nhất.
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.
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ý.