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

Xây dựng cây quyết định dùng thuật toán sinh cây ID3

33 1,6K 11

Đ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 33
Dung lượng 431,18 KB

Nội dung

Thuật toán SLIQ có thể phân lớp rất hiệu quả đối với các tập dữ liệu lớn vàkhông phụ thuộc vào số lượng lớp, số lượng thuộc tính và số lượng mẫu trongtập dữ liệu... Tuy nhiên thuật toán

Trang 1

Đại Học Công Nghệ Thông Tin Đại Học Quốc Gia Thành Phố Hồ Chí Minh

TP HCM 5/2012

Đề tàiXây dựng cây quyết định dùng thuật toán sinh cây ID3

Trang 2

Lời cảm ơn

Lời đầu tiên em xin chân thành cảm ơn thầy Hoàng Kiếm đã truyền đạt cho em những bài học thật bổ ích với những câu truyện đầy tính sáng tạo và lý thú.

Cảm ơn nhà trường đã tạo điều kiện cho em cùng các bạn trong lớp có thể học tập

và tiếp thu những kiến thức mới.

Em cũng chân thành cảm ơn các bạn trong lớp đã chia sẻ cho nhau những tài liệu

và hiểu biết về môn học để cùng hoàn thành tốt môn học này.

Trong thời gian vừa qua mặc dù em đã cố gắng rất nhiều để hoàn thành tốt đề tài của mình, song chắc chắn kết quả không tránh khỏi những thiếu sót Em kính mong được

sự cảm thông và tận tình chỉ bảo của thầy.

TP.Hồ Chí Minh Tháng 5/2012

Học viên thực hiện Trương Lê Hưng Lớp Cao Học khóa 6

Trang 3

Nhận xét

-Lời mở đầu

Trang 4

Trong nhiều năm qua, cùng với sự phát triển không ngừng của công nghệthông tin và ứng dụng trong nhiều lĩnh vực của đời sống và xã hội, thì lượng dữliệu được các cơ quan thu thập và lưu trữ ngày càng nhiều lên Tuy nhiên phần lớn

dữ liệu thông tin đó không được sử dụng hoặc không biết cách khai thác sử dụng Ngày nay công nghệ đã phát triển một khuynh hướng kỹ thuật mới đó là Kỹthuật phát hiện tri thức và khai phá dữ liệu (KDD - Knowledge Discovery andData Mining) Các tri thức mà khai thác dữ liệu mang lại có thể hỗ trợ trong nhiềuhoạt động xã hội trong việc ra quyết định và trả lời những câu hỏi trước đây tốnnhiều thời gian để xử lý

Cây quyết định là một công cụ phổ biến và mạnh mẽ được sử dụng trong bàitoán phân loại Ưu điểm lớn của cây quyết định là thể hiện được các luật Các luậtnày dễ dàng được diễn đạt để con người có thể hiểu được chúng, hiểu được kếtquả của quá trình khai thác dữ liệu

Trong bài thu hoạch này em xin được áp dụng thuật toán ID3 để xây dưng câyquyết định

Nội dung bài thu hoạch bao gồm :

Phần 1 : Cây quyết định

Phần 2 : Xây dựng cây quyết định bằng thuật toán ID3

Phần 3 : Xây dựng chương trình Demo

Phần 4 : Tổng kết

Trang 5

Mục lục

Phần I Cây quyết định 6

1 Giới thiệu 6

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

3 Các thuật toán cây quyết định 7

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

5 Xây dựng một cây quyết định 11

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

Phần II Xây dựng cây quyết định bằng thuật toán ID3 13

1 Giới thiệu 13

2 Entropy 16

3 Information Gain 18

4 Giải thuật ID3 20

5 Ví dụ sử dụng giải thuật ID3 21

6 Đánh giá hiệu suất cây quyết định 26

7 Các vấn đề trong ID3 27

8 Khi nào sử dụng ID3 27

Phần III Xây dựng chương trình Demo 29

1 Yêu cầu của chương trình 29

2 Quá trình thực hiện 30

3 Kết quả 31

Phần IV Tổng kết 32

1 Đánh giá 32

2 Hướng phát triển 32

Tài liệu tham khảo 33

Trang 6

Phần I Cây quyết định

1 Giới thiệu

Cây quyết định (decision tree) là một phương pháp rất mạnh và phổ biến

cho cả hai nhiệm vụ của khai phá dữ liệu là phân loại và dự báo Mặt khác, câyquyết định còn có thể chuyển sang dạng biểu diễn tương đương dưới dạng trithức là các luật If-Then

Trong lĩnh vực học máy (machine learning), 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

Cây quyết định có cấu trúc biễu diễn dưới dạng cây Trong đó, mỗi nút

trong (internal node) biễu diễn một thuộc tính, nhánh (branch) biễu diễn giá trị

có thể có của thuộc tính, mỗi nút lá (leaf node) biểu diễn các lớp quyết định và đỉnh trên cùng của cây gọi là gốc (root) Cây quyết định có thể được dùng để

phân lớp bằng cách xuất phát từ gốc của cây và di chuyển theo các nhánh chođến khi gặp nút lá Trên cơ sở phân lớp này chúng ta có thể chuyển đổi về cácluật quyết định

Ví dụ: cây quyết định về việc chơi tennis

Trang 7

Hình 1.1: Cây quyết định về việc chơi tennis

2 Cá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ôinhà 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 kết quả việc dự đoán 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 haythua)

3 Các thuật toán cây quyết định

Một vài thuật toán xây dựng cây quyết định như:

a Thuật toán CLS

Thuật toán này được Hovland và Hint giới thiệu trong Concept learning

System (CLS) vào những năm 50 của thế kỷ 20 Sau đó gọi tắt là thuật toán

CLS Thuật toán CLS được thiết kế theo chiến lược chia để trị từ trên xuống

Trang 8

b Thuật toán ID3

Thuật toán ID3 được phát biểu bởi Quinlan (trường đại học Syney,

Australia) và được công bố vào cuối thập niên 70 của thế kỷ 20 Sau đó, thuật

toán ID3 được giới thiệu và trình bày trong mục Induction on decision trees,

machine learning năm 1986 ID3 được xem như là một cải tiến của CLS với

khả năng lựa chọn thuộc tính tốt nhất để tiếp tục triển khai cây tại mỗi bước

ID3 xây dựng cây quyết định từ trên- xuống (top -down)

c Thuật toán C4.5

Thuật toán C4.5 được phát triển và công bố bởi Quinlan vào năm 1996.Thuật toán C4.5 là một thuật toán được cải tiến từ thuật toán ID3 với việc chophép xử lý trên tập dữ liệu có các thuộc tính số (numeric atributes) và và làmviệc được với tập dữ liệu bị thiếu và bị nhiễu Nó thực hiện phân lớp tập mẫu

dữ liệu theo chiến lược ưu tiên theo chiều sâu (Depth - First) Thuật toán xét tất

cả các phép thử có thể để phân chia tập dữ liệu đã cho và chọn ra một phép thử

có giá trị GainRatio tốt nhất GainRatio là một đại lượng để đánh giá độ hiệuquả của thuộc tính dùng để thực hiện phép tách trong thuật toán để phát triểncây quyết định

d Thuật toán SLIQ

Thuật toán SLIQ (Supervised Learning In Quest) được gọi là thuật toán

phân lớp leo thang nhanh Thuật toán này có thể áp dụng cho cả hai kiểu thuộcliên tục và thuộc tính rời rạc

Thuật toán này có sử dụng kỹ thuật tiền xử lý phân loại (Pre sorting) trước

khi xây dựng cây, do đó giải quyết được vấn đề bộ nhớ cho thuật toán ID3.Thuật toán SLIQ có sử dụng giải thuật cắt tỉa cây hữu hiệu

Thuật toán SLIQ có thể phân lớp rất hiệu quả đối với các tập dữ liệu lớn vàkhông phụ thuộc vào số lượng lớp, số lượng thuộc tính và số lượng mẫu trongtập dữ liệu

Trang 9

e Đánh giá chung các thuật toán xây dựng cây quyết định

Các thuật toán xây dựng cây quyết định đều có những điểm mạnh và điểmyếu riêng của nó

- Thuật toán CLS đây là một trong những thuật toán ra đời sớm nhất Nóchỉ áp dụng cho các CSDL có các thuộc tính nhỏ, giá trị các thuộc tính dạngphân loại hay rời rạc Còn đối với các CSDL lớn và có chứa các thuộc tính màgiá trị của nó là liên tục thì CLS làm việc không hiệu quả.Thuật toán có thể chocác kết quả khác nhau với cùng một tập dữ liệu đầu vào Bởi vì, thuật toán nàychưa có tiêu chí để lựa chọn thuộc tính trong quá trình xây dựng cây Nhưngđây là thuật toán đơn giản, dễ cài đặt, phù hợp trong việc hình thành ý tưởng vàgiải quyết những nhiệm vụ đơn giản

- Thuật toán ID3: trong thuật toán ID3, Quinlan đã khắc phục được hạn chế

của thuật toán CLS (ID3 được xem là phiên bản cải tiến của CLS) Thuật toán

này làm việc rất có hiệu quả, nó cho kết quả tối ưu hơn thuật toán CLS Khi ápdụng thuật toán ID3 cho cùng một tập dữ liệu đầu vào và thử nhiều lần thì chocùng một kết quả Bởi vì, thuộc tính ứng viên được lựa chọn ở mỗi bước trongquá trình xây dựng cây được lựa chọn trước Tuy nhiên thuật toán này cũngchưa giải quyết được về vấn đề thuộc tính số, liên tục, số lượng các thuộc tínhcòn bị hạn chế và giải quyết hạn chế với vấn đề dữ liệu bị thiếu hoặc bị nhiễu

- Thuật toán C4.5: Để tiếp tục khắc phục những nhược điểm của thuật toánID3, Quinlan đã đưa ra thuật toán C4.5(C4.5 là sự cải tiến cho thuật toán ID3

và cọi là phiên bản sau của ID3) Trong thuật toán này đã giải quyết được vấn

đề làm việc với thuộc tính số(liên tục), thuộc tính có nhiều giá trị, và vấn đề dữliệu bị thiếu hoặc bị nhiễu Trong C4.5 thực hiện việc phân ngưỡng với thuộctính số bằng phép tách nhị phân đưa vào đại lượng GainRatio thay thế cho đạilượng Gain của ID3 Để giải quyết được vấn đề thuộc tính có nhiều giá trị.Ngoài ra C4.5 còn có bước cắt tỉa nhánh không phù hợp Tuy nhiên yếu điểm

Trang 10

của thuật toán này là làm việc không hiệu quả với những CSDL lơn vì chưagiải quyết được vấn đề bộ nhớ.

- Thuật toán SLIQ phân lớp rất có hiệu quả đối với các tập dữ liệu lớn, nólàm việc không phù thuộc vào số lượng các lớp, các thuộc tính và số lượng bảnghi trong tập dữ liệu SLIQ đã cải thiện được vấn đề về bộ nhớ vì có 3 pha tiền

xử lý phân loại, tại một thời điểm chỉ có 1 danh sách lớp thường trú trong bộnhớ SLIQ có kỹ thuật cắt tỉa cây mô tả độ dài tối thiểu MDL, rất hữu hiệu Nó

là thuật toán phân lớp nhanh, chính xác, chi phí thấp Tuy nhiên việc cài đặtphức tạp, áp dụng cho các cơ sở dữ liệu lớn

Mặc dù đã có nhiều cải tiến, nhiều thuật toán xây dựng cây quyết định rađời, nhưng nói chung vấn còn nhiều vấn đề khó khăn phức tạp và nhiều tháchthức trong khai phá dữ liệu bằng cây quyết định Như vấn đề dữ liệu bị thiếugiá trị đối với các thuộc tính trong CSDL Vấn đề các CSDL rất lớn về sốlượng các thuộc tính và về số lượng các bản ghi, vấn đề về bộ nhớ…Nhữngvấn đề này luôn làm đau đầu những nhà khoa học Trên thực tế các thuật toánxây dựng cây quyết định vấn đang được cải tiến, nghiên cứu và phát triển

4 Ư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ó một số ư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ác kỹ thuật khác thường đòi hỏichuẩ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ó 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 Nếu có thể quan sát một tìnhhuống cho trước trong một mô hình, thì có thể dễ dàng giải thích điều kiện đóbằng logic Boolean Mạng nơ-ron là một ví dụ về mô hình hộp đen, do lời giảithích cho kết quả quá phức tạp để có thể hiểu được

Trang 11

- 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ểmtra thống kê.

- Cây quyết định có thể xử lý tốt một lượng dữ liệu lớn trong thời gianngắ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 trongmột thời gian đủ ngắn để cho phép các nhà chiến lược đưa ra quyết định dựatrên phân tích của cây quyết định

5 Xây dựng một cây quyết định

Có nhiều thuật toán khác nhau để xây dựng cây quyết định như: CLS, ID3,C4.5, SLIQ, SPRINT, …Nhưng nói chung 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:

gốc cho đến mỗi nút lá, thực hiện chia một cách đệ quy tập mẫu dữ liệu huấnluyện cho đến khi các mẫu ở mối nút lá thuộc cùng một lớp

hóa và khái quát hóa từ đó làm tăng độ chính xác của cây quyết định bằng cáchloại bỏ sự phụ thuộc vào mức độ lỗi (noise) của dữ liệu đào tạo mang tính chấtthống kê, hay những sự biến đổi mà có thể là đặc tính riêng biệt của dữ liệuđào tạo Giai đoạn này chỉ truy cập dữ liệu trên cây quyết định đã được pháttriển trong giai đoạn trước và quá trình thực nghiệm cho thấy giai đoạn nàykhông tốn nhiều tài nguyên tính toán

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êntổng số mẫu đưa vào

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

Có thể chuyển đổi qua lại giữa mô hình cây quyết định và mô hình dạngluật (IF …THEN…) Hai mô hình này là tương đương nhau

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

IF (Outlook = SUNNY) AND (HUMINITY <= 70) THEN PLAY = YES

Trang 12

IF (Outlook = SUNNY) AND (HUMINITY > 70) THEN PLAY = NO

IF (Outlook = OVERCAST) THEN PLAY = YES

IF (Outlook = RAIN) AND (WINDY = TRUE) THEN PLAY = NO

IF (Outlook = RAIN) AND (WINDY = FALSE) THEN PLAY = YES

Trang 13

Phần II Xây dựng cây quyết định bằng thuật toán ID3.

1 Giới thiệu.

Giải thuật quy nạp cây ID3 (gọi tắt là ID3) là một giải thuật học đơn giảnnhư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áchbiểu diễn tri thức học được của nó, tiếp cận của nó trong việc quản lý tính phứctạp, heuristic của nó dùng cho việc chọn lựa các khái niệm ứng viên, và tiềmnă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ụ rèn luyện (training example) hay còn gọi là dữ liệu rèn luyện (training

data)

tình huống, hay một đối tượng nào đó, và một giá trị phân loại của nó

liệu rè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 có đi chơi tennis ứng vớithờ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:

Trang 14

Tập dữ liệu này bao gồm 14 ví dụ tương ứng với 14 ngày Mỗi ví dụ biểudiễn cho tình trạng thời tiết của ngày hôm đó gồm các thuộc tính quang

cảnh(Outlook), nhiệt độ(Temperature), độ ẩm(Humidity) và gió(Wind) và đều

có một thuộc tính phân loại chơi Tennis(Playtennis) có hoặc không ‘No’ nghĩa

là không đi chơi tennis ứng với thời tiết ngày hôm đó, ‘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 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 ‘Playtennis’ 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 Outlook có

ba giá trị (Rain, Overcast, Sunny), nhiệt độ có ba giá trị (nóng, mát, ấm áp), độ

ẩm có hai giá trị (cao, TB) và gió có hai giá trị (mạnh, nhẹ) Các giá trị nàychính là ký hiệu (symbol) dùng để biểu diễn bài toán

Từ tập dữ liệu rè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 trongtươ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ộtcây quyết định ví dụ mà giải thuật ID3 có thể quy nạp được là:

Trang 15

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ộctính nào đó, mỗi giá trị có thể có của thuộc tính đó tương ứng với một nhánhcủ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 đó, haychính là giá trị của thuộc tính phân loại

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 ID3trên một tập dữ liệu rèn luyện khác

Ứng với một tập dữ liệu rèn luyện sẽ có nhiều cây quyết định có thể phânloại đúng tất cả các ví dụ trong tập dữ liệu rèn luyện Kích cỡ của các câyquyế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 rè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à có một lá cho mỗi ví dụ Với cách tiếpcậ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’,

Trang 16

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 Vậy, tanên học một cây quyết định như thế nào là tốt?

Occam’s razor và một số lập luận khác đều cho rằng ‘giả thuyết có khả

năng nhất là giả thuyết đơn giản nhất thống nhất với tất cả các quan sát’, ta

nên luôn luôn chấp nhận những câu trả lời đơn giản nhất đáp ứng một cáchđúng đắn dữ liệu của chúng ta Trong trường hợp này là các giải thuật học cốgắng tạo ra cây quyết định nhỏ nhất phân loại một cách đúng đắn tất cả các ví

dụ đã cho

2 Entropy.

Khái niệm 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 bít cần thiết để mã hóa thông tin về lớp của mộtthành viên rút ra một cá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 Theo 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 suấ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ộc một lớp hay có một giá trị phân loại

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

Ngày đăng: 10/04/2015, 16:27

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w