Tải bản đầy đủ (.docx) (42 trang)

Tìm hiểu cây quyết định trong xây dựng tri thức và ứng dụng

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 (531.98 KB, 42 trang )

MỤC LỤC
1
Trong đợt thực tập vừa qua, em đã nhận được sự huớng dẫn, giúp đỡ và động
viên tận tình từ nhiều phía. Tất cả những điều đó đã trở thành một động lực rất lớn
giúp em có thể hoàn thành tốt đề tài báo cáo của mình. Với tất cả tấm lòng và trân
trọng, em xin được gửi lời cảm ơn đến tất cả mọi người.
Em xin chân thành cảm ơn Khoa Công nghệ Thông tin, trường Đại học Công
Nghệ Thông Tin và Truyền Thông Thái Nguyên đã tạo điều kiện thuận lợi cho em
học tập và thực hiện đề tài thực tập chuyên ngành này.
Em xin bày tỏ lời cảm ơn tới thầy Nguyễn Quang Hiệp giảng viên trường Đại
học Công Nghệ Thông Tin và Truyền Thông Thái Nguyên đã tận tình hướng dẫn
chỉ bảo em trong quá trình tìm hiểu đề tài.
Em xin chân thành cảm ơn các thầy, các cô trong khoa Công nghệ Thông tin đã
tận tình giảng dạy cho em những kiến thức quý báu trong năm vừa qua.
Em xin cảm ơn sự quan tâm giúp đỡ và ủng hộ của gia đình và bạn bè trong quá
trình em thực tập tìm hiểu đề tài.
Mặc dù đã cố gắng hoàn thành đề tài thực tập của mình trong phạm vi và khả
năng của mình nhưng chắc chắn sẽ ko tránh khỏi những thiếu sót. Em rất mong
nhận được sự thông cảm, góp ý và tận tình chỉ bảo của thầy, cô và các bạn.
Em xin chân thành cảm ơn!
Hòa Bình, ngày 05 tháng 01 năm 2013
Sinh viên

Đinh Thị Hoa
2
Tên sinh viên: Đinh Thị Hoa
Lớp: HCĐH – K10B
GVHD: Nguyễn Quang Hiệp
Tên đề tài: “Tìm hiểu cây quyết định trong xây dựng tri thức và ứng dụng”
Chương 1: TỔNG QUAN CHUNG VỀ ĐỀ TÀI
1.1 Đặt vấn đề


Ngành CNTT trên thế giới ngày càng phát triển với một tốc độ chóng mặt.
Tại những quốc gia phát triển nhất, ngành CNTT đã có những đóng góp to lớn
trong tất cả các lĩnh vực kinh tế, chính trị và xã hội. Các nhà phát triển trong ngành
CNTT luôn hy vọng sẽ tạo ra được các chương trình máy tính có khả năng xử lý
như con người. Chương trình giải quyết vấn đề tương tự như cách xử lý của kỹ
năng thông minh mà con người sử dụng. Vậy những kỹ năng thông minh nào là cơ
bản nhất đồng thời khó tự động hóa nhất của con người ngoài các hoạt động sáng
tạo nghệ thuật, các hành động ra quyết định mang tính đạo đức, trách nhiệm xã hội
thì người ta thường đề cập đến vấn đề ngôn ngữ và học. Trải qua nhiều năm, hai
lĩnh vực này vẫn là mục tiêu, thách thức của khoa học trí tuệ nhân tạo.
Tầm quan trọng của việc học thì không cần phải tranh cãi, vì khả năng học
chính là một trong những thành tố quan trọng của hành vi thông minh. Các hệ
chuyên gia tuy đã được phát triển nhiều năm, song số lượng các hệ chuyên gia vẫn
còn hạn chế. Một trong những nguyên nhân chủ yếu là do quá trình tích lũy tri thức
phức tạp, chi phí phát triển các hệ chuyên gia rất cao, nhưng chúng không có khả
năng học, khả năng tự thích nghi khi môi trường thay đổi. Các chiến lược giải
quyết vấn đề của chúng cứng nhắc, khi có nhu cầu thay đổi thì việc sửa đổi một
lượng lớn mã chương trình là rất khó khăn. Một giải pháp hiển nhiên là các chương
trình phải tự học lấy cách giải quyết vấn đề từ kinh nghiệm, từ sự giống nhau, từ
3
các ví dụ hay từ những “chỉ dẫn”, “lời khuyên”,… Vì thế, từ khi phát minh ra máy
tính, con người đã luôn mong muốn có thể xây dựng được những chương trình làm
cho máy có khả năng tự học như người.
Tuy rằng đến nay mong muốn đó vẫn chưa thực hiện một cách triệt để song
ở một góc độ nào đó nó cũng đạt được một số thành công nhất định.
Các thành tựu đáng kể mà Trí tuệ nhân tạo đã đạt được như:
- Nhận dạng tiếng nói.
- Xử lý ngôn ngữ tự nhiên.
- Dự đoán, chẩn trị trong y học.
- Nhận dạng AND (tin sinh học).

- Phân loại cấu trúc thiên văn mới.
- Chơi cờ và một số trò chơi khác….
Đặc biệt là các ứng dụng để khám phá tri thức (data mining) trong các
CSDL lớn để trợ giúp việc ra quyết định.
Trong đợt thực tập chuyên ngành, em chọn đề tài “ Tìm hiểu cây quyết định
trong xây dựng tri thức và ứng dụng ”, đi sâu vào một phương pháp học phổ biến
là học cây quyết định – 1 phương pháp được sử dụng phổ biến hiện nay thực hiện
việc suy luận theo phương pháp quy nạp.
1.2 Mục đích và yêu cầu của đề tài
1.1.1 Mục đích:
Tìm hiểu lý thuyết về lĩnh vực trí tuệ nhân tạo, đi sâu vào phương pháp học
cây quyết định.
4
1.1.2 yêu cầu:
- Có được kiến thức tổng quan về lĩnh vực trí tuệ nhân tạo hiểu rõ phương
pháp học cây quyết định.
- Cài đặt thành công một chương trình mô phỏng phương pháp học cây
quyết định xây dựng tri thức.
1.3 Nội dung đồ án
- Chương 1: Giới thiệu chung về đề tài
- Chương 2: Cơ sở lý thuyết
- Chương 3: Xây dựng ứng dụng
- Chương 4: Kết luận
1.4 Phương pháp nghiên cứu
- Phương pháp thu thập, tham khảo tài liệu.
- Nghiên cứu tổng hợp lý thuyết.
- Phân tích, thiết kế hệ thống.
- Cài đặt, thử nghiệm.
- Đánh giá kết quả
1.5 Các kết quả

Các kết quả đạt được trong quá trình xây dựng và phát triển đề tài
- Nắm được kiến thức tổng quan về lĩnh vực trí tuệ nhân tạo, hiểu rõ phương
pháp học cây quyết định.
- Cài đặt thành công một chương trình mô phỏng phương pháp học cây
quyết định xây dựng tri thức
Chương 2: CƠ SỞ LÝ THUYÊT
2.1 Các kết quả nghiên cứu
5
Ở nước ta lý thuyết Trí tuệ nhân tạo và cây quyết định không còn là một khái
niệm mới nhưng những ứng dụng thực tế của nó còn hạn chế, đặc biệt là cây quyết
định. Sau đây là một số ứng dụng Trí tuệ nhân tạo và cây quyết định.
1. Nghiên cứu, xây dựng hệ hỗ trợ ra quyết định dựa trên mạng nơ-ron và logic
mờ: Đề tài được thực hiện bởi PGS.TS Lê Hoài Bắc và các đồng nghiệp tại
khoa CNTT - ĐH Khoa học tự nhiên – ĐH quốc gia Tp.HCM. Mục đích
của đề tài này là: nghiên cứu và thử nghiệm các phương pháp phân tích,
nhận dạng hình ảnh, âm thanh dựa trên mạng nơ-ron và logic mờ, tích hợp
trong hệ hỗ trợ ra quyết định. Xây dựng một số hệ thống hỗ trợ quyết định
phục vụ cho các lĩnh vực khoa học, giáo dục, kinh tế, môi trường, quốc
phòng,
2. Ứng dụng bioinformatics trong hóa học: Đây là đề tài nghiên cứu khoa học
được thực hiện bởi PGS.TS Bùi Thọ Thanh, TS. Lê Khắc Tích, Đinh Tấn
Phúc và Phùng Quán tại Trường ĐH Khoa học tự nhiên - Đại học quốc gia
Tp.HCM. Mục đích của đề tài là: nghiên cứu - hoàn thiện phương pháp luận
về việc ứng dụng bioinformatics trong hoá học sau đó áp dụng để khảo sát
các vấn đề hoá học. Sử dụng các tính toán về mạng nơ ron, logic mờ và thuật
giải di truyền.
3. Phát hiện mặt người bằng AdaBoost: Đây là luận văn cao học của Trần Phúc
Trị lớp cao học 1 trường ĐH Khoa học tự nhiên - ĐH quốc gia Tp.HCM.
Mục tiêu của đề tài là xây dựng mô hình phát hiện mặt người hiệu quả bằng
sự kết hợp của hai phương pháp AdaBoost (là một phương pháp dò tìm) và

mạng nơron.
Trong học cây quyết định, đã có nhiều phần mềm được tạo ra tương ứng với
các giải thuật. Như C4.5 có chương trình C4.5_R8 chạy trên nền Unix. Giải thuật
6
C5.0 có chương trình C5.0 hoạt động trên Unix và bản sao của nó là See5 hoạt
động trên Windows. See5 được thiết kế và hoạt động trên cơ sở dữ liệu lớn nhưng
tạo ra cây quyết đinh nhanh và nhỏ hơn so với cây được tạo ra từ chương trình
C4.5_R8. See5 đã xây dựng được một giao diện đồ họa thân thiện làm cho việc sử
dụng chương trình dễ dàng hơn.
2.2Trí tuệ nhận tạo
Trí tuệ nhân tạo (hay AI: Artifical Intelligence), là nỗ lực tìm hiểu những yếu
tố trí tuệ. Lý do khác để nghiên cứu lĩnh vực này là cách để ta tự tìm hiểu bản thân
chúng ta. Không giống triết học và tâm lý học, hai khoa học liên quan đến trí tuệ,
còn AI cố gắng thiết lập các yếu tố trí tuệ cũng như tìm biết về chúng. Lý do khác
để nghiên cứu AI là để tạo ra các thực thể thông minh giúp ích cho chúng ta. AI có
nhiều sản phẩm quan trọng và đáng lưu ý, thậm chí ngay từ lúc sản phẩm hình
thành. Mặc dù không dự báo được tương lai, nhưng rõ rang máy tính điện tử với độ
thông minh nhất định đã có ảnh hưởng lớn tới cuộc sống ngày nay và tương lai
phát triển của văn minh nhân loại.
Chế tạo được những cỗ máy thông minh như con người (thậm chí thông
minh hơn con người) là một ước mơ cháy bỏng của loài người từ hàng ngàn năm
nay. Hẳn bạn đọc còn nhớ đến nhà khoa học Alan Turing cùng những đóng góp to
lớn của ông trong lĩnh vực trí tuệ nhân tạo. Năng lực máy tính ngày càng mạnh mẽ
là một điều kiện hết sức thuận lợi cho trí tuệ nhân tạo. Điều này cho phép những
chương trình máy tính áp dụng các thuật giải trí tuệ nhân tạo có khả năng phản ứng
nhanh và hiệu quả hơn trước. Sự kiện máy tính Deep Blue đánh bại kiện tướng cờ
vua thế giới Casparov là một minh chứng hùng hồn cho một bước tiến dài trong
công cuộc nghiên cứu về trí tuệ nhân tạo. Tuy có thể đánh bại được Casparov
nhưng Deep Blue là một cỗ máy chỉ biết đánh cờ ! Nó thậm chí không có được trí
thông minh sơ đẳng của một đứa bé biết lên ba như nhận diện được những người

7
thân, khả năng quan sát nhận biết thế giới, tình cảm thương, ghét, Ngành trí tuệ
nhân tạo đã có những bước tiến đáng kể, nhưng một trí tuệ nhân tạo thực sự vẫn
chỉ có trong những bộ phim khoa học giả tưởng của Hollywood. Vậy thì tại sao
chúng ta vẫn nghiên cứu về trí tuệ nhân tạo? Điều này cũng tương tự như ước mơ
chế tạo vàng của các nhà giả kim thuật thời Trung Cổ, tuy chưa thành công nhưng
chính quá trình nghiên cứu đã làm sáng tỏ nhiều vấn đề.
Mặc dù mục tiêu tối thượng của ngành Trí tuệ nhân tạo là xây dựng một
chiếc máy có năng lực tư duy tương tự như con người nhưng khả năng hiện tại của
tất cả các sản phẩm Trí tuệ nhân tạo vẫn còn rất khiêm tốn so với mục tiêu đã đề
ra. Tuy vậy, ngành khoa học mới mẻ này vẫn đang tiến bộ mỗi ngày và đang tỏ ra
ngày càng hữu dụng trong một số công việc đòi hỏi trí thông minh của con người.
Hình ảnh sau sẽ giúp bạn hình dung được tình hình của ngành trí tuệ nhân tạo.
Vậy Trí tuệ nhân tạo là gì ?. Chúng ta có thể nói: “Tuyệt thật, đây là một
chương trình được thực hiện bằng những suy diễn thông minh, vì thế cần phải tiếp
tục và mọi người bổ sung cho nó”. Nhưng theo sự phát triển của khoa học cho
thấy: Sẽ có ích nêu ta đi đúng hướng. Định nghĩa về AI có tới 8 cuốn sách đề cập.
Những định nghĩa đó đưa ra trên hai nhận định chính:
- Thứ nhất: Quan tâm chủ yếu đến quá trình tư duy và lập luận.
8
- Thứ hai: Vấn đề ít được quan tâm hơn, đó là hoạt động.
Một hệ thống được coi là hợp lý nếu như nó thực hiện đúng. Điều này sẽ đưa
ngành AI đến 4 mục tiêu:
Hệ thống tư duy như con người Hệ thống tư duy có lập luận
Hệ thống hoạt đông như con
người
Hệ thống hoạt động có lập luận
Mục tiêu của ngành khoa học trí tuệ nhân tạo:
Tạo ra những chiếc máy tính có khả năng nhận thức, suy luận và phản ứng.
Nhận thức được hiểu là khả năng quan sát, học hỏi, hiểu biết cũng như

những kinh nghiệm về thế giới xung quanh. Quá trình nhận thức giúp con người có
tri thức. Suy luận là khả năng vận dụng những tri thức sẵn có để phản ứng với
những tình huống hay những vấn đề - bài toán gặp phải trong cuộc sống. Nhận
thức và suy luận để từ đó đưa ra những phản ứng thích hợp là ba hành vi có thể nói
là đặc trưng cho trí tuệ của con người. (Dĩ nhiên còn một yếu tố nữa là tình cảm.
Nhưng chúng ta sẽ không đề cập đến ở đây!). Do đó, cũng không có gì ngạc nhiên
khi muốn tạo ra một chiếc máy tính thông minh, ta cần phải trang bị cho nó những
khả năng này. Cả ba khả năng này đều cần đến một yếu tố cơ bản là tri thức.
2.3 Lý thuyết học cây quyết định trong trí tuệ nhân tạo
Học cây quyết định là một trong những phương pháp được sử dụng phổ
biến hiện nay để suy luận theo phương pháp quy nạp. Học cây quyết định là một
phương pháp xấp xỉ các hàm đích có giá trị rời rạc trong đó các hàm cần học được
mô tả bởi một cây quyết định. Những cây học được này cũng có thể được mô tả lại
thành tập luật if-then để con người có thể đọc được dễ dàng hơn. Những phương
pháp học này thuộc vào những phương pháp phổ biến trong các thuật toán suy diễn
quy nạp và đã được ứng dụng thành công trong nhiều lĩnh vực công nghệ từ học
9
cách chẩn đoán các bệnh trong y học tới việc học cách đánh giá độ rủi ro về tài
chính khi ngân hàng cho vay tiền
2.3.1 Cây quyết định
Trong lý thuyết quyết định (chẳng hạn quản lí rủi ro), một cây quyết định
(decision tree) là một đồ thị của các quyết định và các hậu quả có thể của nó (bao
gồm rủi ro và hao phí tài nguyên). Cây quyết định được sử dụng để xây dựng một
kế hoạch nhằm đạt được mục tiêu mong muốn. Các cây quyết định được dùng để
hỗ trợ quá trình ra quyết định. Cây quyết định là một dạng đặc biệt của cấu trúc
cây.
Trong lĩnh vực, Trí tuệ nhân tạo, cây quyết định là một kiểu mô hình dự báo
(predictive model), nghĩa là một ánh xạ từ các quan sát về một sự vật/hiện tượng
tới các kết luận về giá trị mục tiêu của sự vật/hiện tượng. Mỗi một nút trong
(internal node) tương ứng với một biến; đường nối giữa nó với nút con của nó thể

hiện một giá trị cụ thể cho biến đó. Mỗi nút lá đại diện cho giá trị dự đoán của biến
mục tiêu, cho trước các giá trị của các biến được biểu diễn bởi đường đi từ nút gốc
tới nút lá đó. Kỹ thuật học máy dùng trong cây quyết định được gọi là học bằng
cây quyết định, hay chỉ gọi với cái tên ngắn gọn là cây quyết định.
Cây quyết định mô tả một cấu trúc cây, trong đó các lá đại diện cho các phân
loại còn cành đại diện cho các kết hợp của các thuộc tính dẫn tới phân loại đó. Một
cây quyết định có thể được học bằng cách chia tập hợp nguồn thành các tập con
dựa theo một đại lượng kiểm tra giá trị thuộc tính. Quá trình này được lặp lại một
cách đệ qui cho mỗi tập con dẫn xuất. Quá trình đệ qui hoàn thành khi không thể
tiếp tục thực hiện việc chia tách được nữa, hay khi một phân loại đơn có thể áp
dụng cho từng phần tử của tập con dẫn xuất. Một bộ phân loại rừng ngẫu nhiên
(random forest) sử dụng một số cây quyết định để có thể cải thiện tỉ lệ phân loại.
10
Cây quyết định cũng là một phương tiện có tính mô tả dành cho việc tính
toán các xác suất có điều kiện.
Cây quyết định có thể được mô tả như là sự kết hợp của các kỹ thuật toán
học và tính toán nhằm hỗ trợ việc mô tả, phân loại và tổng quát hóa một tập dữ liệu
cho trước.
Dữ liệu được cho dưới dạng các bản ghi có dạng:
Biến phụ thuộc (dependant variable) y là biến mà chúng ta cần tìm hiểu,
phân loại hay tổng quát hóa. x
1
, x
2
, x
3
… là các biến sẽ giúp ta thực hiện công việc
đó.
2.3.2Biểu diễn cây quyết định
- Mỗi nút trên cây kiểm tra một thuộc tính.

- Mỗi nhánh tương ứng với giá trị thuộc tính.
- Mỗi nút lá được gán một phân lớp.
- Định luật Occam’s razor: những cây đơn giản là những cây quyết
định tốt hơn.
Hình 2.1 minh họa 1 ví dụ về cây quyết định
11
Hình 2.1. Biểu diễn cây quyết định
2.3.3Các kiểu cây quyết định
Cây quyết định còn có hai tên khác:
* Cây hồi quy (Regression tree): ước lượng các hàm giá có giá trị là số
thực thay vì được sử dụng cho các nhiệm vụ phân loại (ví dụ: ước tính giá
một ngôi nhà hoặc khoảng thời gian một bệnh nhân nằm viện).
* Cây phân loại (Classification tree): nếu y là một biến phân loại như:
giới tính (nam hay nữ), kết quả của một trận đấu (thắng hay thua).
2.3.4Giải thuật học cây quyết định
Giải thuật học cây quyết định được sử dụng thành công trong hệ chuyên gia,
trong việc nắm bắt kiến thức. Công việc chính sử dụng trong các hệ thống này là
việc sử dụng phương pháp quy nạp cho những giá trị cho trước của những thuộc
tính của một đối tượng chưa biết để xác định sự phân loại xấp xỉ theo những luật
12
của cây quyết định. Cây quyết định sẽ phân loại các trường hợp bằng cách duyệt từ
nút gốc đến những nút lá. Chúng ta sẽ bắt đầu từ nút gốc của cây quyết định, kiểm
tra thuộc tính trong tập hợp cho trước. Quá trình này lặp lại tại những cây con.
2.3.5Những bài toán thích hợp với học cây quyết định
Nhiều phương pháp học cây quyết định được phát triển với một số yêu cầu
và khả năng khác nhau. Vì thế ta có thể thấy học bằng cây quyết định thường thích
hợp nhất với các bài toán có các đặc trưng sau:
• Các mẫu được biểu diễn bởi cặp giá trị−thuộc tính. Trong đó các ví dụ
được mô tả bởi một tập cố định các thuộc tính (ví dụ: Temperature) và các
giá trị của chúng (chẳng hạn: Hot). Học nhờ cây quyết định sẽ dễ thực hiện

nhất khi mỗi một thuộc tính chỉ nhận trong một số ít giá trị riêng biệt (ví dụ:
Hot, Mild, Cool). Tuy nhiên, những mở rộng của thuật toán cơ sở cũng cho
phép xử lý tốt trường hợp các thuộc tính có giá trị thực (ví dụ: việc mô tả
Temperature có giá trị là số).
• Hàm đích có các giá trị rời rạc. Giá trị đầu ra ở cây quyết định có thể nhận
giá trị kiểu Bool (Yes hoặc No). Các phương pháp cây quyết định dễ mở
rộng cho học các hàm nhận nhiều hơn 2 giá trị ở đầu ra. Một mở rộng bản
chất hơn cho phép học các hàm đích có đầu ra là các giá trị thực mặc dù ứng
dụng của cây quyết định trong lĩnh vực này là ít phổ biến hơn.
• Có thể đòi hỏi các mô tả tuyển. Cây quyết định biểu diễn một cách tự
nhiên các phép tuyển.
• Dữ liệu huấn luyện có thể có lỗi. Những phương pháp học cây quyết định
rất mạnh trong trường hợp có lỗi, cả các lỗi khi phân lớp các ví dụ huấn
luyện và lỗi trong các giá trị của thuộc tính mô tả những ví dụ này.
13
• Dữ liệu huấn luyện có thể thiếu các giá trị thuộc tính. Phương pháp cây
quyết định được sử dụng ngay cả khi một số ví dụ huấn luyện chưa biết hết
các giá trị.
Rất nhiều bài toán thực tế đã khẳng định những đặc tính này. Việc học bằng
cây quyết định vì vậy được áp dụng cho các bài toán như học cách phân loại bệnh
nhân theo loại bệnh, phân loại các sự cố thiết bị theo nguyên nhân gây ra chúng,
phân loại những người vay tiền ngân hàng theo khả năng không thể trả nợ của họ.
Những bài toán mà nhiệm vụ là phân loại các mẫu thành một tập rời rạc các loại có
thể, thường được quy vào các bài toán phân lớp (clasification problems).
2.3.6Ưu điểm của học bằng cây quyết định
So với các phương pháp khai phá dữ liệu khác, cây quyết định là phương
pháp có một số ưu điểm:
- Cây quyết định dễ hiểu. Nhìn vào mô hình cây quyết định sẽ thấy rõ ràng
các quyết định.
- Việc chuẩn bị dữ liệu cho một cây quyết định là cơ bản hoặc không cần

thiết. Các kỹ thuật khác thường đòi hỏi chuẩn hóa dữ liệu, cần tạo các biến
phụ (dummy variable) và loại bỏ các giá trị rỗng.
- Cây quyết định có thể xử lý cả dữ liệu có giá trị bằng số và dữ liệu có giá
trị là tên phân loại của thuộc tính. Các kỹ thuật khác thường phân tích các
bộ dữ liệu chỉ gồm một loại biến. Chẳng hạn, các luật quan hệ chỉ có thể
dùng cho các biến tên, trong khi mạng nơ-ron chỉ có thể dùng cho các biến
có giá trị bằng số.
- Cây quyết định là một mô hình hộp trắng. Nếu có thể quan sát một tình
huống cho trước trong một mô hình, thì có thể dễ dàng giải thích điều kiện
14
đó bằng logic Boolean. Mạng nơ-ron là một ví dụ về mô hình hộp đen, do
lời giải thích cho kết quả quá phức tạp để có thể hiểu được.
- Có thể thẩm định một mô hình bằng các kiểm tra thống kê. Điều này làm
cho ta có thể tin tưởng vào mô hình.
- Cây quyết định có thể xử lý tốt một lượng dữ liệu lớn trong thời gian ngắn.
Có thể dùng máy tính cá nhân để phân tích các lượng dữ liệu lớn trong một
thời gian đủ ngắn để cho phép các nhà chiến lược đưa ra quyết định dựa trên
phân tích của cây quyết định
15
Chương 3: XÂY DỰNG ỨNG DỤNG
1.6 Thuật toán học cây quyết định – ID3 cơ bản
quy nạp cây ID3 (gọi tắt là ID3) là một giải thuật học đơn giản nhưng tỏ ra
thành công trong nhiều lĩnh vực. ID3 là một giải thuật hay vì cách biểu diễn tri
thức học được của nó, vì cách tiếp cận của nó trong việc quản lý tính phức tạp, vì
kỹ thuật heuristic của nó dùng cho việc chọn lựa các khái niệm ứng viên, và tiềm
năng của nó đối với việc xử lý dữ liệu nhiễu.
ID3 biểu diễn các khái niệm (concept) ở dạng các cây quyết định (decision
tree). Biểu diễn này cho phép chúng ta xác định phân loại của một đối tượng
bằng cách kiểm tra các giá trị của nó trên một số thuộc tính nào đó. Như vậy,
nhiệm vụ của giải thuật ID3 là học cây quyết định từ một tập các ví dụ huấn

luyện (training example) hay còn gọi là dữ liệu huấn luyện (training data). Hay
nói khác hơn, giải thuật có:
 Đầu vào: Một tập hợp các ví dụ. Mỗi ví dụ bao gồm các thuộc tính mô
tả một tình huống, hay một đối tượng nào đó, và một giá trị phân loại
của nó.
 Đầu ra: Cây quyết định có khả năng phân loại đúng đắn các ví dụ trong
tập dữ liệu huấn luyện, và hy vọng là phân loại đúng cho cả các ví dụ
chưa gặp trong tương lai.
Ví dụ, chúng ta hãy xét bài toán phân loại xem ta ‘Playtennis’ ứng với thời
tiết nào đó không. Giải thuật ID3 sẽ học cây quyết định từ tập hợp các ví dụ sau:
16
Bảng 3.1 Tập dữ liệu huấn luyện cho khái niệm “PlayTennis”
Day Outlook Temperature Humidity Wind Playtennis
D1
D2
D3
D4
D5
D6
D7
D8
D9
D10
D11
D12
D13
D14
Sunny
Sunny
Overcast

Rain
Rain
Rain
Overcast
Sunny
Sunny
Rain
Sunny
Overcast
Overcast
Rain
Hot
Hot
Hot
Mild
Cool
Cool
Cool
Mild
Cool
Mild
Mild
Mild
Hot
Mild
High
High
High
High
Normal

Normal
Normal
High
Normal
Normal
Normal
High
Normal
High
Weak
Strong
Weak
Weak
Weak
Strong
Strong
Weak
Weak
Weak
Strong
Strong
Weak
Strong
No
No
Yes
Yes
Yes
No
Yes

No
Yes
Yes
Yes
Yes
Yes
No
Tập dữ liệu này bao gồm 14 ví dụ. Mỗi ví dụ biểu diễn cho tình trạng thời
tiết gồm các thuộc tính Outlook, Temperature, Humidity và Wind; và đều có một
thuộc tính phân loại “Playennis” (Yes, No). “No” nghĩa là không đi chơi tennis ứng
với thời tiết đó, “Yes” nghĩa là ngược lại. Giá trị phân loại ở đây chỉ có hai loại
(Yes, No), hay còn ta nói phân loại của tập ví dụ của khái niệm này thành hai lớp
(classes). Thuộc tính “Playennis” còn được gọi là thuộc tính đích (target attribute).
17
Mỗi thuộc tính đều có một tập các giá trị hữu hạn. Thuộc tính Outlook có ba
giá trị (Overcast, Rain, Sunny), Temperature có ba giá trị (Hot, Cool, Mild),
Humidity có hai giá trị (High, Normal) và Wind có hai giá trị (Strong, Weak). Các
giá trị này chính là ký hiệu (symbol) dùng để biểu diễn bài toán.
Từ tập dữ liệu huấn luyện này, giải thuật ID3 sẽ học một cây quyết định có
khả năng phân loại đúng đắn các ví dụ trong tập này, đồng thời hy vọng trong
tương lai, nó cũng sẽ phân loại đúng các ví dụ không nằm trong tập này. Một cây
quyết định ví dụ mà giải thuật ID3 có thể quy nạp được là:
Hình 3.2 Cây quyết định cho tập dữ liệu trong bảng 2.2
Các nút trong cây quyết định biểu diễn cho một sự kiểm tra trên một thuộc
tính nào đó, mỗi giá trị có thể có của thuộc tính đó tương ứng với một nhánh của
cây. Các nút lá thể hiện sự phân loại của các ví dụ thuộc nhánh đó, hay chính là giá
trị của thuộc tính phân loại.
18
Sau khi giải thuật đã quy nạp được cây quyết định, thì cây này sẽ được sử
dụng để phân loại tất cả các ví dụ hay thể hiện (instance) trong tương lai. Và cây

quyết định sẽ không thay đổi cho đến khi ta cho thực hiện lại giải thuật ID3 trên
một tập dữ liệu huấn luyện khác.
Ứng với một tập dữ liệu huấn luyện sẽ có nhiều cây quyết định có thể phân
loại đúng tất cả các ví dụ trong tập dữ liệu huấn luyện. Kích cỡ của các cây quyết
định khác nhau tùy thuộc vào thứ tự của các kiểm tra trên thuộc tính.
Vậy làm sao để học được cây quyết định có thể phân loại đúng tất cả các ví
dụ trong tập huấn luyện? Một cách tiếp cận đơn giản là học thuộc lòng tất cả các ví
dụ bằng cách xây dựng một cây mà mỗi lá là 1 ví dụ. Với cách tiếp cận này thì có
thể cây quyết định sẽ không phân loại đúng cho các ví dụ chưa gặp trong tương lai.
Vì phương pháp này cũng giống như hình thức ‘học vẹt’, mà cây không hề học
được một khái quát nào của khái niệm cần học.
1.7 Giải thuật ID3 xây dựng cây quyết định từ trên – xuống
ID3 xây dựng cây quyết định theo cách từ trên xuống. Lưu ý rằng đối với bất
kỳ thuộc tính nào, chúng ta cũng có thể phân vùng tập hợp các ví dụ huấn luyện
thành những tập con tách rời, mà ở đó mọi ví dụ trong một phân vùng (partition) có
một giá trị chung cho thuộc tính đó. ID3 chọn một thuộc tính để kiểm tra tại nút
hiện tại của cây và dùng trắc nghiệm này để phân vùng tập hợp các ví dụ; thuật
toán khi đó xây dựng theo cách đệ quy một cây con cho từng phân vùng. Việc này
tiếp tục cho đến khi mọi thành viên của phân vùng đều nằm trong cùng một lớp,
lớp đó trở thành nút lá của cây.
Vì thứ tự của các trắc nghiệm là rất quan trọng đối với việc xây dựng một
cây quyết định đơn giản, ID3 phụ thuộc rất nhiều vào tiêu chuẩn chọn lựa trắc
nghiệm để làm gốc của cây. Để đơn giản, phần này chỉ mô tả giải thuật dùng để
19
xây dựng cây quyết định, với việc giả định một hàm chọn trắc nghiệm thích hợp.
Ví dụ, hãy xem xét cách xây dựng cây quyết định của ID3 từ ví dụ trước đó
+: D3, D4, D5, D7, D9, D10, D11, D12, D13
-: D1, D2, D6, D8, D14
Outlook
+ : D9, D11

- : D1, D2, D8
+ : D3, D7, D12, D13
- :
+ : D3, D5, D10
- : D6, D14
Sunny
Overcast
Rain
Hình 3.3 Một phần cây quyết định xây dựng được
Bắt đầu với bảng đầy đủ gồm 14 ví dụ huấn luyện, ID3 chọn thuộc tính
Outlook để làm thuộc tính gốc sử dụng hàm chọn lựa thuộc tính mô tả trong phần
kế tiếp. Trắc nghiệm này phân chia tập ví dụ như cho thấy trong hình 4.3 với phần
tử của mỗi phân vùng được liệt kê bởi số thứ tự của chúng trong bảng.
* ID3 xây dựng cây quyết định theo giải thuật sau :
Function induce_tree(tập_ví_dụ, tập_thuộc_tính)
begin
if mọi ví dụ trong tập_ví_dụ đều nằm trong cùng một lớp then
20
return một nút lá được gán nhãn bởi lớp đó
else if tập_thuộc_tính là rỗng then
return nút lá được gán nhãn bởi tuyển của tất cả các lớp trong
tập_ví_dụ
else begin
chọn một thuộc tính P, lấy nó làm gốc cho cây hiện tại;
xóa P ra khỏi tập_thuộc_tính;
với mỗi giá trị V của P
begin
tạo một nhánh của cây gán nhãn V;
Đặt vào phân_vùngV các ví dụ trong tập_ví_dụ có giá trị V tại thuộc
tính P;

Gọi induce_tree(phân_vùngV, tập_thuộc_tính), gắn kết quả vào nhánh V
end
end
end
ID3 áp dụng hàm induce_tree một cách đệ quy cho từng phân vùng. Ví dụ,
phân vùng của nhánh “Overcast” có các ví dụ toàn dương, hay thuộc lớp “Yes”,
nên ID3 tạo một nút lá với nhãn là lớp “Yes”. Còn phân vùng của hai nhánh còn lại
vừa có ví dụ âm, vừa có ví dụ dương. Nên tiếp tục chọn thuộc tính “Humidity” để
làm trắc nghiệm cho nhánh “Sunny”, và thuộc tính “Wind” cho nhánh “Rain”, vì
các ví dụ trong các phân vùng con của các nhánh cây này đều thuộc cùng một lớp,
nên giải thuật ID3 kết thúc và ta có được cây quyết định như sau:
21
+: D3, D4, D5, D7, D9, D10, D11, D12, D13
-: D1, D2, D6, D8, D14
Outlook
+ : D9, D11
- : D1, D2, D8
+ : D3, D7, D12, D13
- :
+ : D3, D5, D10
- : D6, D14
Sunny
Overcast
Rain
Humidity
Yes
Wind
+ :
- : D1, D2, D8
+ : D9, D11

- :
+ :
- : D6, D14
+:D4, D5, D10
- :
No
Yes
No
Yes
22
High
Normal
Strong
Wind
Hình 3.4 Cây quyết định đã xây dựng xong
Lưu ý, để phân loại một ví dụ, có khi cây quyết định không cần sử dụng tất
cả các thuộc tính đã cho, mặc dù nó vẫn phân loại đúng tất cả các ví dụ.
Cũng như các phương pháp học quy nạp khác, ID3 cũng tìm kiếm trong một
không gian các giả thuyết một giả thuyết phù hợp với tập dữ liệu huấn luyện.
Không gian giả thuyết mà ID3 tìm kiếm là một tập hợp các cây quyết định có thể
có. ID3 thực hiện một phép tìm kiếm từ đơn giản đến phức tạp, theo giải thuật leo-
đồi (hill climbing), bắt đầu từ cây rỗng, sau đó dần dần xem xét các giả thuyết
phức tạp hơn mà có thể phân loại đúng các ví dụ huấn luyện. Hàm đánh giá được
dùng để hướng dẫn tìm kiếm leo đồi ở đây là phép đo lượng thông tin thu được.
Từ cách nhìn ID3 như là một giải thuật tìm kiếm trong không gian các giả
thuyết, ta có một số nhận xét như sau:
 Không gian giả thuyết các cây quyết định của ID3 là một không gian
đầy đủ các cây quyết định trên các thuộc tính đã cho trong tập huấn
luyện. Điều này có nghĩa là không gian mà ID3 tìm kiếm chắc chắn có
chứa cây quyết định cần tìm.

 Trong khi tìm kiếm, ID3 chỉ duy trì một giả thuyết hiện tại. Vì vậy, giải
thuật này không có khả năng biểu diễn được tất cả các cây quyết định
khác nhau có khả năng phân loại đúng dữ liệu hiện có.
23
Hình 3.5. Không gian tìm kiếm của ID3
 Trong quá trình tìm kiếm, ID3 không thực hiện quay lui. Mỗi khi một
thuộc tính được lựa chọn là thuộc tính kiểm tra cho một nút, ID3 không
bao giờ quay lại xem xét sự lựa chọn này. Vì vậy, nó có thể gặp phải
những hạn chế giống như giải thuật leo núi, đó là chỉ tìm được lời giải
tối ưu cục bộ chứ không đảm bảo tìm được lời giải tối ưu tổng thể.
 Ở mỗi bước trong quá trình tìm kiếm, ID3 sử dụng một đánh giá thống
kê (information Gain) để cải thiện giả thiết hiện tại. Nhờ vậy, quá trình
tìm kiếm ít bị ảnh hưởng bởi một vài dữ liệu sai (hay dữ liệu nhiễu).
 Trong quá trình tìm kiếm, giải thuật ID3 có xu hướng chọn cây quyết
định ngắn hơn là những cây quyết định dài. Đây là tính chất thiên lệch
quy nạp của ID3.
1.8 Khuynh hướng quy nạp trong học cây quyết định
Khuynh hướng quy nạp là một tập các giả định rằng máy có thể chỉ ra sự
phân loại cho các trường hợp về sau bằng cách chứng minh suy diễn từ dữ liệu
huấn luyện.
24
Với một tập các ví dụ huấn luyện đã cho, sẽ có nhiều cây quyết định phù
hợp với các ví dụ này. Việc mô tả khuynh hướng quy nạp của thuật toán ID3 do đó
cũng bao gồm sự mô tả cơ sở để thuật toán chọn lựa một giả thuyết phù hợp nhất.
Thuật toán ID3 sẽ chọn lựa cây quyết định nào trong số những cây này. Nó chọn
cây chấp nhận được đầu tiên mà nó gặp trong quá trình chọn lựa từ đơn giản đến
phức tạp, tìm kiếm theo phương pháp leo đồi (hill-climbing) trên toàn bộ các cây
có thể. Có thể nói chiến lược tìm kiếm của thuật toán ID3 như sau:
1. Lựa chọn ưu tiên cho những cây ngắn trên những cây dài
2. Lựa chọn những cây mà các thuộc tính có lượng thông tin thu được là cao

nhất nằm gần nút gốc nhất.
Thật khó để mô tả chính xác khuynh hướng quy nạp thể hiện trong ID3. Tuy
nhiên, chúng ta có thể mô tả gần đúng khuynh hướng này như là một sự ưu tiên
hơn các cây quyết định nhỏ gọn hơn so với các quyết định phức tạp.
Khuynh hướng quy nạp xấp xỉ trong ID3: những cây ngắn được ưu tiên
hơn những cây lớn.
Trong thực tế, ta có thể hình dung một giải thuật tương tự với ID3 mà có thể
biểu diễn chính xác khuynh hướng quy nạp. Ta có thể coi giải thuật này bắt đầu với
một cây rỗng và tìm kiếm theo chiều rộng và theo quá trình đó làm cho cây đều ở
mức 1, sau đó tất cả các cây đều ở mức 2, … Mỗi lần nó tìm một cây quyết định
hợp lý với dữ liệu huấn luyện, nó sẽ trả về cây hợp lý nhỏ nhất theo chiều sâu.
Chúng ta gọi giải thuật này là giải thuật tìm kiếm theo chiểu rộng BFS-ID3, BFS-
ID3 tìm kiếm một cây quyết định ngắn nhất và như vậy, nó thể hiện khuynh hướng
“những cây ngắn được ưu tiên hơn những cây dài” một cách chính xác. Có thể xem
ID3 như một thuật toán có hiệu quả tương đương với thuật toán BFS-ID3, sử dụng
một kỹ thuật tìm kiếm tham lam (greedy heuristic search) để cố gắng tìm ra cây
25

×