Đề tài Nghiên cứu cây quyết định trong khai phá dữ liệ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ây quyết định còn có thể chuyển sang dạng biểu diễn tương đương dưới dạng tri thức là các luật If-Then. Cây quyết định là 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 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ác luật quyết định. 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. Tạo cây quyết định chính là quá trình phân tích cơ sở dữ liệu, phân lớp và đưa ra dự đoán. Cây quyết định được tạo thành bằng cách lần lượt chia (đệ quy) một tập dữ liệu thành các tập dữ liệu con, mỗi tập con được tạo thành chủ yếu từ các phần tử của cùng một lớp. Lựa chọn thuộc tính để tạo nhánh thông qua Entropy và Gain. Học bằng cây quyết định cũng là một phương pháp thông dụng trong khai phá dữ liệu. Khi đó, 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 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.

doc58 trang | Chia sẻ: tuandn | Lượt xem: 7758 | Lượt tải: 3download
Bạn đang xem trước 20 trang tài liệu Đề tài Nghiên cứu cây quyết định trong khai phá dữ liệu, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
CÂY QUYẾT ĐỊNH TỔNG QUAN VỀ CÂY QUYẾT ĐỊNH: Giới thiệu chung: 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ây quyết định còn có thể chuyển sang dạng biểu diễn tương đương dưới dạng tri thức là các luật If-Then. Cây quyết định là 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 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ác luật quyết định. 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. Tạo cây quyết định chính là quá trình phân tích cơ sở dữ liệu, phân lớp và đưa ra dự đoán. Cây quyết định được tạo thành bằng cách lần lượt chia (đệ quy) một tập dữ liệu thành các tập dữ liệu con, mỗi tập con được tạo thành chủ yếu từ các phần tử của cùng một lớp. Lựa chọn thuộc tính để tạo nhánh thông qua Entropy và Gain. Học bằng cây quyết định cũng là một phương pháp thông dụng trong khai phá dữ liệu. Khi đó, 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 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. 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. là các biến sẽ giúp ta thực hiện công việc đó. 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ô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). Ví dụ: Ta sẽ dùng một ví dụ để giải thích về cây quyết định: David là quản lý của một câu lạc bộ đánh golf nổi tiếng. Anh ta đang có rắc rối chuyện các thành viên đến hay không đến. Có ngày ai cũng muốn chơi golf nhưng số nhân viên câu lạc bộ lại không đủ phục vụ. Có hôm, không hiểu vì lý do gì mà chẳng ai đến chơi, và câu lạc bộ lại thừa nhân viên. Mục tiêu của David là tối ưu hóa số nhân viên phục vụ mỗi ngày bằng cách dựa theo thông tin dự báo thời tiết để đoán xem khi nào người ta sẽ đến chơi golf. Để thực hiện điều đó, anh cần hiểu được tại sao khách hàng quyết định chơi và tìm hiểu xem có cách giải thích nào cho việc đó hay không. Vậy là trong hai tuần, anh ta thu thập thông tin về: Quang cảnh (outlook), nắng (sunny), nhiều mây (clouded) hoặc mưa (raining)). Nhiệt độ (temperature), độ ẩm (humidity). Có gió mạnh (windy) hay không. Và tất nhiên là số người đến chơi golf vào hôm đó. David thu được một bộ dữ liệu gồm 14 dòng và 5 cột. Dữ liệu chơi golf Các biến độc lập Biến phụ thuộc Quang cảnh Nhiệt độ Độ ẩm Gió Chơi Nắng Nóng Cao Nhẹ Không Nắng Nóng Cao Mạnh Không Âm u Nóng Cao Nhẹ Có Mưa Ấm áp Cao Nhẹ Có Mưa Mát Trung bình Nhẹ Có Mưa Mát Trung bình Mạnh Không Âm u Mát Trung bình Mạnh Có Nắng Ấm áp Cao Nhẹ Không Nắng Mát Trung bình Nhẹ Có Mưa Ấm áp Trung bình Nhẹ Có Nắng Ấm áp Trung bình Mạnh Có Âm u Ấm áp Cao Mạnh Có Âm u Nóng Trung bình Nhẹ Có Mưa Ấm áp Cao Mạnh không Sau đó, để giải quyết bài toán của David, người ta đã đưa ra một mô hình cây quyết định kiểm tra khi nào chơi golf, khi nào không chơi. Cây quyết định là một mô hình dữ liệu mã hóa phân bố của nhãn lớp (cũng là y) theo các thuộc tính dùng để dự đoán. Nút gốc (nút nằm trên đỉnh) đại diện cho toàn bộ dữ liệu. Thuật toán cây phân loại phát hiện ra rằng cách tốt nhất để giải thích biến phụ thuộc Chơi (play), là sử dụng biến Quang cảnh. Phân loại theo các giá trị của biến Quang cảnh, ta có ba nhóm khác nhau: Nhóm người chơi golf khi trời nắng, nhóm chơi khi trời nhiều mây, và nhóm chơi khi trời mưa. Kết luận thứ nhất: nếu trời nhiều mây tức là âm u, người ta luôn luôn chơi golf. Và có một số người đi chơi golf cả khi trời mưa. Tiếp theo, ta lại chia nhóm trời nắng thành hai nhóm con. Ta thấy rằng khách hàng không muốn chơi golf nếu độ ẩm cao. Cuối cùng, ta chia nhóm trời mưa thành hai và thấy rằng khách hàng sẽ không chơi golf nếu trời nhiều gió. Và đây là lời giải ngắn gọn cho bài toán mô tả bởi cây phân loại. David cho phần lớn nhân viên nghỉ vào những ngày trời nắng và ẩm, hoặc những ngày mưa gió. Vì hầu như sẽ chẳng có ai chơi golf trong những ngày đó. Vào những hôm khác, khi nhiều người sẽ đến chơi golf, anh ta có thể thuê thêm nhân viên thời vụ để phụ giúp công việc. Lưu ý : ¡ Cây quyết định trên không có sự tham gia của thuộc tính “Nhiệt độ” trong thành phần cây, các thuộc tính như vậy được gọi chung là các thuộc tính dư thừa bởi vì các thuộc tính này không ảnh hưởng đến quá trình xây dựng mô hình của cây. ¡ Các thuộc tính tham gia vào quá trình phân lớp thông thường có các giá trị liên tục hay còn gọi là kiểu số (ordered or numeric values) hoặc kiểu rời rạc hay còn gọi là kiểu dữ liệu phân loại (unordered or category values). Ví dụ kiểu dữ liệu độ ẩm hay lương có thể biểu diễn bằng số thực là kiểu dữ liệu liên tục, kiểu dữ liệu giới tính là kiểu dữ liệu rời rạc (có thể rời rạc hóa thuộc tính giới tính một cách dễ dàng). Kết luận là cây quyết định giúp ta biến một biểu diễn dữ liệu phức tạp thành một cấu trúc đơn giản hơn rất nhiều. Ưu điểm 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. Người ta có thể hiểu mô hình cây quyết định sau khi được giải thích ngắn. 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 thể loại. Các kỹ thuật khác thường chuyên để 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. 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. CẤU TRÚC CỦA CÂY QUYẾT ĐỊNH: Cây quyết định là một cấu trúc được sử dụng để chia liên tiếp một tập các bản ghi lớn thành các tập con nhỏ hơn bằng cách áp dụng một chuỗi các luật đơn giản. Với mỗi phép chia liên tiếp, các tập con thu được trong tập kết quả sẽ ngày càng giống nhau. Nó có cấu trúc như sau : - Mỗi nút mang một thuộc tính (biến độc lập) - Mỗi nhánh tương ứng với một giá trị của thuộc tính - Mỗi nút lá là một lớp (biến phụ thuộc) Đối với cây quyết định, tại mỗi nút, một thuộc tính sẽ được chọn ra để phân tách tập mẫu thành những lớp khác nhau nhiều nhất có thể. Tiến hành lặp lại bước này đến khi kết thúc ta sẽ có được một tập các lớp đã được định nghĩa trước. Một trường hợp mới sẽ được phân loại dựa vào việc tìm một đường dẫn phù hợp tới nút lá. Ví dụ về cây quyết định : Bảng 1 : Dữ liệu thời tiết Quang cảnh Nhiệt độ Độ ẩm Gió Chơi Tennis Nắng Nóng Cao Nhẹ Không Nắng Nóng Cao Mạnh Không Âm u Nóng Cao Nhẹ Có Mưa Ấm áp Cao Nhẹ Có Mưa Mát TB Nhẹ Có Mưa Mát TB Mạnh Không Âm u Mát TB Mạnh Có Nắng Ấm áp Cao Nhẹ Không Nắng Mát TB Nhẹ Có Mưa Ấm áp TB Nhẹ Có Nắng Ấm áp TB Mạnh Có Âm u Ấm áp Cao Mạnh Có Âm u Nóng TB Nhẹ Có Mưa Ấm áp Cao Mạnh Không Âm u Cao Trung bình Nhẹ Mạnh Nắng Mưa Không Không Có Có Có Quang cảnh Độ ẩm Gió PHƯƠNG PHÁP XÂY DỰNG CÂY QUYẾT ĐỊNH: Việc tạo cây quyết định bao gồm 2 giai đoạn : Tạo cây và tỉa cây . Để tạo cây ở thời điểm bắt đầu tất cả những ví dụ huấn luyện là ở gốc sau đó phân chia ví dụ huấn luyện theo cách đệ qui dựa trên thuộc tính được chọn . Việc tỉa cây là xác định và xóa những nhánh mà có phần tử hỗn loạn hoặc những phần tử nằm ngoài (những phần tử không thể phân vào một lớp nào đó) . Có rất nhiều 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 - Thuộc tính được phân loại (Rời rạc hóa các thuộc tính dạng 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ựa trê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ừng việ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 lại mẫu nào tại nút. XÂY DỰNG CÂY QUYẾT ĐỊNH: Chọn thuộc tính phân tách: Lúc khởi đầu, ta có trong tay một tập 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 đầu vào. Rõ ràng nhiệm vụ đầu tiên là phải chọn ra xem thuộc tính nào đưa ra được sự phân tách tốt nhất tại nú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 xác định để 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 sự phân tách tốt cũng phải tạo ra các nút có kích cỡ tương tự nhau, hay chí ít cũng không tạo ra các nút có quá ít bản ghi. Dữ liệu gốc Phép phân tách kém Phép phân tách kém Phép phân tách tốt Thuậ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ệc chọ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 tách tốt nhất sẽ được sử dụng trong phép tá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ăng (có thể do có quá ít bản ghi) hoặc do 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ép phâ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, 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ập mẫ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ản 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ánh tương ứng với một lớp được phân loại. Phương pháp này được sử dụng thực sự trong một số phần mềm nhưng mang lại hiệu quả thấp. Một 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ể, nếu 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 (NULL) 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 vứt 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 vì 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ựa và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ép phâ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ân tách tốt thứ hai. Phép kiểm tra để chọn phép phân tách tốt nhất: - Độ lợi thông tin (Information gain) Information gain là đại lượng được sử dụng để chọn lựa thuộc tí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ớp N . 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à: Cho các tập {S1, S2 , …, Sv} là một phân hoạch trên tập 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ảng dữ liệu về dự báo thời tiết ở trên: Lớp P: Chơi_tennis = “Có” Lớp N: Chơi_tennis = “Không” Thông tin cần thiết để phân lớp một mẫu được cho là: Xét thuộc tính ‘Quang cảnh’ ta có : ‘Quang cảnh’ = ‘Nắng’: Info ([2,3]) = entropy (2/5, 3/5) = – 2/5log2(2/5) – 3/5log2(3/5) = 0.971 ‘Quang cảnh’ = ‘Âm u’: Info ([4,0]) = entropy (1, 0) = – 1log2(1) – 0log2(0) = 0 Do không có log2(0) nên ta quy ước nó bằng 0 ‘Quang cảnh’ = ‘Mưa’: Info ([3,2]) = entropy (3/5, 2/5) = – 3/5log2(3/5) – 2/5log2(2/5) = 0.971 Entropy cho phép phân tách trên thuộc tính « Quang cảnh» : = (5/14) * 0.971 + (4/14) * 0 + (5/14) * 0.971 = 0.694 Do đó ta có: = 0.940 – 0.694= 0.246 Xét thuộc tính ‘Độ ẩm’ ta có : ‘Độ ẩm’ = ‘Cao’: Info ([3,4]) = entropy (3/7, 4/7) = – 3/7log2(3/7) – 4/7log2(4/7) = 0.985 ‘Độ ẩm’ = ‘Trung bình’: Info ([6,1]) = entropy (6/7, 1/7) = – 6/7log2(6/7) – 1/7log2(1/7) = 0.592 Entropy(Độ ẩm)= 7/14 Info(3,4) + 7/14 Info(6,1) = 7/14* 0.985 + 7/14* 0.592 = 0.789 Gian(Độ ẩm) = Info(9,5) – Entropy(Độ ẩm) = 0.940 – 0.798 = 0.151 Tương tự cho các thuộc tính còn lại ta có: Rõ ràng ban đầu ta sẽ chọn thuộc tính ‘Quang cảnh’  để 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 : Không Có Có Không Cao Mạnh Nhẹ Quang cảnh Độ ẩm Gió Nắng Mưa TB Có Âm u Cây quyết định cuối cùng BIẾN ĐỔI CÂY QUYẾT ĐỊNH THÀNH LUẬT: 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 – và) Các nút lá mang tên của lớp VÍ DỤ 1: Không Có Có Không Cao Mạnh Nhẹ Quang cảnh Độ ẩm Gió Nắng Mưa TB Có Âm u R1: If (Quang cảnh=Nắng) Ù (Độ ẩm=Cao) Then Chơi=Không R2: If (Quang cảnh=Nắng) Ù (Độ ẩm=Trung bình) Then Chơi=Có R3: If (Quang cảnh=Âm u) Then Chơi=Có R4: If (Quang cảnh=Mưa) Ù (Gió=Mạnh) Then Chơi=Không R5: If (Quang cảnh=Mưa) Ù (Gió=Nhẹ) Then Chơi=Có THUẬT TOÁN PHÂN LỚP HỌC CÂY QUYẾT ĐỊNH ID3: 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ả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 (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). 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 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ớ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: 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 quang cảnh, nhiệt độ, độ ẩm và gió; và đều có một thuộc tính phân loại ‘chơi Tennis’ (có, không). ‘Không’ nghĩa là không đi chơi tennis ứng với thời tiết đó, ‘Có’ nghĩa là ngược lại. Giá trị phân loại ở đây chỉ có hai loại (có, không), 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 ‘Chơi tennis’ 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át, ấm áp), độ ẩm có hai giá trị (cao, TB) 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. Quang cảnh Nhiệt độ Độ ẩm Gió Chơi tennis Nắng Nóng Cao Nhẹ Không Nắng Nóng Cao Mạnh Không Âm u Nóng Cao Nhẹ Có Mưa Ấm áp Cao Nhẹ Có Mưa Mát TB Nhẹ Có Mưa Mát TB Mạnh Không Âm u Mát TB Mạnh Có Nắng Ấm áp Cao Nhẹ Không Nắng Mát TB Nhẹ Có Mưa Ấm áp TB Nhẹ Có Nắng Ấm áp TB Mạnh Có Âm u Ấm áp Cao Mạnh Có Âm u Nóng TB Nhẹ Có Mưa Ấm áp Cao Mạnh Không 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 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. 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 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ân loạ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â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. 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 (cây QĐ) 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ụ 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 đó. 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 QĐ đơ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. * 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 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