Bàitoá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áthiệ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
Trang 1ĐẶT VẤN ĐỀ
0
Từ những hệ máy tính đầu tiên ra đời cho đến các hệ máy tính ngày naycũng như những hệ siêu máy tính, các nhà khoa học đã không ngừng nghiêncứu sáng tạo để máy tính có thể tự suy nghĩ như con người nhằm thay conngười giải quyết các công việc trong cuộc sống hàng ngày hay những tínhtoán dự báo cho tương lai
Khả năng tự phân tích, tính toán, tự suy nghĩ của máy tính – đó là trí tuệnhân tạo, là sản phẩm trí tuệ của con người sáng tạo ra, cụ thể là những hệphần mềm, hệ chương trình chuyên gia ngày càng hoàn thiện càng thôngminh hơn có khả năng giải quyết vấn đề thực tế như cách giải quyết của conngười
Trí tuệ nhân tạo bao gồm rất nhiều lĩnh vực, trong đó tiêu biểu là lĩnhvực Máy học - làm sao cho các hệ chương trình có thể tích lũy kiến thứcthông qua việc học từ các sai lầm, từ những quan sát ngẫu nhiên, hay từ cácyêu cầu đặt ra của con người Bánùi cách khác là làm cho các chương trình cókhả năng rút kinh nghiệm từ những quan sát thực tế
Bài thu hoạch nà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à việc học bằng phương pháp xây dựng cây định danh Bàitoá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áthiệ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
Ví dụ : Bảng dữ liệu dưới đây được rút trích ra từ cơ sở dữ liệu lưu trữ hồ
sơ bệnh án tại phòng khám ĐHYD TP HCM gồm các thuộc tính như sau:
Nhóm tuổi : dựa trên số tuổi bệnh nhân mà chia thành 4 nhóm tuổi
- Dưới 20 tuổi
- Từ 20 – 49 tuổi
- Từ 50 – 60 tuổi
- Trên 60 tuổi
Trang 2Loại BMI (Body Mass Index) : Chỉ số cơ thể được sử dụng để xác định tình
trạng cơ thể của một người nào đó có bị béo phì, thừa cân hay quá gầy haykhông Thông thường người ta dùng để tính toán mức độ béo phì
(m) caoChiều
*caoChiều
(Kg) lượngTrọng
Hoạt động thể thao : Có chơi thể thao; Không chơi thể thao.
Tiền sử bệnh nội khoa : Có / Không bệnh nội khoa trước khi khám sức khỏe Kết quả : sau khi khám là Bình thường hoặc là bị Tim mạch;
thì một người khi khám sức khỏe có nguy cơ bệnh tim mạch hay không?
Dữ liệu rút trích được trong bảng như sau:
Mã hồ sơ Nhóm tuổi Loại BMI Hoạt động thể thao Tiền sử bệnh nội khoa Kết quả
Trang 3BN12 Trên 60t Béo phì Không Không Tim mạch
Sau khi dữ liệu này được đưa vào chương trình máy vi tính thì chươngtrình sẽ trả lời các tính quy luật như sau:
Tại sao máy vi tính đưa ra được các quy luật này ? Ta hãy nghiên cứu kỹhơn trong phần lý thuyết cơ sở của phương pháp học bằng xây dựng cây địnhdanh
Trang 4LÝ THUYẾT PHƯƠNG PHÁP HỌC BẰNG XÂY DỰNG CÂY ĐỊNH DANH
I- ĐỊNH NGHĨA VỀ CÂY ĐỊNH DANH :
Cây định danh là cây mà khi ta thực hiện phép duyệt đi từ nút gốc đếncác nút lá thì ta sẽ có một quyết định hay một quy luật, những quy luật nàydựa vào các thuộc tính trên nút mà phép duyệt đi qua Như vậy mỗi đường đisẽ cho ra một quy luật, do vậäy người ta còn gọi cây định danh là cây quyếtđịnh
Với ví dụ ở trên thì cây định danh được xác định như sau :
{bn5, bn8, bn12, bn19, bn24, bn30} Loại BMI
Hoạt động thể thao
Dưới 20 tuổi
Trên 60t
{ bn3 , bn21, bn11, bn17 }
Béo phì
Gầy Bình thường
{ bn27, bn6 }
{ bn23 }
{ bn26}
Trang 5II- PHÂN TÍCH BÀI TOÁN :
Bài toán học bằng phương pháp xây dựng cây định danh được phân tíchvà khai thác qua các bước sau đây, dựa vào bảng dữ liệu ở phần đặt vấn đề.Người ta dựa vào ý tưởng tiếp cận hình học là phân chia không gian bài toántạ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êncây định danh đó Cây định danh được xây dựng bằng cách tìm các quy luậtcủa dữ liệu
Gọi P là tập hợp mẫu các đối tượng quan sát được :
từng giá trị của thuộc tính
Quan sát thuộc tính nhóm tuổi ta có:
Bệnh nhân được gạch dưới và in đậm là bị tim mạch, ta có sơ đồ sau:
Ta thấy Ptừ 50 – 60 tuổi giá trị kết quả còn lẫn lộn giữa bình thường và Tim
mạch, tiếp tục quan sát thuộc tính kế tiếp là Loại BMI với các tập hợp còn
lẫn lộn này ta có:
{bn5, bn8, bn12, bn19, bn24, bn30}
{bn26, bn3, bn6, bn11, bn17, bn17, bn21, bn23, bn27 }
Dưới 20 tuổi
Trên 60t
Trang 62- Thực hiện quá trình như số 1 cho đến khi tất cả các nút lá của câykhông còn lẫn lộn gía trị kết quả giữa trị số bình thường & tim mạch Quamỗi bước phân hoạch như vậy cây ngày càng phình ra đến khi ta xét hết cácthuộc tính thì cây cuối cùng là cây định danh có khả năng cho ta các kết luậncuối cùng
Nhận xét: Như vậy nếu ta chọn các thuộc tính ngẫu nhiên khác nhau
thì kết quả cuối cùng sẽ cho ra cây định danh cuối cùng khác nhau Với nhậnxét này ta thấy nếu ta chọn thuộc tính đầu tiên theo một cách nào đó thôngminh hơn dựa vào tần xuất xuất hiện của giá trị dữ liệu trên thuộc tính thì cóthể sẽ cho ta một cây định danh đơn giản 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:
III- THUẬT TOÁN QUINLAN :
Trang 7- 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), )
j làAlàxuất dẫntínhthuộc
trịgiácó hoạch phân
trongtử phầnsốTổng
rlàtiêumụctínhthuộctrị
giácóvà jlàAlà
xuấtdẫntínhthuộctrị
giácó hoạch phân
trongtử phầnsốTổng)
- Một vector V(Aj) được gọi là vector đơn vị nếu nó có duy nhất mộtthà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 Nhóm tuổi
- Xét giá trị : Dưới 20 tuổi
VNhóm tuổi (dưới 20 tuổi) = {T(dưới 20t, BT), T(dưới 20t, TM)}
- Tương tự xét giá trị : từ 20 – 49 tuổi
VNhóm tuổi (từ 20 – 49 tuổi) = {T(từ 20 – 49t, BT), T(từ 20 – 49t, TM)}
Trang 8- Tương tự xét giá trị : từ 50 – 60 tuổi
VNhóm tuổi (từ 50 – 60 tuổi) = {T(từ 50 – 60t, BT), T(từ 50 – 60t, TM)}
⇒ VNhóm tuổi (từ 50 – 60 tuổi) = (1/8 , 7/8)
- Tương tự xét giá trị : trên 60 tuổi
VNhóm tuổi (trên 60 tuổi) = {T(trên 60 tuổi, BT), T(trên 60 tuổi, TM)}
⇒ thuộc tính Nhóm tuổi có 3 véctor đơn vị
+ Xét thuộc tính Loại BMI
- Xét giá trị : Gầy
VLoại BMI (gầy) = {T(gầy, Bình thường), T(gầy, Tim mạch)}
- Tương tự xét giá trị : Bình thường
VLoại BMI(Bình thường) = {T(Bình thường, BT), T(Bình thường, TM)}
Trang 9- Tương tự xét giá trị : Béo phì
VLoại BMI(Béo phì) = {T(Béo phì , BT), T(Béo phì , TM)}
+ Xét thuộc tính Hoạt động thể thao
- Xét giá trị : Có
Vhoạt động thể thao (Có) = {T(Có, Bình thường), T(Có, Tim mạch)}
⇒ Vhoạt động thể thao (Có) = (7/15 , 8/15)
- Tương tự xét giá trị : Không
Vhoạt động thể thao (Không) = {T(Không, BT), T(Không, TM)}
⇒ Vhoạt động thể thao (Không) = (10/16 , 6/16)
+ Xét thuộc tính Tiền sử bệnh nội khoa
- Xét giá trị : Có
VTiền sử bệnh nội khoa (Có) = {T(Có, Bình thường), T(Có, Tim mạch)}
⇒ VTiền sử bệnh nội khoa (Có) = (6/14 , 8/14)
Trang 10- Tương tự xét giá trị : Không
VTiền sử bệnh nội khoa (Không) = {T(Không, BT), T(Không, TM)}
⇒ VTiền sử bệnh nội khoa (Không) = (11/17 , 6/17)
Như vậy : thuộc tính nhóm tuổi có số vector đơn vị nhiều nhất (3 vector đơn
vị) nên sẽ được chọn đầu tiên để phân hoạch Sau khi phân hoạch theo nhómtuổi ta có các tập phân hoạch:
Nhóm dưới 20 tuổi
Mã hồ
sơ Nhóm tuổi Loại BMI
Hoạt động thể thao
Tiền sử bệnh nội khoa Kết quả
Nhóm từ 20 - 49 tuổ
Mã hồ
sơ Nhóm tuổi Loại BMI
Hoạt động thể thao
Tiền sử bệnh nội khoa Kết quả
Trang 11Nhóm từ 50 - 60 tuổi
Mã hồ
sơ Nhóm tuổi Loại BMI
Hoạt động thể thao
Tiền sử bệnh nội khoa
Kết quả
Nhóm trên 60 tuổi
Mã hồ sơ Nhóm tuổi Loại BMI Hoạt động thể thao
Tiền sử bệnh nội khoa
Kết quả
Tiền sử bệnh nội khoa
Kết quả
Trang 12+ Xét thuộc tính Loại BMI
- Xét giá trị : Gầy
VTừ 50 – 60 t uổi, Loại BMI (gầy) = {T(gầy, BT), T(gầy, TM)}
⇒ VTừ 50 – 60 t uổi, Loại BMI (gầy) = (1/2 , 1/2) = (0.5 , 0.5)
- Tương tự xét giá trị : Bình thường
VTừ 50 – 60 t uổi, Loại BMI (Bình thường) = {T(BT, BT), T(BT, TM)}
⇒ VTừ 50 – 60 t uổi, Loại BMI (Bình thường) = (0/4 , 4/4) = (0 , 1) Vđv
- Tương tự xét giá trị : Béo phì
VTừ 50 – 60 t uổi, Loại BMI(Béo phì) = {T(Béo phì , BT), T(Béo phì , TM)}
⇒ VTừ 50 – 60 t uổi, Loại BMI(Béo phì) = (0/2, 2/2) = (0 , 1) vector đơn vị
+ Xét thuộc tính Hoạt động thể thao
- Xét giá trị : Có
VTừ 50 – 60 t uổi, Hoạt động thể thao (Có) = {T(Có, BT), T(Có, TM)}
Từ 50 – 60 tuổi, Có hoạt động thể thao, kết quả Bình thường : 1
Từ 50 – 60 tuổi , Có hoạt động thể thao, kết quả Tim mạch : 4
⇒ VTừ 50 – 60 t uổi, Hoạt động thể thao (Có) = (1/5 , 4/5)
- Tương tự xét giá trị : Không
VTừ 50 – 60 t uổi, Hoạt động thể thao (Không) = {T(Không, BT), T(Không, TM)}
Từ 50 – 60 tuổi , Không hoạt động thể thao, kết quả Bình thường : 0
Trang 13Từ 50 – 60 tuổi , Không hoạt động thể thao, kết quả Tim mạch : 3
⇒ VTừ 50 – 60 t uổi, Hoạt động thể thao (Không) = (0/3 , 3/3) vector đơn vị
+ Xét thuộc tính Tiền sử bệnh nội khoa
- Xét giá trị : Có
VTừ 50 – 60 t uổi,Tiền sử bệnh nội khoa (Có) = {T(Có, BT), T(Có, TM)}
Từ 50 – 60 tuổi , Có Tiền sử bệnh nội khoa, kết quả Bình thường : 1
⇒ VTiền sử bệnh nội khoa (Có) = (1/5 , 4/5)
- Tương tự xét giá trị : Không
VTừ 50–60 t uổi,Tiền sử bệnh nội khoa (Không) = {T(Không, BT), T(Không, TM)}
Từ 50 – 60 tuổi , Không Tiền sử bệnh nội khoa, kết quả BT : 0Từ 50 – 60 tuổi , Không Tiền sử bệnh nội khoa, kết quả TM : 3
⇒ VTiền sử bệnh nội khoa (Không) = ( 0/3 , 3/3) = ( 0 , 1 ) vector đơn vị
Như vậy : thuộc tính nhóm Loại BMI có số vector đơn vị nhiều nhất (2 vector
đơn vị) nên sẽ được chọn để phân hoạch kế tiếp Sau khi phân hoạch theonhóm tuổi ta có tập phân hoạch :
Nhóm từ 50 - 60 tuổi – Béo phì
Mã hồ sơ Nhóm tuổi Loại BMI Hoạt động thể thao Tiền sử bệnh nội khoa Kết quả
Nhóm từ 50 - 60 tuổi – Bình thường
Mã hồ sơ Nhóm tuổi Loại BMI Hoạt động thể thao
Tiền sử bệnh nội khoa
Kết quả
BN17 Từ 50 - 60t Bình thường Không Không Tim mạch
Trang 14Nhóm từ 50 - 60 tuổi – Gầy
Mã hồ sơ Nhóm tuổi Loại BMI Hoạt động thể thao Tiền sử bệnh nội khoa Kết quả
Bước 3 :
Trong tập phân hoạch này ta thấy tập nhóm từ 50 - 60 tuổi – Gầy , kết quả còn chứa giá trị bình thường và tim mạch, nên tiếp tục phân hoạch tập này
Nhóm từ 50 - 60 tuổi – Gầy
Mã hồ sơ Nhóm tuổi Loại BMI Hoạt động thể thao Tiền sử bệnh nội khoa Kết quả
+ Xét thuộc tính Hoạt động thể thao
- Xét giá trị : Có
VTừ 50 – 60 t uổi, Gầy, Hoạt động thể thao (Có) = {T(có, BT), T(có, TM)}
Từ 50 – 60 tuổi, Gầy , có hoạt động thể thao, kết quả BT : 1
Từ 50 – 60 tuổi, Gầy , có hoạt động thể thao, kết quả TM : 0
⇒ VTừ 50 – 60 t uổi, Gầy, Hoạt động thể thao (Có) = (1/1 , 0/1) = (1 , 0) Vđv
- Tương tự xét giá trị : Không
VTừ 50– 60tuổi, Gầy, Hoạt động thể thao(Không) = T(Không, BT), T(Không, TM)}
Từ 50 – 60 tuổi, Gầy, Không hoạt động thể thao, kết quả BT : 0 Từ 50 – 60 tuổi, Gầy, Không hoạt động thể thao, kết quả TM : 1
⇒ VTừ 50 – 60 t uổi, Gầy, Hoạt động thể thao (Không) = (0/1 , 1/1) = (1 , 0) Vđv
+ Xét thuộc tính Tiền sử bệnh nội khoa
- Xét giá trị : Có
VTừ 50 – 60 t uổi, Gầy, Tiền sử bệnh nội khoa (Có) = {T(có, BT), T(có, TM)}
Trang 15Từ 50 – 60 tuổi, Gầy , Có tiền sử bệnh nội khoa : 2
⇒ VTừ 50 – 60 t uổi, Gầy, Tiền sử bệnh nội khoa (Có) = (1/2 , 1/2) = (0.5 , 0.5)
Như vậy : thuộc tính nhóm Hoạt động thể thao có 1 vector đơn vị nên sẽ được
chọn để phân hoạch kế tiếp Sau khi phân hoạch theo nhóm tuổi ta có tập phân hoạch:
Nhóm từ 50 - 60 tuổi – Gầy – có hoạt động thể thao
Mã hồ sơ Nhóm tuổi Loại BMI Hoạt động thể thao Tiền sử bệnh nội khoa Kết quả
Nhóm từ 50 - 60 tuổi – Gầy – Không hoạt động thể thao
Mã hồ sơ Nhóm tuổi Loại BMI Hoạt động thể thao Tiền sử bệnh nội khoa Kết quả
Những tập phân hoạch đạt được trong bước này giá trị kết quả khôngcòn lẫn lộn giữa bình thường và tim mạch nên thuật toán kết thúc Ta có câyđịnh danh cuối cùng:
{bn5, bn8, bn12, bn19, bn24, bn30} Loại BMI
Hoạt động thể thao
Dưới 20 tuổi
Từ 20 – 49 tuổi Từ 50 – 60 tuổi
Trên 60t
{ bn3 , bn21, bn11, bn17 }
Trang 163) Nhận xét (độ đo hỗn loạn) :
Thay vì phải xây dựng vector đặc trưng theo như phương pháp Quinlan,ứng với mỗi thuộc tính dẫn xuất ta chỉ cần tính ra độ đo hỗn loạn và lựa chọnthuộc tính nào có độ đo hỗn loạn là thấp nhất Người ta tính được công thứcnhư sau :
Gọi TA là độ đo hỗn loạn của một thuộc tính A, ta có:
Trong đó:
tính mục tiêu có giá trị i
* Tính độ đo hỗn loạn của thuộc tính Nhóm tuổi trong bài toán trên:
Tập Nhóm tuổi từ 20 - 49 tuổi : 9 Bình thường
Tập Nhóm tuổi từ 50 - 60 tuổi : 1 Bình thường ; 7 tim mạch
Tnhóm tuổi = 7/31(-7/7log27/7 – 0/7log20/7) + 9/31(-9/9log29/9 – 0/9log20/9) +
8/31(-1/8log21/8 – 7/8log27/8 ) + 7/31(-7/7log27/7 – 0/7log20/7)
Tnhóm tuổi = 0.14
- Tương tự ta tính độ đo hỗn loạn của thuốc tính Loại BMI
TA =
Trang 17- Tương tự ta tính độ đo hỗn loạn của thuộc tính Hoạt động thể thao
Tập Không hoạt động thể thao : 10 Bình thường ; 6 tim mạch
Thoạt động thể thao = 15/31(7/15log27/15 8/15log28/15) + 16/31(10/16log210/16
-6/16log26/16)
Thoạt động thể thao = 0.975
- Tương tự ta tính độ đo hỗn loạn của thuộc tính Tiền sử bệnh nội khoa
TTiền sử bệnh nội khoa =14/31(6/14log26/1 8/14log28/14) + 17/31(11/17log211/17
-6/17log26/17)
TTiền sử bệnh nội khoa = 0.959
Ta chọn được thuộc tính Nhóm tuổi (Tnhóm tuổi = 0.14) để phân hạch đầu tiên Tiếp tục tính độ đo hỗn loạn trên các thuộc tính còn lại trên tập “Nhóm từ 50 – 60 tuổi”
Nhóm từ 50 - 60 tuổi
Mã hồ
sơ Nhóm tuổi Loại BMI
Hoạt động thể thao
Tiền sử bệnh nội khoa
Kết quả
- Tính độ đo hỗn loạn của thuốc tính Loại BMI
Trang 18TBMI = 1/2log21/2 – -1/2log21/2) + 4/8(-0/4log20/4 – 4/4log24/4) +
2/8(-0/2log20/2 - 2/2log22/2)
- Tương tự ta tính độ đo hỗn loạn của thuộc tính Hoạt động thể thao
Tập Không hoạt động thể thao : 3 tim mạch
Thoạt động thể thao = 5/8(-1/5log21/5 - 4/5log24/5) + 3/31(-0/3log20/3 - 3/3log23/3)
Thoạt động thể thao = 0.451
- Tương tự ta tính độ đo hỗn loạn của thuộc tính Tiền sử bệnh nội khoa
TTiền sử bệnh nội khoa = 5/8(-1/5log21/5 - 5/5log24/5) + 3/8(-0/3log20/3 - 3/3log23/3)
TTiền sử bệnh nội khoa = 0.491
Ta chọn được thuộc tính Loại BMI (TBMI = 0 ) để phân hoạch kế tiếp
Tiếp tục tính độ đo hỗn loạn trên các thuộc tính còn lại trên tập “Nhóm từ 50 – 60 tuổi” có Loại BMI = “Gầy”
Nhóm từ 50 - 60 tuổi – Gầy
Mã hồ sơ Nhóm tuổi Loại BMI Hoạt động thể thao Tiền sử bệnh nội khoa Kết quả
- Tính độ đo hỗn loạn của thuộc tính Hoạt động thể thao
Tập Không hoạt động thể thao : 1 tim mạch
Thoạt động thể thao = 1/2(-1/1log21/1 - 0/1log20/1) + 1/2(-0/1log20/1 - 1/1log21/1)
Thoạt động thể thao = 0
Trang 19- Tương tự ta tính độ đo hỗn loạn của thuộc tính Tiền sử bệnh nội khoa
TTiền sử bệnh nội khoa = 2/2(-1/2log21/2 - 1/2log21/2)
TTiền sử bệnh nội khoa = 1
Ta chọn được thuộc tính Hoạt động thể thao (Thoạt động thể thao = 0 ) để phân hoạch kế tiếp Cuối cùng ta được cây định danh
IV- THUẬT TOÁN ILA
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, 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ý Bước 7: Thêm 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 (kết hợp các thuộc tính bằng toán tử AND) và vếphải là giá trị thuộc tính quyết định tương ứng
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 (nếu còn dòng chưa bị loạibỏ) thì quay lại bước 4 Nếu tất cả các dòng con đã được xét đến thìkết thúc Tập R chính là tập luật cần tìm