1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tiểu luận môn CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG ỨNG DỤNG MỘT SỐ THUẬT TOÁN TRONG MÔ HÌNH PHÂN LỚP CÂY QUYẾT ĐỊNH - CÀI ĐẶT CHƯƠNG TRÌNH DEMO THUẬT TOÁN ID3

72 939 2

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 72
Dung lượng 1 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Trong phạm vi bài thu hoạch này, em xin trình bày về môhình phân lớp với cây quyết định – một công cụ mạnh, phổ biến và đặc biệt thích hợp vớicác ứng dụng khai phá dữ liệu, bên cạnh đó b

Trang 1

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

BÀI THU HOẠCH MÔN CÔNG NGHỆ

TRI THỨC VÀ ỨNG DỤNG

MỘT SỐ THUẬT TOÁN TRONG

MÔ HÌNH PHÂN LỚP CÂY QUYẾT ĐỊNH - CÀI ĐẶT

Trang 2

LỜI CÁM ƠN

Đầu tiên, em xin chân thành cám ơn thầy GS.TSKH Hoàng Văn Kiếm – người đã truyền đạt cho em những kiến thức quý báu trong môn Công nghệ tri thức và ứng dụng.

Tiếp theo, em xin gửi lời cám ơn đến các thầy cô ở các khoa cũng như tại các phòngban tại trường ĐH Công Nghệ Thông Tin đã tận tình giúp đỡ em trong thời gian họcvừa qua

Do kiến thức có hạn cũng như kinh nghiệm nghiên cứu khoa học trên thực tế khôngnhiều nên bài làm của em không tránh khỏi thiếu sót Em rất mong nhận được sựđóng góp quí báu của quí thầy cô

TpHCM, ngày 15 tháng 10 năm 2014 Lớp Cao học KHMT khóa 8

Lê Phú Quí

Trang 3

NHẬN XÉT CỦA GIẢNG VIÊN

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

……….

Trang 4

Mục lục

Lời giới thiệu 5

I Tổng quan về hệ tri thức 6

1.1 Các khái niệm 6

1.2 Tiếp nhận, biểu diễn tri thức 6

1.3 Xây dựng các hệ cơ sở tri thức 7

1.3.1 Khối tri thức (cơ sở tri thức) 7

1.3.2 Khối điều khiển (động cơ suy diễn) 7

1.3.3 Các loại tri thức 7

1.3.4 Các hệ tri thức phân loại theo ứng dụng 8

1.4 Thuật toán là một phương pháp biểu diễn tri thức? 9

1.5 Máy học và khám phá tri thức 9

1.6 Các hệ thống quy nạp 11

II Tổng quan về cây quyết định 11

2.1 Giới thiệu chung 11

2.2 Các kiểu cây quyết định 12

2.3 Ưu điểm của cây quyết định 13

2.4 Quy trình xây dựng cây quyết định 13

2.5 Cách xây dựng cây quyết định 14

2.5.1 Chọn thuộc tính phân tách 14

2.5.2 Phép kiểm tra để chọn phép phân tách tốt nhất 15

2.6 Rút ra các luật từ cây quyết định 17

III Thuật toán phân lớp cây quyết định 18

3.1 Thuật toán CLS 18

3.2 Thuật toán ID3 19

3.2.1 Giới thiệu 19

3.2.2 Ví dụ bài toán chơi Golf để giải thích Cây quyết định 19

3.2.3 Thuật giải ID3 xây dựng Cây quyết định từ trên xuống 21

3.2.4 Thuộc tính dùng để phân loại tốt nhất 23

3.2.5 Đánh giá hiệu suất của Cây quyết định 34

3.2.6 Khi nào nên sử dụng ID3 34

Trang 5

3.3 Thuật toán C4.5 35

3.3.1 Giới thiệu 35

3.3.2 Nội dung thuật toán C4.5 36

3.3.3 Độ đo sử dụng để xác định điểm chia tốt nhất 38

3.3.4 Một số vấn đề với thuộc tính 40

3.4.Thuật toán SPRINT 49

3.4.1 Lịch sử phát triển 49

3.4.2 Mã giã của thuật toán SPRINT 50

3.4.3 SPRINT sử dụng Gini-index 50

VI Các vấn đề học trong cây quyết định 52

4.1 Tránh Overfitting dữ liệu 52

4.2 Giảm lỗi cắt tỉa 55

4.3 Luật POST-PRUNING 57

4.4 Kết hợp các thuộc tính có giá trị liên tục 59

4.5 Các phương pháp thay thế cho các thuộc tính lựa chọn 60

4.6 Xử lý huấn luyện đối với những thuộc tính thiếu giá trị 61

4.7 Xử lý các thuộc tính có chi phí khác nhau 62

V Chương trình thực nghiệm thuật toán ID3 62

5.1 Cài đặt chương trình 62

5.2 Giao diện chương trình 66

VI Tổng kết 69

VII Tài liệu tham khảo 69

Trang 7

Lời giới thiệu

Ngày nay cùng với sự phát triển của Công nghệ tri thức, các nhà nghiên cứu luônmong muốn kết hợp với máy tính để giải quyết vấn đề trong thực tế Với những ứng dụngcủa Công nghệ tri thức làm cho máy tính trở nên thông minh hơn, xử lý tốt hơn nhữngcông việc phức tạp

Trong nhiều lĩnh vực, ngành nghề hay cả trong hoạt động sinh hoạt thường ngày,con người thường xuyên tiếp cận và xử lý một lượng thông tin và dữ liệu nào đó Các tập

dữ liệu được tích lũy có kích thước ngày càng lớn, và có thể chứa nhiều thông tin ẩn dạngnhững quy luật chưa được khám phá Chính vì vậy, một nhu cầu đặt ra là cần tìm cáchtrích rút từ tập dữ liệu đó các luật về phân lớp dữ liệu hay dự đoán những xu hướng dữliệu tương lai

Để thực hiện phân lớp dữ liệu có nhiều phương pháp được đề xuất như: phân lớpvới cây quyết định (Decision Tree Classification), phân lớp Bayesian (BayesianClassifier), phân lớp K – hàng xóm gần nhất (K – nearest neighbor classifier), mạngnơron, phân tích thống kê, … Trong phạm vi bài thu hoạch này, em xin trình bày về môhình phân lớp với cây quyết định – một công cụ mạnh, phổ biến và đặc biệt thích hợp vớicác ứng dụng khai phá dữ liệu, bên cạnh đó bài thu hoạch giới thiệu một số thuật toán phổbiến được sử dụng trong mô hình phân lớp bằng cây quyết định như: ID3, C4.5, … Quátrình phân tích, đánh giá các thuật toán có ý nghĩa thực tiễn và giá trị khoa học Tìm hiểucác thuật toán giúp chúng ta tiếp thu và có thể phát triển về mặt tư tưởng, cũng như kỹthuật của một công nghệ tiên tiến đã và đang là thách thức đối với các nhà khoa học tronglĩnh vực data mining Từ đó có thể triển khai cài đặt và thử nghiệm các mô hình phân lớp

dữ liệu trên thực tế

Mục tiêu bài thu hoạch:

-Trình bày các một số thuật toán phổ biến được sử dụng trong mô hình phân lớpbằng cây quyết định

- Xây dựng chương trình thực nghiệm thuật toán ID3

Trang 8

I Tổng quan về hệ tri thức

1.1 Các khái niệm

 Tri thức (knowledge) : là sự hiểu biết về một lĩnh vực của chủ đề

 Lĩnh vực (domain): là miền chủ đề được chú trọng

tri thức trong cơ sở tri thức của hệ thống

trong đó các tri thức về lĩnh vực bài toán được cô lập và lưu trữ trong cơ sở trithức, được xử lý, đánh giá nhờ thành phần giải vấn đề độc lập với bài toán

phần giải vấn đề trong hệ thống trên tri thức

tiếp nhận, biểu diễn tri thức, xây dựng các hệ cơ sở tri thức và khám phá trithức (hay bao gồm tất cả các hoạt động đi kèm theo vòng đời của một hệ thốngdựa trên tri thức) Được xem như là một nhánh nghiên cứu của trí tuệ nhân tạo,phân tích tri thức lĩnh vực và chuyển nó thành những mô hình tính toán và đưavào máy tính để phục vụ cho những nhu cầu cần thiết

1.2 Tiếp nhận, biểu diễn tri thức

Gián tiếp: những tri thức

Logic mệnh đề và logic vị từ

Hệ luật dẫnĐối tượng – thuộc tính – giá trịMạng ngữ nghĩa

FrameScript

Trang 9

1.3 Xây dựng các hệ cơ sở tri thức

Các hệ cơ sở tri thức có 2 chức năng tách biệt nhau, trường hợp đơn giản có haikhối: khối tri thức và khối điều khiển

1.3.1 Khối tri thức (cơ sở tri thức)

Gồm có các loại là: hệ cơ sở tri thức đóng, hệ cơ sở tri thức mở và hệ cơ sở tri thứckết hợp

 Hệ cơ sở tri thức đóng: được xây dựng với một số “tri thức lĩnh vực” banđầu và sử dụng trong suốt quá trình hoạt động hay suốt thời gian sống củanó

 Hệ cơ sở tri thức mở: là những hệ cơ sở tri thức tiên tiến hơn, nó có khảnăng bổ sung tri thức trong quá trình hoạt động, khám phá

kết hợp giữa cơ sở tri thức và cơ sở dữ liệu, hay giữa các hệ cơ sở tri thứcvới nhau Các hệ cơ sở tri thức kết hợp thường phát triển mạnh dựa trên trithức liên ngành

1.3.2 Khối điều khiển (động cơ suy diễn)

Để tiến hành các suy diễn nhằm tạo ra các tri thức mới dựa trên các sự kiện, trithức cung cấp từ ngoài vào và tri thức có sẵn trong hệ cơ sở tri thức Hai kiểu suy diễnchính trong động cơ suy diễn là suy diễn tiến và suy diễn lùi

1.3.3 Các loại tri thức

Tri thức thủ tục : diễn tả cách giải

quyết vấn đề, cho biết phương hướng

thực hiện các hoạt động

Các luật, các chiến lược, lịch, các

thủ tục như giải phương trình bậc hai, xây nhà, đăng ký kết hôn.

Tri thức mô tả (hay tri thức khai báo):

cho biết một vần đề được thấy như thế

Các khái niệm, các đối tượng, các sự

kiện như mặt trời mọc ở phương

Trang 10

nào, gồm các khẳng định đơn giản,

nhận giá trị chân lý đúng sai

đông.

Tri thức meta (hay siêu tri thức): diễn

tả tri thức về tri thức, giúp chọn lựa tri

thức thích hợp trong số các tri thức khi

giải vấn đề

Tri thức về các dạng tri thức khác và

cách sử dụng chúng như áp dụng kinh dịch vào việc xây nhà và sẽ chọn được hướng thích hợp.

Tri thức may rủi (hay tri thức

heuristic): diễn tả luật may rủi, cung

cách may rủi dẫn đắt quá trình lập luận,

đây là tri thức nông cạn do không bảo

đảm tính chính xác, khoa học, và nó

xuất phát từ những kinh nghiệm, từ tri

thức giải các vấn đề quá khứ

Các luật may rủi

Tri thức cấu trúc: diễn tả các cấu trúc

của tri thức, cấu trúc thể hiện qua cách

tổ chức, mô hình về các tri thức

Các tập luật, các quan hệ khái niệm, khái niệm về quan hệ giữa các đối tượng

1.3.4 Các hệ tri thức phân loại theo ứng dụng

Các hệ tri thức phân loại theo ứng dụng

Hệ giải

quyết vấn đề

Hệ hỗ trợ định danh

Hệ dự báo, chuẩn đoán Hệ điều khiển

Giống các

hệ hỗ trợ ra quyết đính với tính

Các hệ thống có gắn với cơ

sở tri thức Các hệ thống này thường ứng dụng trong công nghiệp, trong điều

Trang 11

tính mở toán học + …)

với đối tượng

sử dụng là các nhà lãnh đạo

thực, và một số có sử dụng kết hợp lý thuyết mờ để xử lý

1.4 Thuật toán là một phương pháp biểu diễn tri thức?

Đây là câu hỏi luôn gây thắc mắc và có kết luận thuật toán đúng là một phương phápbiểu diễn tri thức

Ví dụ: Xét bài toán giải phương trình bậc hai với tri thức đã chứa đựng bên trong và

thực chất các tri thức được mã hóa dưới dạng các câu lệnh if…then…else trong chương

trình Do đó có thể khẳng định rằng các chương trình máy tính ít nhiều đều đã có tri thức

đó chính là các tri thức của lập trình viên được chuyển thành các câu lệnh trong chươngtrình

Nhưng một câu hỏi đặt ra là tại sao đưa tri thức vào máy tính là một vấn đề? và ta biếtrằng một khi chương trình đã được biên dịch thì không thể thêm vào hay điều chỉnh nữacho đến khi ta sửa lại mã nguồn (mà để sửa lại mã nguồn thì đó là vấn đề chỉ có các lậptrình viên biết chỗ sửa, còn người dùng thông thường thì không biết) Hướng giải quyết làphải “mềm” hóa các tri thức biểu diễn trong máy tính, tức là đi tìm các phương pháp đểbiểu diễn tri thức của con người bằng các cấu trúc dữ liệu mà máy tính có thể xử lý được,đây chính là quá trình biểu diễn tri thức

1.5 Máy học và khám phá tri thức

Học: tức là tiếp thu tri thức để biết cách vận dụng.

Thực tế quá trình học diễn ra dưới nhiều hình thức khác nhau, các kiểu học bao gồm:học thuộc lòng (học vẹt), học theo kinh nghiệm (học dựa theo trường hợp), học theo kiểunghe nhìn, học dựa trên tương tự, học trên giải thích, học số, học khái niệm, học qua

Trang 12

thưởng phạt, học qua quan sát, qua suy luận, qua diễn dịch quy nạp, học sáng tạo Trongtương lai có thể còn nhiều kiểu học khác ra đời.

Ta cần xem xét mối liên hệ giữa tri thức và máy để từ đó có thể khám phá ra các trithức mới, cần thiết để nạp thêm bổ sung ngày một nhiều số kiến thức máy có được

Ngoài ra ta còn có kiểu học bằng thực hành: kiểu học này thích hợp cho hệ đang giải toán, chủ yếu để cải thiện hiệu quả cách giải toán khi hệ đang hoạt động (học bằng thử và sai) Một hệ học bằng thực hành luôn luôn có sẵn một số thông tin khởi tạo, thông tin này thuộc hai loại: các toán tử và các heuristic khởi tạo

Nếu xem xét khía cạnh trong nghiên cứu khoa học và mê tín dị đoan thì chúng ta sẽ cóphương pháp học theo trường hợp là một phương pháp phổ biến Vì khoa học và mê tín dịđoan đều dựa trên các dữ liệu quan sát thống kê để từ đó rút ra các quy luật Tuy nhiênkhác với khoa học, mê tín dị đoan thường dựa trên tập mẫu không đặc trưng, cục bộ, thiếu

cơ sở khoa học

Đây là vấn đề quan trọng vì từ

những cái đã biết (có được) mà ta

phải tìm ra những cái mới Tìm ra

những gì tiềm ẩn, những tri thức

mới (không phải tri thức kinh điển,

kinh nghiệm, …) từ những loại tri

thức như sau: tri thức thủ tục, tri

thức khai báo, siêu tri thức, tri thức

heuristic, tri thức có cấu trúc.

Ý nghĩa thứ nhất: Máy tính hay

chương trình có khả năng tự hoànthiện từ “kinh nghiệm”

Ý nghĩa thứ hai: Máy học 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

Trang 13

1.6 Các hệ thống quy nạp

Lập luật quy nạp: con người dùng lập luận quy nạp để rút ra kết luận tổng quát từ

một tập sự kiện theo cách tổng quát hóa Thực chất của lập luận quy nạp là đem thiểu số

áp dụng cho đa số

Ví dụ:

giả thiết : chị Mơ hát hay

giả thiết : chị Nụ hát hay

Quy nạp (induction) : Đây là vấn đề liên quan đến việc thu thập tri thức từ các

chuyên gia, người ta dùng các kỹ thuật tự động như máy học để có thể thể hiện các “trithức qua các sự kiện” và một trong các phương pháp học tự động là quy nạp Dựa vào cácphương pháp học đã biết là “học vẹt, học nhờ nghe được, học theo ví dụ và học tương tự”

từ đó phát sinh kỹ thuật quy nạp => đây là kiểu suy luận cho phép rút ra các luật tổng quát

từ các tri thức trong tập hữu hạn các ví dụ và/hoặc các quan sát

II Tổng quan về cây quyết định

2.1 Giới thiệu chung

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 nút trong (internal node) tương ứng với một biến; đường nối giữa nó vớinút con của nó thể hiện giá trị cụ thể cho biến đó Mỗi nút lá đại diện cho giá trị dự đoáncủa biến mục tiêu, cho trước các giá trị dự đoán 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ằngcây quyết định, hay chỉ gọi với cái tên ngắn gọn là cây quyết định

Ví dụ: Cây quyết định:

Bảng : Dữ liệu bêtông

kết luận : nói chung, các chị hát hay.

Trang 14

Hình 2.1: Cây quyết định phân lớp độ cứng bêtông

2.2 Các kiểu cây quyết định

Cây quyết định còn có 2 tên gọi khác:

- Cây hồi quy: (Regression tree): ước lượng các hàm 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ảngthờ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)

Trang 15

2.3 Ưu điểm của 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 có ưu điểm sau:

- Cây quyết định tương đối dễ hiểu

- Đòi hỏi mức tiền xử lý dữ liệu đơn giản

- Có thể xử lý với cả các dữ liệu rời rạc và liên tục

- Cây quyết định là một mô hình hộp trắng

- Kết quả dự đoán bằng cây quyết định có thể thẩm định lại bằng cách kiểm trathống kê

2.4 Quy trình xây dựng cây quyết định

Quá trình xây dựng cây quyết định đều được chia ra làm 3 giai đoạn cơ bản:

1 Xây dựng cây: thực hiện chia một cách đệ quy tập mẫu dữ liệu huấn luyện chođến khi các mẫu ở mỗi nút lá thuộc cùng một lớp

2 Cắt tỉa cây: là việc làm dùng để tối ưu hoá cây Cắt tỉa cây chính là việc trộn mộtcây con vào trong một nút lá

3 Đánh giá cây: dùng để đánh giá độ chính xác của cây kết quả Tiêu chí đánh giá

là tổng số mẫu được phân lớp chính xác trên tổng số mẫu đưa vào

Có rất nhiều cách biến đổi khác nhau về nòng cốt của thuật toán cây quyết định.Mặc dù vậy chúng vẫn tuân theo những bước cơ bản sau:

- Cây được thiết lập từ trên xuống dưới và theo cách thức chia để trị

- Ở thời điểm bắt đầu, các mẫu huấn luyện nằm ở gốc của cây

- Chọn thuộc tính được phân loại (rời rạc hóa các thuộc tính thuộc phi số)

- Chọn một thuộc tính để phân chia thành các nhánh Thuộc tính được chọn dựatrên độ đo thống kê hoặc độ đo heuristic

- Tiếp tục lặp lại việc xây dựng cây quyết định cho các nhánh Điều kiện để dừngviệc phân chia:

- Tất cả các mẫu rơi vào một nút thuộc về cùng một lớp (nút lá)

- Không còn thuộc tính nào để có thể dùng để phân chia mẫu nữa

- Không còn mẫu nào tại nút

Trang 16

2.5 Cách xây dựng cây quyết định

2.5.1 Chọn thuộc tính phân tách

Lúc khởi đầu, ta có một tập huấn luyện chứa tập các bản ghi được phân loại trước,tức là giá trị của biến đích được xác định trong tất cả các trường hợp Cây quyết địnhđược xây dựng bằng cách phân tách các bản ghi tại mỗi nút dựa trên một thuộc tính đầuvào Rõ ràng nhiệm vụ đầu tiên là phải chọn ra thuộc tính nào có sự phân tách tốt nhất tạinút đó

Độ đo được sử dụng để đánh giá khả năng phân tách là độ tinh khiết Chúng ta sẽ

có những phương pháp tính toán độ tinh khiết một cách chi tiết Tuy nhiên, chúng đều cốgắng đạt được hiệu quả như nhau Một sự phân tách tốt nhất là sự phân tách làm tăng độtinh khiết của tập bản ghi với số lượng lớn nhất Mặt khác, nó cũng phải tạo ra các nút cókích cỡ tương tự nhau hay ít nhất không tạo ra các nút có quá ít bản ghi

Hình : Phân tách dữ liệuThuật toán xây dựng cây quyết định hết sức thấu đáo Chúng bắt đầu bằng việcchọn mỗi biến đầu vào chưa được chọn và đo mức độ tăng độ tinh khiết trong các kết quảứng với mỗi biến Sau đó, một phép phân tách tốt nhất sẽ được sử dụng trong phép phântách khởi đầu để tạo hai hay nhiều nút con Nếu không phép phân tách nào có khả nănghoặc không có phép phân tách nào làm tăng độ tinh khiết thì thuật toán kết thúc và nút đótrở thành nút lá

Phép phân tách trên các biến đầu vào kiểu số: đối với sự phân tách nhị phân trên

một biến đầu vào, mỗi giá trị mà biến đó chứa đều có thể trở thành giá trị dự tuyển Phépphân tách nhị phân dựa trên biến đầu vào kiểu số có dạng X<N Để cải thiện hiệu năng,

Trang 17

một số thuật toán không kiểm tra hết toàn bộ các giá trị của biến mà chỉ kiểm tra trên tậpmẫu giá trị của biến đó.

Phép phân tách trên các biến đầu vào định tính: thuật toán đơn giả nhất trong việc

phân tách trên một biến định tính là ứng với mỗi giá trị của biến đó, ta tạo một nhánhtương ứng với một lớp được phân loại Phương pháp này được sử dụng thật sự trong một

số phần mềm nhưng mang lại hiệu quả thấp Một số phương pháp phổ biến hơn đó lànhóm các lớp mà dự đoán cùng kết quả với nhau Cụ thể, hai lớp của biến đầu vào cóphân phối đối với biến đích chỉ khác nhau trong một giới hạn cho phép thì hai lớp này cóthể hợp nhất với nhau

Phép phân tách với sự có mặt của các giá trị bị thiếu: một trong những điểm hay

nhất của cây quyết định là nó có khả năng xử lý các giá trị bị thiếu bằng cách coi giá trịrỗng là một nhánh của nó Phương pháp này được ưa thích hơn so với việc bỏ các bản ghi

có giá trị thiếu hoặc cố gắng gán giá trị nào đó cho nó Bởi nhiều khi các giá trị rỗng cũng

có ý nghĩa riêng của nó Mặc dù phép phân tách giá trị rỗng như là một lớp riêng rẽ khá

có ý nghĩa nhưng người ta thường đề xuất một giải pháp khác Trong khai phá dữ liệu,mỗi nút chứa vài luật phân tách có thể thực hiện tại nút đó, mỗi phép phân tách đó dựavào các biến đầu vào khác nhau Khi giá trị rỗng xuất hiện trong biến đầu vào của phépphân tách tốt nhất, ta sử dụng phép phân tách thay thế trên biến đầu vào có phép phântách tốt thứ hai

2.5.2 Phép kiểm tra để chọn phép phân tách tốt nhất

Độ lợi thông tin (Information gain): là đại lượng được sử dụng để chọn lựa thuộctính với information gain lớn nhất

- Cho P và N là hai lớp và S là một tập dữ liệu có p phần tử lớp P và n phần tử lớpN

- Khối lượng thông tin cần thiết để quyết định một mẫu tùy ý có thuộc về lớp P hay

N hay không là:

Trang 18

- Cho các tập {S1, S2, ,Sv} là một phân hoạch trên S khi sử dụng thuộc tính A.

- Cho mỗi Si chứa pi mẫu lớp P và ni mẫu lớp N

- Entropy hay thông tin mong muốn cần thiết để phân lớp các đối tượng trong tất

cả các cây con Si là:

- Thông tin có được bởi việc phân nhánh trên thuộc tính A là:

Ví dụ: với bản dữ liệu về bêtông ở trên

- Lớp P: Kết quả=''Tốt''

- Lớp N: Kết quả=''Xấu''

- Thông tin cần thiết để phân lớp một mẫu được cho là:

Info(p,n) = Info(4,4) = - (1/2)log2(1/2) - (1/2)log2(1/2) = 1

- Xét thuộc tính ''Độ cứng'' ta có:

+ ''Độ cứng'' = ''Cao'':

Info(4,1) = Entropy(4/5,1/5) = - 4/5log2 (4/5) - 1/5log2(1/5) = 0.722

+ ''Độ cứng'' = ''Trung bình'':

Info(0,3) = Entropy(0,3) = - 0log2 (0) - 1log2(1) = 0 (quy ước log2(0) = 0)

+ Entropy cho phép phân tách trên thuộc tính ''Độ cứng''Entropy(''Độ cứng'') = 5/8Info(4,1) + 3/8Info(0,3) = 5/8*0.722 + 3/8*0 = 0.451

+ Do đó, ta có:

Gain(''Độ cứng'') = Info(4,4) - Entropy(''Độ cứng'') = 1 - 0.451 = 0.549

- Tương tự cho các thuộc tính còn lại:

Trang 19

Gain(''Độ ẩm'') = 0.049

Gain(''Độ PH”) = 0.156

Rõ ràng ta sẽ chọn thuộc tính ''Độ cứng'' để phân tách Sau đó, làm tương tự ta sẽđược cây quyết định cuối cùng có dạng:

Hình 2.5 : Cây quyết định cuối cùng

2.6 Rút ra các luật từ cây quyết định

- Biểu diễn tri thức dưới dạng luật if-then

- Mỗi luật tạo ra từ mỗi đường dẫn từ gốc đến lá

- Mỗi cặp giá trị thuộc tính dọc theo đường dẫn tạo nên phép kết (phép and)

- Các nút lá mang tên của lớp

Ví dụ từ cây 2.5 ta có thể rút ra được các luật sau

IF (Độ cứng = Cao) AND (Độ PH = cao) THEN Kết quả = Tốt

IF (Độ cứng = Cao) AND (Độ PH = Trung bình) THEN Kết quả = Tốt

IF (Độ cứng = Cao) AND (Độ PH = Thấp) AND (Độ ẩm = Cao) THEN

Kết quả = Xấu

IF (Độ cứng = Cao) AND (Độ PH = Thấp) AND (Độ ẩm = Thấp) THEN

Trang 20

Kết quả = Tốt

IF (Độ cứng = Trung bình) THEN Kết quả = Xấu

III Thuật toán phân lớp cây quyết định

3.1 Thuật toán CLS

Thuật toán này được Holland và Hint giới thiệu trong Concept learning System(CLS) vào những năm 50 của thế kỷ 20 Thuật toán CLS được thiết kế theo chiến lượcchia để trị từ trên xuống Nó gồm các bước sau:

1 Tạo một nút T, nút này gồm tất cả các mẫu của tập huấn luyện

2 Nếu tất cả các mẫu trong T có thuộc tính quyết định mang giá trị "yes" (haythuộc cùng một lớp), thì gán nhãn cho nút T là "yes" và dừng lại T lúc này là nútlá

3 Nếu tất cả các mẫu trong T có thuộc tính quyết định mang giá trị "no" (haythuộc cùng một lớp), thì gán nhãn cho nút T là "no" và dừng lại T lúc này là nút lá

4 Trường hợp ngược lại các mẫu của tập huấn luyện thuộc cả hai lớp "yes" và

+ Tạo n nút con Ti (i=1,2…n) với nút cha là nút T

+ Tạo các nhánh nối từ nút T đến các nút Ti (i=1,2…n) là các thuộc tínhcủa X

5 Thực hiện lặp cho các nút con Ti(i =1,2 n) và quay lại bước 2

Ta nhận thấy trong bước 4 của thuật toán, thuộc tính được chọn để triển khai cây làtuỳ ý Do vậy cùng với một tập mẫu dữ liệu huấn luyện nếu áp dụng thuật toán CLS với thứ tự chọn thuộc tính triển khai cây khác nhau, sẽ cho ra các cây có hình dạng khác nhau

Trang 21

Việc lựa chọn thuộc tính sẽ ảnh hưởng tới độ rộng, độ sâu, độ phức tạp của cây Vì vậy một câu hỏi đặt ra là thứ tự thuộc tính nào được chọn để triển khai cây sẽ là tốt nhất Vấn

đề này sẽ được giải quyết trong thuật toán ID3 dưới đây

3.2 Thuật toán ID3

3.2.1 Giới thiệu

Thuật toán ID3 do Ross Quinlan đề xuất là một giải thuật đơn giản nhưng tỏ ra

thành công trong nhiều lĩnh vực ID3 biểu diễn các khái niệm (concept) ở dạng các cây

quyết định, nó 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ểmtra 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 thuật toán ID3 là học cây quyết định từ một tập các ví dụ

rèn luyện (training example) hay còn gọi là dữ liệu rèn luyện (training data) Đơn giản

hơn, thuật giải có:

Đầu vào: là một tập hợp các ví dụ gồm các thuộc tính mô tả một tình huống haymộ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 phân loại đúng đắn các ví dụ trong tập dữ liệu rèn luyện

3.2.2 Ví dụ bài toán chơi Golf để giải thích Cây quyết định

Xét bài toán phân loại xem “có đi chơi Golf” ứng với thời tiết nào đó hay không.Tập dữ liệu 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:quang cảnh, nhiệt độ, độ ẩm, gió và thuộc tính phân loại “ chơi Golf” (có, không) “Có”nghĩa là có đi chơi Golf ứng với thời tiết nào đó, “Không” nghĩa là ngược lại Giá trị phânloại ở đây có hai loại là (có, không) hay còn nói phân loại của tập khái niệm này là thành

hai lớp (classes) Thuộc tính “chơi Golf “ còn được gọi là thuộc tính đích (target attribute).

Mỗi thuộc tính đều có một tập các giá trị hữu hạn Thuộc tính quang cảnh có ba giátrị (âm u, mưa, nắng), nhiệt độ có ba giá trị (nóng, ấm, mát), độ ẩm có hai giá trị (cao,

trung bình) và gió có hai giá trị (mạnh, nhẹ) Các giá trị này chính là ký hiệu (symbol)

dùng để biểu diễn bài toán

Trang 22

Quang cảnh Nhiệt độ Độ ẩm Gió Chơi Golf

Mục tiêu của bài toán này là dựa theo thông tin thời tiết để đoán xem khi nào sẽ cóngười đến chơi Golf Để giải quyết vấn đề này người ta đã đưa ra một mô hình Cây quyếtđịnh để kiểm tra khi nào chơi Golf và khi nào không chơi Golf

Trang 23

Từ tập dữ liệu 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ụ Ứng với một tập dữ liệu rèn luyện sẽ có nhiều cây quyết định để phânloại đúng các ví dụ Kích cỡ của cây quyết định khác nhau tùy thuộc vào thứ tự của cáckiểm tra trên thuộc tính.

3.2.3 Thuật giải 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 từ trên xuố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ụ rè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 đó ID3chọn một thuộc tính để kiểm tra tại nút hiện hành 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

Không Không

Nhẹ

Trang 24

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ằmtrong 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âyquyế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àmgốc của cây

ID3 xây dựng Cây quyết định theo thuật giải 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

return một nút lá được gán nhãn bởi đó 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ùng_V các ví dụ có giá trị V tại thuộc tính P;

gọi induce_tree(phân vùng_V, tập_thuộc_tính), gắn thuộc

tính vào nhánh V

end end

end

 Các khả năng có thể có của các phân vùng (partition):

Trang 25

Trong quá trình xây dựng Cây định danh, phân vùng của một nhánh mới có thể códạng sau:

- Có các ví dụ thuộc các lớp khác nhau (như có cả ví dụ âm và dương)

- Tất cả các ví dụ đều thuộc cùng một lớp (như toàn â hoặc toàn dương)

- Không có ví dụ nào => giải thuật trả về mặc nhiên

- Không còn thuộc tính nào => nghĩa là dữ liệu bị nhiễu, khi đó giải thuật phải sửdụng một luật nào đó để xử lý, chẳng hạn như luật đa số (lớp nào có nhiều ví dụhơn sẽ được dùng để gắn nhãn cho nút lá trả về)

3.2.4 Thuộc tính dùng để phân loại tốt nhất

Entropy đo tính thuần nhất của tập ví dụ:

Khái niện Entropy của một tập S được định nghĩa trong lý thuyết thông tin là sốlượng mong đợi các bit cần thiết để mã hóa thông tin về lớp của một thành viên rút ra mộtcách ngẫu nhiên từ tập S Trong trường hợp tối ưu, mã có độ dài ngắn nhất Thwo lýthuyết thông tin, mã có độ dài tối ưu là mã gán –log2p bits cho thông điệp có xác xuất là

p

Trong trường hợp S là tập ví dụ thì thành viên của S là một ví dụ, mỗi ví dụ thuộcmột lớp hay có một gía trị phân loại

 Entropy có giá trị nằm trong khoảng [0 1]

 Entropy(S) = 0  tập ví dụ S chỉ toàn ví dụ thuộc cùng một loại, hay S là thuầnnhất

 Entropy(S) = 1  tập ví dụ S có các ví dụ thuộc các loại khác nhau với độ pha trộn

là cao nhất

 0 < Entropy(S) < 1  tập ví dụ S có số lượng ví dụ thuộc các loại khác nhau làkhông bằng nhau

Trang 26

Để đơn giản ta xét trường hợp các ví dụ của S chỉ thuộc loại âm (-) hoặc dương (+).

Khi đó, Entropy đo độ pha trộn của tập S theo công thức sau:

Entropy(S) = -p + log 2 p + - p - log 2 p

-Một cách tổng quát hơn, nếu các ví dụ của tập S thuộc nhiều hơn hai loại, giả sử là có c

giá trị phân loại thì công thức Entropy tổng quát là:

Entropy(S) = Lượng thông tin thu được đo mức độ giảm Entropy mong đợi:

Entropy là một số đo độ pha trộn của một tập ví dụ Phép đo này gọi là lượng thông tinthu được hay còn gọi là lượng giảm Entropy mong đợi gây ra bởi việc phân chia các ví dụtheo thuộc tính

Gain(S,A) của một tập thuộc tính A, trên tập S, được định nghĩa như sau:

Gain(S,A) = Entropy(S) -

Trong đó Value(A) là tập hợp có thể có các giá trị của thuộc tính A, Sv là tập con của

S chứa các ví dụ có thuộc tính A mang gí trị v

Trang 27

Trở lại ví dụ ban đầu, nếu không sử dụng Entropy để xác định độ thuần nhất thì có thểxảy ra trường hợp cây quyết định có chiều cao lớn Ta áp dụng phương thức tính Entropy

để xác định chắc chắn thuộc tính nào được chọn trong quá trình tạo Cây quyết định Đầutiên ta tính độ thuần nhất của tập dữ liệu:

Entropy(S) = - (9/14)log2(9/14) – (5/14)log2(5/14) = 0.940

Từ đó ta tính tiếp Gain cho từng thuộc tính để suy ra thuộc tính nào được chọn làm nútgốc

Gain(S, Quang cảnh) = Entropy(S) – (5/14) Entropy(SNắng) – (4/14) Entropy(SÂm u) –

(5/15) Entropy(SMưa) = 0.940 – (5/14)(5/14)(-(2/5)log2(2/5) – (3/5)log2(3/5)) – (4/14)(0)– (5/14)(-(3/5)log2(3/5) – (2/5)log2(2/5))

Trang 28

Gain(S, Nhiệt độ) = Entropy(S) – (4/14) × Entropy(SNóng) – (6/14) × Entropy(SÁm áp) –

(4/14) × Entropy(SMát)

= 0.940 – (4/14)(1) - (6/14)(-(4/6)log2(4/6) – (2/6)log2(2/6)) – (4/14)( – (3/4)log2(3/4) – (1/4)log2(1/4))

Trang 29

Gain(S, Độ ẩm) = Entropy(S) – (7/14) × Entropy(SCao) – (7/14) × Entropy(STrung bình)

= 0.940 – (7/14)(1) - (7/14)(-(3/7)log2(3/7) – (4/7)log2(4/7)) - (6/7)log2(6/7) – (1/7)log2(1/7))

= 0.151

Ta thấy Gain(S, Quang cảnh) là lớn nhất  lấy thuộc tính Quang cảnh làm nút gốc.

 Sau khi lập được cấp đầu tiên của Cây quyết định ta xét nhánh Nắng

Entropy(SNắng) = – (3/5) log2(3/5) – (2/5) log2(2/5)

Trang 30

Gain(SNắng , Nhiệt độ) = Entropy(SNắng) – (2/5) × Entropy(SNóng) – (2/5) × Entropy(SÁm áp) –(1/5) × Entropy(SMát)

Trang 31

Gain(SNắng , Gió) = Entropy(SNắng) – (2/5) × Entropy(SNhẹ) – (3/5) × Entropy(SMạnh)

Trang 33

Entropy(SMưa) = -(3/5) log2 (3/5) – (2/5) ) log2 (2/5)

= 0.991 Gain(SMưa , Nhiệt độ) = Entropy(Smưa) – (3/5) × Entropy(SÁm áp) – (2/5) × Entropy(SMát)

Trang 34

Gain(SMưa , Gió) = Entropy(SMưa) – (3/5) × Entropy(SNhẹ) – (2/5) × Entropy(SMạnh)

Trang 35

Luật rút ra từ Cây quyết định:

Không

 Lưu ý: một phiên bản khác của thuật toán ID3 sử dụng Informatic Gain thay cho

En-tropy để chọn thuộc tính quyết định Công thức tính Informatic Gain như sau:

Gain(a) = Entropy(S) – Entropy(A)

Gió

Có Không

Trang 36

Trong đó: S là tập mẫu và A là một thuộc tính Entropy(S): là độ hỗn loạn của tập S Entropy(A): là độ hỗn loạn trung bình của thuộc tính A (cách tính như trên) Nguyên tắc

thực hiện: tương tự như trên ngoại từ Gain lớn nhất.

3.2.5 Đánh giá hiệu suất của Cây quyết định

Một Cây quyết định sinh ra bởi ID3 được đánh giá là tốt nếu như cây này có khả năngphân loại đúng được các trường hợp hay ví dụ sẽ gặp trong tương lai, hay cụ thể hơn là cókhả năng phân loại đúng các ví dụ không nằm trong tập dữ liệu rèn luyện

Để đánh giá hiệu suất của một Cây quyết định người ta thường sử dụng một tập ví dụtách rời, tập này khác với tập dữ liệu rèn luyện, để đánh giá khả năng phân loại của cây

trên các ví dụ của tập này Tập dữ liệu này gọi là tập kiểm tra (validation set) Thông

thường, tập dữ liệu sẵn có sẽ được chia thành hai tập: rập rèn luyện thường chiếm 2/3 số

ví dụ và tập kiểm tra chiếm 1/3

3.2.6 Khi nào nên sử dụng ID3

Giải thuật ID3 là một giải thuật học đơn giản nhưng nó chỉ phù hợp với một lớp cácbài toán hay vấn đề có thể biểu diễn bằng ký hiệu Chính vì vậy, giải thuật này thuộc cách

tiếp cận cách giải quyết vấn đề dựa trên ký hiệu (symbol – based approach).

Tuy nhiên, khác với một số giải thuật khác cũng thuộc tiếp cận này, ID3 sử dụng các

ví dụ rèn luyện ở dạng xác suất nên nó có ưu điểm là ít bị ảnh hưởng bởi một vài dữ liệunhiễu Vì vậy, tập dữ liệu rèn luyện ở đây có thể chứa lỗi hoặc có thể thiếu môt vài giá trị

ở một số thuộc tính nào đó Một giải pháp thường được áp dụng đối với các dữ liệu bịthiếu là sử dụng luật đa số, chương trình tiền xử lý dữ liệu sẽ điền vào các vị trí còn trốnggiá trị có tần số xuất hiện cao nhất của thuộc tính đó

Ngày đăng: 20/05/2015, 08:39

HÌNH ẢNH LIÊN QUAN

Bảng dữ liệu: - Tiểu luận môn CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG ỨNG DỤNG MỘT SỐ THUẬT TOÁN TRONG MÔ HÌNH PHÂN LỚP CÂY QUYẾT ĐỊNH - CÀI ĐẶT CHƯƠNG TRÌNH DEMO THUẬT TOÁN ID3
Bảng d ữ liệu: (Trang 65)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w