Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 60 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
60
Dung lượng
795,74 KB
Nội dung
CHƢƠNG 1: Tổng quan học máy 1.1 Tổng quan Học máy (Machine Learning) ngành khoa học nghiên cứu thuật tốn cho phép máy tính học khái niệm (concept) Phân loại: Có hai loại phương pháp học máy Phương pháp quy nạp: Máy học/phân biệt khái niệm dựa liệu thu thập trước Phương pháp cho phép tận dụng nguồn liệu nhiều sẵn có Phương pháp suy diễn: Máy học/phân biệt khái niệm dựa vào luật Phương pháp cho phép tận dụng kiến thức chuyên ngành để hỗ trợ máy tính Hiện nay, thuật tốn cố gắng tận dụng ưu điểm hai phương pháp Các ngành khoa học liên quan: Lý thuyết thống kê: kết xác suất thống kê tiền đề cho nhiều phương pháp học máy Đặc biệt, lý thuyết thống kê cho phép ước lượng sai số phương pháp học máy Các phương pháp tính: thuật tốn học máy thường sử dụng tính tốn số thực/số ngun liệu lớn Trong đó, tốn như: tối ưu có/khơng ràng buộc, giải phương trình tuyến tính v.v… sử dụng phổ biến Khoa học máy tính: sở để thiết kế thuật toán, đồng thời đánh giá thời gian chạy, nhớ thuật toán học máy Các nhóm giải thuật học máy: Học có giám sát: Máy tính xem số mẫu gồm đầu vào (input) đầu (output) tương ứng trước Sau học xong mẫu này, máy tính quan sát đầu vào cho kết Học khơng giám sát: Máy tính xem mẫu khơng có đầu ra, sau máy tính phải tự tìm cách phân loại mẫu mẫu Học nửa giám sát: Một dạng lai hai nhóm giải thuật Học tăng cường: Máy tính đưa định hành động (action) nhận kết phản hồi (response/reward) từ mơi trường (environment) Sau máy tính tìm cách chỉnh sửa cách định hành động 1.2Các ứng dụng học máy Ứng dụng: Học máy có ứng dụng rộng khắp ngành khoa học/sản xuất, đặc biệt ngành cần phân tích khối lượng liệu khổng lồ Một số ứng dụng thường thấy Xử lý ngôn ngữ tự nhiên (Natural Language Processing): xử lý văn bản, giao tiếp người – máy, … Nhận dạng (Pattern Recognition): nhận dạng tiếng nói, chữ viết tay, vân tay, thị giác máy (Computer Vision) … Tìm kiếm (Search Engine) Chẩn đốn y tế: phân tích ảnh X-quang, hệ chuyên gia chẩn đoán tự động Tin sinh học: phân loại chuỗi gene, q trình hình thành gene/protein Vật lý: phân tích ảnh thiên văn, tác động hạt … Phát gian lận tài (financial fraud): gian lận thẻ tỉn dụng Phân tích thị trường chứng khốn (stock market analysis) Chơi trò chơi: tự động chơi cờ, hành động nhân vật ảo Rôbốt: tổng hợp nhiều ngành khoa học, học máy tạo nên hệ thần kinh/bộ não người máy CHƢƠNG 3: Phƣơng pháp học theo định 3.1 Phƣơng pháp học theo định 3.1.1 Giới thiệu chung Trong lĩnh vực học máy, định kiểu mơ hình dự báo (predictive model), nghĩa ánh xạ từ quan sát vật/hiện tượng tới kết luận giá trị mục tiêu vật/hiện tượng Mỗi nút (internal node) tương ứng với biến; đường nối với nút thể giá trị cụ thể cho biến Mỗi nút đại diện cho giá trị dự đoán biến mục tiêu, cho trước giá trị biến biểu diễn đường từ nút gốc tới nút Kỹ thuật học máy dùng định gọi học định, hay gọi với tên ngắn gọn định Học định phương pháp thông dụng khai phá liệu Khi đó, định mơ tả cấu trúc cây, đó, đại diện cho phân loại cành đại diện cho kết hợp thuộc tính dẫn tới phân loại Một định học cách chia tập hợp nguồn thành tập dựa theo kiểm tra giá trị thuộc tính Quá trình lặp lại cách đệ qui cho tập dẫn xuất Quá trình đệ qui hồn thành khơng thể tiếp tục thực việc chia tách nữa, hay phân loại đơn áp dụng cho phần tử tập dẫn xuất Một phân loại rừng ngẫu nhiên (random forest) sử dụng số định để cải thiện tỉ lệ phân loại Cây định phương tiện có tính mơ tả dành cho việc tính tốn xác suất có điều kiện Cây định mơ tả kết hợp kỹ thuật toán học tính tốn nhằm hỗ trợ việc mơ tả, phân loại tổng quát hóa tập liệu cho trước Dữ liệu cho dạng ghi có dạng: ( x, y ) ( x1 , x2 , x3 , , xk , y ) Biến phụ thuộc (dependant variable) y biến mà cần tìm hiểu, phân loại hay tổng qt hóa x1 , x2 , x3 biến giúp ta thực cơng việc 3.1.2Các kiểu định Cây định cịn có hai tên khác: Cây hồi quy (Regression tree): ước lượng hàm giá có giá trị số thực thay sử dụng cho nhiệm vụ phân loại (ví dụ: ước tính giá nhà khoảng thời gian bệnh nhân nằm viện) Cây phân loại (Classification tree): y biến phân loại như: giới tính (nam hay nữ), kết trận đấu (thắng hay thua) 3.1.3 Ƣu điểm định So với phương pháp khai phá liệu khác, định phương pháp có số ưu điểm: Cây định dễ hiểu Người ta hiểu mơ hình định sau giải thích ngắn Việc chuẩn bị liệu cho định không cần thiết Các kỹ thuật khác thường địi hỏi chuẩn hóa liệu, cần tạo biến phụ (dummy variable) loại bỏ giá trị rỗng Cây định xử lý liệu có giá trị số liệu có giá trị tên thể loại Các kỹ thuật khác thường chuyên để phân tích liệu gồm loại biến Chẳng hạn, luật quan hệ dùng cho biến tên, mạng nơ-ron dùng cho biến có giá trị số Cây định mô hình hộp trắng Nếu quan sát tình cho trước mơ hình, dễ dàng giải thích điều kiện logic Boolean Mạng nơ-ron ví dụ mơ hình hộp đen, lời giải thích cho kết phức tạp để hiểu Có thể thẩm định mơ hình kiểm tra thống kê Điều làm cho ta tin tưởng vào mơ hình Cây định xử lý tốt lượng liệu lớn thời gian ngắn Có thể dùng máy tính cá nhân để phân tích lượng liệu lớn thời gian đủ ngắn phép nhà chiến lược đưa định dựa phân tích định 3.2 Các thuật toán Thuật toán CLS Thuật toán Hovland Hint giới thiệu Concept learning System (CLS) vào năm 50 kỷ 20 Sau gọi tắt thuật toán CLS Thuật toán CLS thiết kế theo chiến lược chia để trị từ xuống Thuật toán ID3 Thuật toán ID3 phát biểu Quinlan (trường đại học Syney, Australia) công bố vào cuối thập niên 70 kỷ 20 Sau đó, thuật tốn ID3 giới thiệu trình bày mục Induction on decision trees, machine learning năm 1986 ID3 xem cải tiến CLS với khả lựa chọn thuộc tính tốt để tiếp tục triển khai bước ID3 xây dựng định từ trên- xuống (top -down) Thuật toán C4.5 Thuật toán C4.5 phát triển cơng bố Quinlan vào năm 1996 Thuật tốn C4.5 thuật toán cải tiến từ thuật toán ID3 với việc cho phép xử lý tập liệu có thuộc tính số (numeric atributes) và làm việc với tập liệu bị thiếu bị nhiễu Nó thực phân lớp tập mẫu 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 phép thử để phân chia tập liệu cho chọn phép thử có giá trị GainRatio tốt GainRatio đại lượng để đánh giá độ hiệu thuộc tính dùng để thực phép tách thuật toán để phát triển định Thuật toán SLIQ[5] Thuật toán SLIQ (Supervised Learning In Quest) gọi thuật toán phân lớp leo thang nhanh Thuật tốn áp dụng cho hai kiểu thuộc liên tục thuộc tính rời rạc Thuật tốn có sử dụng kỹ thuật tiền xử lý phân loại(Pre sorting) trước xây dựng cây, giải vấn đề nhớ cho thuật tốn ID3 Thuật tốn SLIQ có sử dụng giải thuật cắt tỉa hữu hiệu Thuật tốn SLIQ phân lớp hiệu tập liệu lớn không phụ thuộc vào số lượng lớp, số lượng thuộc tính số lượng mẫu tập liệu 3.3 Thuật toán ID3 3.3.1 Giới thiệu thuật toán ID3 Giải thuật quy nạp ID3 (gọi tắt ID3) giải thuật học đơn giản tỏ thành công nhiều lĩnh vực ID3 giải thuật hay cách biểu diễn tri thức học nó, tiếp cận việc quản lý tính phức tạp, heuristic dùng cho việc chọn lựa khái niệm ứng viên, tiềm việc xử lý liệu nhiễu ID3 biểu diễn khái niệm (concept) dạng định (decision tree) Biểu diễn cho phép xác định phân loại đối tượng cách kiểm tra giá trị số thuộc tính Như vậy, nhiệm vụ giải thuật ID3 học định từ tập ví dụ rèn luyện (training example) hay gọi 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 ví dụ Mỗi ví dụ bao gồm thuộc tính mơ tả tình huống, hay đối tượng đó, giá trị phân loại Đầu ra: Cây định có khả phân loại đắn ví dụ tập liệu rèn luyện, hy vọng phân loại cho ví dụ chưa gặp tương lai Ví dụ, xét tốn phân loại xem ta „có chơi tennis‟ ứng với thời tiết khơng Giải thuật ID3 học định từ tập hợp ví dụ sau: Tập liệu 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 thuộc tính quang cảnh, nhiệt độ, độ ẩm gió; có thuộc tính phân loại „chơi Tennis‟ (có, khơng) „Khơng‟ nghĩa khơng chơi tennis ứng với thời tiết đó, „Có‟ nghĩa ngược lại Giá trị phân loại có hai loại (có, khơng), hay cịn ta nói phân loại tập ví dụ khái niệm thành hai lớp (classes) Thuộc tính „Chơi tennis‟ cịn gọi thuộc tính đích (target attribute) Mỗi thuộc tính có tập 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) gió có hai giá trị (mạnh, nhẹ) Các giá trị ký hiệu (symbol) dùng để biểu diễn toán Từ tập liệu rèn luyện này, giải thuật ID3 học định có khả phân loại đắn ví dụ tập này, đồng thời hy vọng tương lai, phân loại ví dụ khơng nằm tập Một định ví dụ mà giải thuật ID3 quy nạp là: Các nút định biểu diễn cho kiểm tra thuộc tính đó, giá trị có thuộc tính tương ứng với nhánh Các nút thể phân loại ví dụ thuộc nhánh đó, giá trị thuộc tính phân loại Sau giải thuật quy nạp định, sử dụng để phân loại tất ví dụ hay thể (instance) tương lai Và định không thay đổi ta cho thực lại giải thuật ID3 tập liệu rèn luyện khác Ứng với tập liệu rèn luyện có nhiều định phân loại tất ví dụ tập liệu rèn luyện Kích cỡ định khác tùy thuộc vào thứ tự kiểm tra thuộc tính Vậy để học định phân loại tất ví dụ tập rèn luyện? Một cách tiếp cận đơn giản học thuộc lòng tất ví dụ cách xây dựng mà có cho ví dụ Với cách tiếp cận định khơng phân loại cho ví dụ chưa gặp tương lai Vì phương pháp giống hình thức „học vẹt‟, mà khơng học khái quát khái niệm cần học Vậy, ta nên học định tốt? Occam‟s razor số lập luận khác cho „giả thuyết có khả giả thuyết đơn giản thống với tất quan sát‟, ta nên luôn chấp nhận câu trả lời đơn giản đáp ứng cách đắn liệu Trong trường hợp giải thuật học cố gắng tạo định nhỏ phân loại cách đắn tất ví dụ cho Trong phần kế tiếp, vào giải thuật ID3, giải thuật quy nạp định đơn giản thỏa mãn vấn đề vừa nêu 3.3.2 Giải thuật ID3 xây dựng định từ xuống ID3 xây dựng định (cây QĐ) theo cách từ xuống Lưu ý thuộc tính nào, phân vùng tập hợp ví dụ rèn luyện thành tập tách rời, mà ví dụ phân vùng (partition) có giá trị chung cho thuộc tính ID3 chọn thuộc tính để kiểm tra nút dùng trắc nghiệm để phân vùng tập hợp ví dụ; thuật tốn xây dựng theo cách đệ quy cho phân vùng Việc tiếp tục thành viên phân vùng nằm lớp; lớp trở thành nút Vì thứ tự trắc nghiệm quan trọng việc xây dựng QĐ đơn giản, ID3 phụ thuộc nhiều vào tiêu chuẩn chọn lựa trắc nghiệm để làm gốc Để đơn giản, phần mô tả giải thuật dùng để xây dựng QĐ, với việc giả định hàm chọn trắc nghiệm thích hợp Phần trình bày heuristic chọn lựa ID3 Ví dụ, xem xét cách xây dựng QĐ ID3 từ ví dụ trước Bắt đầu với bảng đầy đủ gồm 14 ví dụ rèn luyện, ID3 chọn thuộc tính quang cảnh để làm thuộc tính gốc sử dụng hàm chọn lựa thuộc tính mơ tả phần Trắc nghiệm phân chia tập ví dụ cho thấy hình 9.2 với phần tử phân vùng liệt kê số thứ tự chúng bảng * ID3 xây dựng định theo giải thuật sau: Function induce_tree(tập_ví_dụ, tập_thuộc_tính) begin if ví dụ tập_ví_dụ nằm lớp then return nút gán nhãn lớp else if tập_thuộc_tính rỗng then return nút gán nhãn tuyển tất lớp tập_ví_dụ else begin chọn thuộc tính P, lấy làm gốc cho tại; xóa P khỏi tập_thuộc_tính; với giá trị V P begin tạo nhánh gán nhãn V; Đặt vào phân_vùngV ví dụ tập_ví_dụ có giá trị V thuộc tính P; Gọi induce_tree(phân_vùngV, tập_thuộc_tính), gắn kết vào nhánh V end end end ID3 áp dụng hàm induce_tree cách đệ quy cho phân vùng Ví dụ, phân vùng nhánh “Âm u” có ví dụ tồn dương, hay thuộc lớp „Có‟, nên ID3 tạo nút với nhãn lớp „Có‟ Cịn phân vùng 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 “Độ ẩm” để làm trắc nghiệm cho nhánh Nắng, thuộc tính Gió cho nhánh Mưa, ví dụ phân vùng nhánh thuộc lớp, nên giải thuật ID3 kết thúc ta có QĐ sau Lưu ý, để phân loại ví dụ, có QĐ khơng cần sử dụng tất thuộc tính cho, phân loại tất ví dụ * Các khả có phân vùng (partition): Trong trình xây dựng QĐ, phân vùng nhánh có dạng sau: Có ví dụ thuộc lớp khác nhau, chẳng hạn có ví dụ âm dương phân vùng “Quang cảnh = Nắng” ví dụ => giải thuật phải tiếp tục tách lần Tất ví dụ thuộc lớp, chẳng hạn toàn âm toàn dương phân vùng “Quang cảnh = Âm u” ví dụ => giải thuật trả nút với nhãn lớp Khơng cịn ví dụ => giải thuật trả Khơng cịn thuộc tính => nghĩa liệu bị nhiễu, giải thuật phải sử dụng luật để xử lý, chẳng hạn luật đa số (lớp có nhiều ví dụ dùng để gán nhãn cho nút trả về) Từ nhận xét này, ta thấy để có QĐ đơn giản, hay có chiều cao thấp, ta nên chọn thuộc tính cho tạo nhiều phân vùng chứa ví dụ thuộc lớp tốt Một phân vùng Trong trình tìm kiếm, giải thuật ID3 có xu hướng chọn định ngắn định dài Đây tính chất thiên lệch quy nạp ID3 3.3.3.5 Đánh giá hiệu suất định Một định sinh ID3 đánh giá tốt có khả phân loại trường hợp hay ví dụ gặp tương lai, hay cụ thể có khả phân loại ví dụ khơng nằm tập liệu rèn luyện Để đánh giá hiệu suất định người ta thường sử dụng tập ví dụ tách rời, tập khác với tập liệu rèn luyện, để đánh giá khả phân loại ví dụ tập Tập liệu gọi tập kiểm tra (validation set) Thơng thường, tập liệu sẵn có chia thành hai tập: tập rèn luyện thường chiếm 2/3 số ví dụ tập kiểm tra chiếm 1/3 3.3.3.6 Chuyển luật Thông thường, định chuyển dạng luật để thuận tiện cho việc cài đặt sử dụng Ví dụ định cho tập liệu rèn luyện chuyển thành số luật sau : If (Quang-cảnh =nắng) ^ (Độ ẩm = Cao) Then Chơi-Tennis = No If (Quang-cảnh =nắng) ^ (Độ ẩm = TB) Then Chơi-Tennis = Yes If (Quang-cảnh =Âm u) Then Chơi-Tennis = Yes … 3.3.3.7 Khi nên sử dụng ID3 Giải thuật ID3 giải thuật học đơn giản phù hợp với lớp tốn hay vấn đề biểu diễn ký hiệu Chính vậy, giải thuật thuộc tiếp cận giải vấn đề dựa ký hiệu (symbol – based approach) Tập liệu rèn luyện bao gồm ví dụ mơ tả cặp “Thuộc tính – giá trị”, ví dụ „Chơi tennis‟ trình bày suốt chương này, „Gió – mạnh‟, hay „Gió – nhẹ‟,… ví dụ có thuộc tính phân loại, ví dụ „chơi_tennis‟, thuộc tính phải có giá trị rời rạc, có, khơng Tuy nhiên, khác với số giải thuật khác thuộc tiếp cận này, ID3 sử dụng ví dụ rèn luyện dạng xác suất nên có ưu điểm bị ảnh hưởng vài liệu nhiễu Vì vậy, tập liệu rèn luyện chứa lỗi thiếu vài giá trị số thuộc tính Một giải pháp thường áp dụng liệu bị thiếu sử dụng luật đa số, chương trình tiền xử lý liệu điền vào vị trí cịn trống giá trị có tần số xuất cao thuộc tính Bên cạnh vấn đề trình bày phần này, ID3 cịn thảo luận nhiều vấn đề liên quan để tránh cho định không bị ảnh hưởng nhiều (overfitting) vào liệu rèn luyện, để tổng quát hơn, phân loại cho trường hợp chưa gặp Có nhiều giải pháp đưa cắt tỉa lại định sau học, cắt tỉa luật sau chuyển dạng luật Một vấn đề khác vài thuộc tính có giá trị liên tục Giải vấn đề dẫn đến việc sinh nhiều hệ sau ID3, giải thuật bật số C4.5 (Quinlan 1996) Ngoài ra, số kỹ thuật tạo để thao tác liệu nhằm tạo định khác tập liệu rèn luyện cho kỹ thuật bagging and boosting 3.4 Ví dụ minh họa 3.4.1 Phát biểu toán David quản lý câu lạc đánh golf tiếng Anh ta có rắc rối chuyện thành viên đến hay không đến Có ngày muốn chơi golf số nhân viên câu lạc lại khơng đủ phục vụ Có hơm, khơng hiểu lý mà chẳng đến chơi, câu lạc lại thừa nhân viên Mục tiêu David tối ưu hóa số nhân viên phục vụ ngày cách dựa theo thông tin dự báo thời tiết để đoán xem người ta đến chơi golf Để thực điều đó, anh cần hiểu khách hàng định chơi tìm hiểu xem có cách giải thích cho việc hay khơng Vậy hai tuần, thu thập thông tin về: Trời (outlook) (nắng (sunny), nhiều mây (overcast) mưa (raining) Nhiệt độ (temperature) độ F Độ ẩm (humidity) Có gió mạnh (windy) hay không Và số người đến chơi golf vào hơm David thu liệu gồm 14 dòng cột Bảng 1.1 Dữ liệu chơi golf Sau đó, để giải tốn David, người ta đưa mơ hình định Hình 1.1 Mơ hình định chơi golf Cây định mơ hình liệu mã hóa phân bố nhãn lớp (cũng y) theo thuộc tính dùng để dự đốn Đây đồ thị có hướng phi chu trình dạng Nút gốc (nút nằm đỉnh) đại diện cho tồn liệu Thuật tốn phân loại phát cách tốt để giải thích biến phụ thuộc, play (chơi), sử dụng biến Outlook Phân loại theo giá trị biến Outlook, ta có ba nhóm khác nhau: Nhóm người chơi golf trời nắng, nhóm chơi trời nhiều mây, nhóm chơi trời mưa 3.4.2 Minh họa xây dựng Ta có: S = [9+, 5-] Entropy(S) = entropy(9+,5-) = – p+log2p+ – p-log2p- = – (9/14)log2(9/14) – (5/14)log2(5/14) = 0.940 Values(Outlook) = Sunny, Overcast, Rain SSunny = [2+, 3-] SOvercast = [4+, 0-] SRain = [3+, 2-] Gain( S , Outlook) Entropy( S ) v | Sv | Entropy( S v ) { Sunny ,Overcast , Rain} | S | = Entropy(S) – (5/14)Entropy(SSunny) – (4/14)Entropy(SOvercast) – (5/14)Entropy(SRain) Trong đó: Entropy(S) = 0.940 Entropy(SSunny) = – (2/5)log2(2/5) – (3/5)log2(3/5) = 0.5288 + 0.4422 = 0.971 Entropy(SOvercast) = – (4/4)log2(4/4) – (0/4)log2(0/4) = + = Entropy(SRain) = – (3/5)log2(3/5) – (2/5)log2(2/5) = 0.4422 + 0.5288 = 0.971 Suy ra: Gain(S, Outlook) = 0.940 – (5/14)* 0.971 – (4/14)* – (5/14)* 0.971 = 0.246 Values(Temperature) = Hot, Mild, Cool SHot = [2+, 2-] SMild = [4+, 2-] SCool = [3+, 1-] Gain ( S , Temperature) Entropy( S ) v | Sv | Entropy( Sv ) { Hot , Mild , Cool} | S | = Entropy(S) – (4/14)Entropy(SHot) – (6/14)Entropy(SMild) – (4/14)Entropy(SCool) Trong đó: Entropy(S) = 0.940 = – (2/4)log2(2/4) – (2/4)log2(2/4) Entropy(SHot) = 0.5 + 0.5 = Entropy(SMild) = – (4/6)log2(4/6) – (2/6)log2(2/6) = 0.3896 + 0.5282 = 0.9178 Entropy(SCool) = – (3/4)log2(3/4) – (1/4)log2(1/4) = 0.3112781 + 0.5 = 0.81128 Suy ra: Gain(S, Temperature) = 0.940 – (4/14)*1 – (6/14)*0.9178 – (4/14)*0.81128 = 0.029 Values(Humidity) = High, Normal SHigh = [3+, 4-] SNormal = [6+,1-] Gain( S , Humidity) Entropy( S ) v = | Sv | Entropy( Sv ) { High, Normal} | S | Entropy(S) – (7/14)Entropy(SHigh) (7/14)Entropy(SNormal) Trong đó: Entropy(S) = 0.940 Entropy(SHigh) = – (3/7)log2(3/7) – (4/7)log2(4/7) = 0.5238 + 0.4613 = 0.9851 Entropy(SNormal) = – (6/7)log2(6/7) – (1/7)log2(1/7) = 0.1966 + 0.4010 = 0.5976 Suy ra: Gain(S, Humidity) = 0.940 – (7/14)*0.9851 – (7/14)*0.5976 = 0.151 – Values(Wind) = Weak, Strong SWeak = [6+, 2-] SStrong = [3+, 3-] Gain( S ,Wind ) Entropy( S ) v = | Sv | Entropy( Sv ) {Weak , Strong} | S | Entropy(S) – (8/14)Entropy(SWeak) – (6/14)Entropy(SStrong) Trong đó: Entropy(S) = 0.940 Entropy(SWeak) = – (6/8)log2(6/8) – (2/8)log2(2/8) = 0.3112 + 0.5 = 0.8112 Entropy(SStrong) = – (3/6)log2(3/6) – (3/6)log2(3/6) = 0.5 + 0.5 = Suy ra: Gain(S, Wind) = 0.940 – (8/14)*0.811 – (6/14)*1 = 0.048 Ta thu kết quả: Gain(S, Outlook) = 0.246 Gain(S, Temperature) = 0.029 Gain(S, Humidity) = 0.151 Gain(S, Wind) = 0.048 Ta thấy giá trị Gain(S, Outlook) lớn nên Outlook chọn làm thuộc tính kiểm tra Outlook Sunny Overcast Rain {D1, D2, D8, D9, D11} {D3, D7, D12, D13} {D4, D5, D6, D10, D14} 2+, 3- 2+, 3- 2+, 3- [2+,3-] [4+,0-] [3+,2-] Xác định thuộc tính tt1 Day Outlook Temperature Humidity Wind PlayTennis Dl Sunny Hot High Weak No D2 Sunny Hot High Strong No D8 Sunny Mild High Weak No D9 Sunny Cool Normal Weak Yes Dl1 Sunny Mild Normal Strong Yes Ta có: SSunny = {D1, D2, D8, D9, D11} = [2+, 3-] Entropy(SSunny) = entropy(2+,3-) = – p+log2p+ – p-log2p- = – (2/5)log2(2/5) – (3/5)log2(3/5) = 0.5288 + 0.4421 = 0.971 Values(Temperature) = Hot, Mild, Cool SHot = [0+, 2-] SMild = [1+, 1-] SCool = [1+, 0-] Gain( S Sunny , Temperature) Entropy( S Sunny ) v | Sv | Entropy( Sv ) { Hot , Mild , Cool} | S Sunny | = Entropy(SSunny) – (2/5)Entropy(SHot) – (2/5)Entropy(SMild) – (1/5)Entropy(SCool) Trong đó: Entropy(SSunny) = 0.971 Entropy(SHot) = – (0/2)log2(0/2) – (2/2)log2(2/2) = =0+0=0 Entropy(SMild) = – (1/2)log2(1/2) – (1/2)log2(1/2) = 0.5 + 0.5 = Entropy(SCool) = – (1/1)log2(1/1) – (0/1)log2(0/1) =0+0=0 Suy ra: Gain(SSunny, Temperature) = 0.971 – (2/5)*0 – (2/5)*1 – (1/5)*0 = 0.571 Values(Humidity) = High, Normal SHigh = [0+, 3-] SNormal = [2+,0-] Gain( S Sunny , Humidity) Entropy( S Sunny ) v | Sv | Entropy( Sv ) { High , Normal} | S Sunny | = Entropy(SSunny) – (3/5)Entropy(SHigh) – (2/5)Entropy(SNormal) Trong đó: Entropy(SSunny) = 0.971 Entropy(SHigh) = – (0/3)log2(0/3) – (3/3)log2(3/3) =0+0=0 Entropy(SNormal) = – (2/2)log2(2/2) – (0/2)log2(0/2) =0+0=0 Suy ra: Gain(SSunny, Humidity) = 0.971 – (3/5)*0 – (2/5)*0 = 0.971 Values(Wind) = Weak, Strong SWeak = [1+, 2-] SStrong = [1+, 1-] Gain( S Sunny ,Wind ) Entropy( S Sunny ) v | Sv | Entropy( Sv ) {Weak , Strong} | S Sunny | = Entropy(SSunny) – (3/5)Entropy(SWeak) – (2/5)Entropy(SStrong) Trong đó: Entropy(SSunny) = 0.971 Entropy(SWeak) = – (1/3)log2(1/3) – (2/3)log2(2/3) = 0.5278 + 0.3897 = 0.918 Entropy(SStrong) = – (1/2)log2(1/2) – (1/2)log2(1/2) = 0.5 + 0.5 = Suy ra: Gain(SSunny, Wind) = 0.971 – (3/5)*0.918 – (2/5)*1 = 0.020 Ta thu đƣợc kết quả: Gain(SSunny, Temperature) = 0.571 Gain(SSunny, Humidity) = 0.971 Gain(SSunny, Wind) = 0.020 Ta thấy giá trị Gain(SSunny, Humidity) lớn nên Humidity đƣợc chọn làm thuộc tính kiểm tra Outlook Sunny Overcast Rain {D1, D2, D8, D9, D11} {D3, D7, D12, D13} {D4, D5, D6, D10, D14} 2+, 3- 2+, 3- 2+, 3- [2+,3-] [4+,0-] Humidity Yes High [3+,2-] tt2 ? Normal {D1, D2, D8} 2+, 3[0+,3-] {D9, D11} 2+, 3[2+,0-] No Yes Hình 2.3 Một phần định sinh từ bước đầu ID3 Xác định thuộc tính tt2 Day Outlook Temperature Humidity Wind PlayTennis D4 Rain Mild High Weak Yes D5 Rain Cool Normal Weak Yes D6 Rain Cool Normal Strong No D10 Rain Mild Normal Weak Yes Dl4 Rain Mild High Strong No Bảng 3.2 Xác định thuộc tính tt2 Ta có: SRain = {D4, D5, D6, D10, D14} = [3+, 2-] Entropy(SRain) = Entropy(3+,2-) = – p+log2p+ – p-log2p- = – (3/5)log2(3/5) – (2/5)log2(2/5) = 0.4421+ 0.5288 = 0.971 Values(Temperature) = Mild, Cool SMild = [2+, 1-] SCool = [1+, 1-] Gain( S Rain , Temperature) Entropy( S Rain ) v | Sv | Entropy( Sv ) { Mild , Cool} | S Rain | = Entropy(SRain) – (3/5)Entropy(SMild) – (2/5)Entropy(SCool) Trong đó: Entropy(SRain) = 0.971 Entropy(SMild) = – (2/3)log2(2/3) – (1/3)log2(1/3) = 0.3897 + 0.5278 = 0.918 Entropy(SCool) = – (1/2)log2(1/2) – (1/2)log2(1/2) = 0.5 + 0.5 = Suy ra: Gain(SRain, Temperature) = 0.971 – (3/5)*0.918 – (2/5)*1 = 0.020 Values(Humidity) = High, Normal SHigh = [1+, 1-] SNormal = [2+,1-] Gain( S Rain , Humidity) Entropy( S Rain ) v | Sv | Entropy( Sv ) { High , Normal} | S Rain | = Entropy(SRain) – (2/5)Entropy(SHigh) – (3/5)Entropy(SNormal) Trong đó: Entropy(SRain) = 0.971 Entropy(SHigh) = – (1/2)log2(1/2) – (1/2)log2(1/2) = 0.5 + 0.5 = Entropy(SNormal) = – (2/3)log2(2/3) – (1/3)log2(1/3) = 0.3897 + 0.5278 = 0.918 Suy ra: Gain(SRain,Humidity) = 0.971 – (2/5)*1 – (3/5)*0.918 = 0.020 Values(Wind) = Weak, Strong SWeak = [3+, 0-] SStrong = [0+, 2-] Gain( S Rain ,Wind ) Entropy( S Rain ) v | Sv | Entropy( Sv ) {Weak , Strong} | S Rain | = Entropy(SRain) – (3/5)Entropy(SWeak) – (2/5)Entropy(SStrong) Trong đó: Entropy(SRain) = 0.971 Entropy(SWeak) = – (3/3)log2(3/3) – (0/3)log2(0/3) =0+0=0 Entropy(SStrong) = – (0/2)log2(0/2) – (2/2)log2(2/2) =0+0=0 Suy ra: Gain(SRain, Wind) = 0.971 – (3/5)*0 – (2/5)*0 = 0.971 Ta thu đƣợc kết quả: Gain(SRain, Temperature) = 0.020 Gain(SRain, Humidity) = 0.020 Gain(SRain, Wind) = 0.971 Ta thấy giá trị Gain(SRain, Wind) lớn nên Wind đƣợc chọn làm thuộc tính kiểm tra Ta đƣợc định hoàn chỉnh nhƣ sau Outlook Sunny Rain {D1, D2, D8, D9, D11} {D3, D7, D12, D13} {D4, D5, D6, D10, D14} 2+, 3- 2+, 3- 2+, 3- [2+,3-] [4+,0-] Humidity Yes High Hình Overcast Wind Weak Normal {D1, D2, D8} 2+, 3[0+,3-] {D9, D11} 2+, 3[2+,0-] No Yes 3.4 [3+,2-] Cây Strong {D4, D5, D10} 2+, 3[3+,0-] Yes định {D6, D14} 2+, 3[0+,2-] No cần tìm