Bài thu hoạch nghiên cứu và cài đặt các thuật toán phân lớp dữ liệu với maple

47 509 0
Bài thu hoạch nghiên cứu và cài đặt các thuật toán phân lớp dữ liệu với maple

Đ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

Nghiên cứu cài đặt thuật toán phân lớp liệu với Maple TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN CAO HỌC CÔNG NGHỆ THÔNG TIN QUA MẠNG LẬP TRÌNH SYMBOLIC VÀ ỨNG DỤNG BÀI THU HOẠCH: NGHIÊN CỨU VÀ CÀI ĐẶT CÁC THUẬT TOÁN PHÂN LỚP DỮ LIỆU VỚI MAPLE Giảng viên: PGS TS Đỗ Văn Nhơn Học viên thực hiện: Huỳnh Tuấn Anh CH1101004 Khóa TpHCM, 02/2013 GV: PGS TS Đỗ Văn Nhơn HVTH: Huỳnh Tuấn Anh Nghiên cứu cài đặt thuật toán phân lớp liệu với Maple Lời cám ơn Em xin chân thành cám ơn PGS TS Đỗ Văn Nhơn tận tình hướng dẫn, bảo chúng em suốt thời gian học chuyên đề Xin chân thành cám ơn quý thầy cô Trường Đại Học Công Nghệ Thông Tin, Đại Học Quốc Gia Tp.HCM tận tình giảng dạy, trang bị cho em kiến thức quý báu, tạo điều kiện tốt cho chúng em học tập nghiên cứu Xin chân thành cám ơn gia đình bạn bè ủng hộ, giúp đỡ động viên em thời gian học tập nghiên cứu Mặc dù cố gắng hoàn thành luận chắn không tránh khỏi thiếu sót Em kính mong nhận thông cảm tận tình bảo quý thầy cô Học viên thực Huỳnh Tuấn Anh TpHCM, 02/2013 GV: PGS TS Đỗ Văn Nhơn HVTH: Huỳnh Tuấn Anh Nghiên cứu cài đặt thuật toán phân lớp liệu với Maple Mục Lục Lời cám ơn Chương 1: THUẬT TOÁN FIND-S 1 HỌC KHÁI NIỆM VÀ BÀI TOÁN CỤ THỂ THUẬT TOÁN FIND – S: TÌM MỘT GIẢ THUYẾT ĐẶC THÙ NHẤT 3 CÀI ĐẶT CHƯƠNG TRÌNH 4 HƯỚNG DẪN SỬ DỤNG CHƯƠNG TRÌNH MỘT SỐ VÍ DỤ VÀ KẾT QUẢ CHƯƠNG TRÌNH Chương 2: THUẬT TOÁN ID3 11 MÔ TẢ CHUNG THUẬT TOÁN ID3 VÀ BÀI TOÁN 11 THUẬT TOÁN ID3 VÀ CƠ SỞ LÝ THUYẾT 12 CÀI ĐẶT CHƯƠNG TRÌNH 18 HƯỚNG DẪN SỬ DỤNG CHƯƠNG TRÌNH 25 MỘT SỐ VÍ DỤ VÀ KẾT QUẢ CHƯƠNG TRÌNH 26 Chương 3: THUẬT TOÁN CANDIDATE ELIMINATION 34 MÔ TẢ THUẬT TOÁN 34 CÀI ĐẶT THUẬT TOÁN 35 2.1 Hướng dẫn sử dụng chương trình: 35 2.2 Cài đặt thuật toán: 37 2.3 Chạy thử số tập ví dụ huấn luyện: 40 TÀI LIỆU THAM KHẢO 44 GV: PGS TS Đỗ Văn Nhơn HVTH: Huỳnh Tuấn Anh Nghiên cứu cài đặt thuật toán phân lớp liệu với Maple Chương 1: THUẬT TOÁN FIND-S HỌC KHÁI NIỆM VÀ BÀI TOÁN CỤ THỂ Theo Tom M.Mitchell: “Nhiều vấn đề học đòi hỏi khái niệm tổng quát thu từ ví dụ huấn luyện … Vấn đề tự động kết luận xác định tổng quát vài khái niệm, ví dụ cho trước ghi nhãn có phải phận khái niệm hay không, nhiệm vụ thường xem học khái niệm.” 1.1 Học khái niệm - Cho trước ví dụ huấn luyện ví dụ huấn luyện cho biết có thuộc khái niệm hay không? (thuộc: positive; không: negative) - Đưa khái niệm tổng quát phân loại tập huấn luyện Khái niệm tổng quát hàm boolean định nghĩa tập cá thể - “Học khái niệm đưa hàm boolean từ tập input putput ví dụ huấn luyện” (Tom M.Mitchell – Machine Learning)  Ví dụ: o (Input) Các ví dụ huấn luyện:  Tập animal thuộc tính o (Output) Khái niệm trích ra:  Bird  Cat  … 1.2 Bài toán cụ thể - (Input) Tập ví dụ huấn luyện gồm cá thể sau: o Tập nói ngày (như đó) mà Aldo thích chơi môn thể thao nước (Table 2.1 – Positive and negative training examples gor thw target concept EnjoySport, Machine Learning – Tom M.Mitchell, 2003) Example Sky AirTemp Humidity Wind Water Forecast EnjoySport Sunny Warm Normal Strong Warm Same Positive Sunny Warm High Strong Warm Same Positive Rainy Cold High Strong Warm Change Negative Sunny Warm High Strong Cool Change Positive GV: PGS TS Đỗ Văn Nhơn HVTH: Huỳnh Tuấn Anh Nghiên cứu cài đặt thuật toán phân lớp liệu với Maple Bảng 1.1 – Các ví dụ huấn luyện thuộc không thuộc khái niệm đích EnjoySport - (Output) Khái niệm học: “EnjoySport” 1.3.Giả thiết - Cũng hiểu khái niệm Là hội ràng buộc thuộc tính cá thể - X cá thể, X thoả mãn tất ràng buộc giả thiết h h [hân loại X positive (h(X) = 1) - Ví dụ: Giả thiết Aldo thích môn thể thao nước vào nagỳ “cold days with high humidity”, giả thiết ghi là: o - Giả thiết tổng quát nhất: o - Giả thiết cụ thể nhất: o 1.4.Ký hiệu - Tập cá thể (set of instances) o Tập dùng để trích khái niệm từ o Ký hiệu: X o Ví dụ trên: tập cá thể = tập ngày, ngày có thuộc tính - Khái niệm đích (target concep) o Khái niệm (hàm) học o Ký hiệu: c c: X  {0,1} -  Ví dụ trên: c(X) = EnjoySport = Yes  Ví dụ trên: c(X) = EnjoySport = No Các ví dụ huấn luyện, gồm có: o Một cá thể thuộc X o Khái niệm đích c(X) Viết là: - Tập giả thiết (H): giả thiết phân loại tập cá thể - Chương trình học: o Cho trước tập ví dụ huấn luyện GV: PGS TS Đỗ Văn Nhơn HVTH: Huỳnh Tuấn Anh Nghiên cứu cài đặt thuật toán phân lớp liệu với Maple o Đưa giả thiết phân loại tập cá thể: h(X) = c(X) 1.5 Thứ tự giả thiết - Các giả thiết không gian có thứ tự - Có thể xếp theo dạng: Tổng quát  cụ thể - Thứ tự: o hj hk hai giả thiết o hj tổng quát hay hk nếu: (∀x Є X)[(hk(x) = 1)  (hj(x) =1)] o Ký hiệu: h j ≥g h k - Ví dụ: h2 ≥g h1 với h1 h2 sau: o h1 = o h2 = THUẬT TOÁN FIND – S: TÌM MỘT GIẢ THUYẾT ĐẶC THÙ NHẤT 2.1.Thuật toán Find-S h = giả thiết cụ thể H Với x Є tập ví dụ huấn luyện, mà c(X) = o Với ràng buộc h  IF thoả x THEN nothing ELSE thay ràng buộc tổng quát mà thoả x Xuất h 2.2 Áp dụng thuật toán với ví dụ huấn luyện mục 1.2: - h  - Cá thể (positive): o h  - Cá thể (positive): GV: PGS TS Đỗ Văn Nhơn HVTH: Huỳnh Tuấn Anh Nghiên cứu cài đặt thuật toán phân lớp liệu với Maple o h  - Cá thể (negative): h không đổi - Cá thể (positive): o h  - OUTPUT: CÀI ĐẶT CHƯƠNG TRÌNH 3.1.Ngôn ngữ lập trình, biến môi trường, thư viện sử dụng - Thuật toán Find-S viết ngôn ngữ Maple (dùng Maple 12), sau đóng gói lại thành môt thư viện lưu vào thư mục “C:\Find-S\” - Chương trình viết hoàn chỉnh dạng thể form liên kết bên với package tạo trên, ngôn ngữ Java (dùng NetBeans IDE 6.5) - Biến môi trường: o Mục đích: kết nối Maple với Java o Cách đặt biến môi trường:  Click chuột phải vào My computer, chọn Properties  Trong hộp thoại ra, chọn tiếp Advanced System Setting Win Vista Win 7, Win XP chọn Advanced  Trong hộp thoại System Properties, chọn Environment Variables…  Trong bảng System Variables, chọn Path phần Variables, bấm Edit  Trong hộp thoại Edit System Variable, thêm dòng sau vào mục Variable value “C:\Program Files\Maple 12\bin.win” Lưu ý: ngăn cách Variable value dấu “;” -  Bấm chọn OK (hoặc Apply) để đồng ý thay đổi  Khởi động lại máy Một số thư viện đặc biệt sử dụng: o com.maplesoft.openmaple.* : import lớp OpenMaple Java o com.maplesoft.externalcall.MapleException : import lớp MapleException GV: PGS TS Đỗ Văn Nhơn HVTH: Huỳnh Tuấn Anh Nghiên cứu cài đặt thuật toán phân lớp liệu với Maple Ngoài ra, chương trình sử dụng Maple Engine, engine có chức kết nối với Maple để thực lệnh Maple 3.2 Cấu trúc, chức tập tin cài đặt tập tin training examples 3.2.1 Các tập tin cài đặt: - Tập tin Find-S.mw: cài đặt thuật toán Find-S đóng gói lại thành thư viện chương trình Maple 12 - Tập tin demo.mw: chạy thử thuật toán cài đặt với số liệu huấn luyện - Tập tin Main.java: tạo form với thao tác tương ứng chương trình (Tạo bảng, Đọc ví dụ huấn luyện từ tập tin, Hiển thị giả thiết đặc thù nhất) 3.2.2 Các tập tin training examples: Cấu trúc chung tập tin training examples dạng txt là: - Mỗi dòng mô tả chi tiết thuộc tính cá thể tập cá thể, thuộc tính cách khoảng trắng tab Mỗi thuộc tính có số giá trị hữu hạn Cuối khái niệm đích - Thứ tự giá trị cho thuộc tính ví dụ nhập tương ứng Tên tập tin, thuộc tính giá trị không chấp nhận giá trị đặc biệt như: `, ~, &, (, ), !, #, %, ^, -, \, |, {, }, [, ], ;, chấp nhận ký tự gạch 3.3 Nội dung hàm tham số có liên quan - Trong Java, tập tin Main.java: o public Main() throwMapleException:  Khởi tạo Maple Engine với Java  Đồng thời đặt Table Header o void jButton2ActionPerformed(java.awt.event.ActionEvent evt):  Sự kiện button Show Version Space, hiển thị giả thiết phù hợp với Training Examples  Gọi ShowMaximallySpecificHypothesis() o void jButton3ActionPerformed(java.awt.event.ActionEvent evt):  Sự kiện button ReadFromFile GV: PGS TS Đỗ Văn Nhơn HVTH: Huỳnh Tuấn Anh Nghiên cứu cài đặt thuật toán phân lớp liệu với Maple o void jButton4ActionPerformed(java.awt.event.ActionEvent evt):  Sự kiện button Create Table  Tạo bảng với số dòng số cột cho jTextField1 ColunmCount jTextField2 RowCount o void ShowMaximallySpecificHypothesis()  Hiển thị Maximally Specific Hypothesis lên jTextArea1  Thực hàm FindS package FindSAlgorithm Maple với tập ví dụ huấn luyện đưa vào D, sau lấy kết Maximally Specific Hypothesis trả hiển thị lên jTextArea1 Maximally Specific Hypothesis form Chuỗi S chứa tập ví dụ từ D[1] đến D[i], nhằm hiển thị kết theo bước thực giải thuật - Trong Maple, tập tin Find-S.mw: + Finding maximally specific hypothesis consistent with the training examples D FindS:=proc(D::list) h: kết trả x: danh sách lưu ví dụ, không bao gồm giá trị phân loại cx: giá trị thuộc tính phân loại positive, negative local h,x,cx,d,i; h:=[]; h ← giả thiết đặc thù if nops(D)0 then for i from to nops(D[1][1]) h:=[op(h),` `]; od; fi; Với ví dụ huấn luyện d for d in D x:=d[1]; cx:=d[2]; Nếu d positive example if cx=1 then Đối với ràng buộc thuộc tính h for i from to nops(h) Nếu x thỏa ràng buộc thuộc tính h không làm if h[i]=x[i] or h[i]=`?` then # nothing Ngược lại, thay ràng buộc h ràng buộc tổng quát để x thỏa else if h[i]=` ` then GV: PGS TS Đỗ Văn Nhơn HVTH: Huỳnh Tuấn Anh Nghiên cứu cài đặt thuật toán phân lớp liệu với Maple h[i]:=x[i]; else h[i]:=`?`; fi; fi; od; fi; od; RETURN (h); end: + Kiểm tra x có thỏa h hay không (x thỏa h nghĩa h(x)=1, x positive hay negative), kết trả thỏa, ngược lại Classification:=proc(h::list,x::list) local i; for i from to nops(h) if h[i]=`?` or h[i]=x[i] then # nothing elif h[i]=` ` or h[i]x[i] then RETURN (0); fi; od; RETURN (1); end: HƯỚNG DẪN SỬ DỤNG CHƯƠNG TRÌNH - Đặt biến môi trường mục 3.1 - Tạo thư mục Find-S thư mục gốc ổ đĩa C (tức thư mục Find-S có đường dẫn sau “C:\Find-S\”) Sau chạy tập tin Find-S.mw với phần mềm Maple để đóng gói thuật toán thành package lưu vào thư mục vừa tạo - Chạy project Find-S với NetBeans Giao diện chương trình sau: GV: PGS TS Đỗ Văn Nhơn HVTH: Huỳnh Tuấn Anh Nghiên cứu cài đặt thuật toán phân lớp liệu với Maple - Phân lớp cho New Instance mới: x:=[Sunny,Warm,Noraml,Weak,Warm,Same] Kết sau phân lớp: EnjoySport = No GV: PGS TS Đỗ Văn Nhơn 30 HVTH: Huỳnh Tuấn Anh Nghiên cứu cài đặt thuật toán phân lớp liệu với Maple 5.3 Sunburned training examples - Tải tập ví dụ huấn luyện có sẵn (tập tin TrainingExamples3.txt thư mục) - Hiển thị luật - Hiển thị định GV: PGS TS Đỗ Văn Nhơn 31 HVTH: Huỳnh Tuấn Anh Nghiên cứu cài đặt thuật toán phân lớp liệu với Maple - Phân lớp cho New Instance mới: x:=[blonde,average,light,no] GV: PGS TS Đỗ Văn Nhơn 32 HVTH: Huỳnh Tuấn Anh Nghiên cứu cài đặt thuật toán phân lớp liệu với Maple Kết sau phân lớp: Result = sunburned GV: PGS TS Đỗ Văn Nhơn 33 HVTH: Huỳnh Tuấn Anh Nghiên cứu cài đặt thuật toán phân lớp liệu với Maple Chương 3: THUẬT TOÁN CANDIDATE ELIMINATION MÔ TẢ THUẬT TOÁN Thuật toán Candidate-Elimination tính version space chứa tất giả thiết phù hợp với tập ví dụ huấn luyện Bắt đầu việc khởi tạo version space để chứa tất giả thiết H, khởi tạo G tập giả thiết tổng quát H Go  {} khởi tạo S tập giả thiết cụ thể So  {} Hai tập G, S bao đóng toàn giả thiết, giả thiết H tổng quát So đặc thù Go Với ví dụ huấn luyện, S G tổng quát hóa đặc thù hóa để loại bỏ từ version space giả thiết tìm thấy không phù hợp Sau tất ví dụ, version space tính bao đóng tất giả thiết phù hợp với ví dụ huấn luyện với ví dụ huấn luyện Thuật toán Candidate Elimination viết dạng mã sau: G  giả thiết tổng quát H S  giả thiết đặc thù H Với ví dụ huấn luyện d, thực hiện: 1/ Nếu d positive example - Xóa từ G tất giả thiết inconsistent với d - Đối với giả thiết s S mà inconsistent với d  Xóa s S  Thêm vào S tất giả thiết h tổng quát hóa tối thiểu từ s, cho: a/ h consistent với d, b/ Một số giả thiết G tổng quát h  Xóa từ S giả thiết tổng quát giả thiết khác S 2/ Nếu d negative example - Xóa S giả thiết inconsistent với d - Đối với giả thiết g G mà inconsistent với d  Xóa g G  Thêm vào G tất giả thiết h đặc thù hóa tối thiểu từ g, cho: a/ h consistent với d, b/ Một số giả thiết S đặc thù h  Xóa G tất giả thiết tổng quát giả thiết khác G GV: PGS TS Đỗ Văn Nhơn 34 HVTH: Huỳnh Tuấn Anh Nghiên cứu cài đặt thuật toán phân lớp liệu với Maple CÀI ĐẶT THUẬT TOÁN 2.1 Hướng dẫn sử dụng chương trình: - Chương trình cài đặt thuật toán Candidate Elimination sử dụng ngôn ngữ Java Maple, IDE Netbeans Dùng Maple để cài đặt thuật toán Candidate Elimination (file CE.mw đính kèm), sau dùng Java, kết nối với Maple để thực hàm package CandidateEliminationAlgorithm mà file CE.mw tạo để thể kết lên form Java (project CandidateElimination Netbeans đính kèm) - Để chạy chương trình, bước cần phải thực hiện: + Cài đặt IDE Netbeans phần mềm Maple + Đặt biến môi trường để Java kết nối với Maple: Click chuột phải vào MyComputer  Properties (có thể dùng phím tắt Windows+Break)  Advanced (nếu Win XP, Win Vista hay Win chọn Advanced system settings)  Environment Variables Ở mục System Variables, tìm dòng có chữ “Path”  chọn dòng click Edit  dòng có chứa “Variable Value” di chuyển đến cuối > đặt dấu chấm phẩy (;) paste đường dẫn thư mục bin.win thư mục cải đặt Maple vào (thường C:\Program Files\Maple 12\bin.win), chọn OK, sau khởi động lại máy (chú ý bước khởi động lại máy quan trọng sau khởi động Windows nhận biến môi trường thêm vào) + Tạo thư mục CandidateElimination ổ C (C:/CandidateElimination) Sau mở file CE.mw Maple, click vào nút có kí hiệu “!!!” (Excute the entire worksheet) để Maple build thành package CandidateEliminationAlgorithm, sau build xong package nằm thư mục C:/CandidateElimination + Dùng IDE Netbeans để mở project CandidateElimination (file đính kèm), sau nhấn F6 để Run project - Chương trình cho người dùng tự nhập tập ví dụ huấn luyện form đọc file ví dụ huấn luyện có sẵn, định dạng file *.txt dòng ví dụ huấn luyện, ngoại trừ dòng thuộc tính, thuộc tính hay giá trị thuộc tính ngăn cách khoảng trắng hay tab thuộc tính hay giá trị có từ từ trở lên viết liền nhau, GV: PGS TS Đỗ Văn Nhơn 35 HVTH: Huỳnh Tuấn Anh Nghiên cứu cài đặt thuật toán phân lớp liệu với Maple khoảng trắng, nhằm phân biệt thuộc tính với thuộc tính khác, giá trị với giá trị khác Giá trị thuộc tính phân loại ghi “Positive” giá trị thuộc loại positive, ngược lại “Negative” giá trị thuộc loại negative Kết trả sau người dùng bấm nút Show (Show Version Space) giá trị S G bao đóng tất giả thiết phù hợp tập ví dụ huấn luyện Còn người dùng muốn phân loại ví dụ mới, nhập ví dụ vào theo cấu trúc [Value, Value, …, Value] Text Field New Instance, sau nhấn button Classification sẽ cho kết kết phân loại Positive, Negative, hay Don’t Know GV: PGS TS Đỗ Văn Nhơn 36 HVTH: Huỳnh Tuấn Anh Nghiên cứu cài đặt thuật toán phân lớp liệu với Maple - Ngoài chương trình chạy Maple mà không kết nối với Java (file demo.mw đính kèm) 2.2 Cài đặt thuật toán: - Hàm cài đặt thuật toán Candidate Elimination Maple sau: > Tính version space chứa giả thiết phù hợp với training examples D CandidateElimination:=proc(D::list) G: giả thiết tổng quát S: giả thiết đặc thù d: ví dụ huấn luyện V: danh sách tập hợp giá trị xuất cho thuộc tính tính đến thời điểm xét ví dụ thứ i x: danh sách lưu ví dụ, không bao gồm giá trị phân loại cx: giá trị thuộc tính phân loại positive, negative local G,S,d,V,x,cx,g,s,i,j,tmp; G:=[]; S:=[]; V:=[]; G ← giả thiết tổng quát H S ← giả thiết đặc thù H for i from to nops(D[1][1]) G:=[op(G),`?`]; S:=[op(S),` `]; GV: PGS TS Đỗ Văn Nhơn 37 HVTH: Huỳnh Tuấn Anh Nghiên cứu cài đặt thuật toán phân lớp liệu với Maple V:=[op(V),{}]; od; G:=[[op(G)]]; S:=[[op(S)]]; V:=[op(V)]; Với ví dụ huấn luyện d, thực hiện: for d in D x:=d[1]; cx:=d[2]; for i from to nops(x) if not member(x[i],V[i]) then V[i]:=V[i] union {x[i]}; fi; od; Nếu d positive example if cx=1 then Xóa từ G tất giả thiết inconsistent với d for g in G if Consistent(g,d)=false then G:=DeleteHypothesis(G,g); fi; od; Đối với giả thiết s S mà inconsistent với d for s in S if Consistent(s,d)=false then Xóa s S S:=DeleteHypothesis(S,s); Thêm vào s tất giả thiết h tổng quát hóa tối thiểu từ S, cho: h consistent với số giả thiết G tổng quát h S:=[op(S),MinimalGeneralizations(s,d,G)]; Xóa từ S giả thiết tổng quát giả thiết khác S tmp:=S; for i from to nops(S) for j from to nops(S) if ji then if MoreGeneralThan(S[i],S[j]) then tmp:=DeleteHypothesis(tmp,S[i]); fi; fi; od; od; S:=tmp; fi; od; Nếu d negative example else Xóa S giả thiết inconsistent với d for s in S if Consistent(s,d)=false then GV: PGS TS Đỗ Văn Nhơn 38 HVTH: Huỳnh Tuấn Anh Nghiên cứu cài đặt thuật toán phân lớp liệu với Maple S:=DeleteHypothesis(S,s); fi; od; Đối với giả thiết g G mà inconsistent với d for g in G if Consistent(g,d)=false then Xóa g G G:=DeleteHypothesis(G,g); Thêm vào G tất giả thiết h đặc thù hóa tối thiểu từ g, cho: h consistent với d số giả thiết S đặc thù h G:=[op(G),op(MinimalSpecializations(g,d,S,V))]; Xóa G tất giả thiết tổng quát giả thiết khác G tmp:=G; for i from to nops(G) for j from to nops(G) if ji then if MoreGeneralThan(G[i],G[j]) then tmp:=DeleteHypothesis(tmp,G[j]); fi; fi; od; od; G:=tmp; fi; od; fi; od; RETURN (G,S); end: - Hàm phân lớp New Instance: > Phân loại lớp new_instance đưa vào Version Space Classification:=proc(S,G,new_instance::list) H: tập giả thiết từ S G h: giả thiết H local class,H,i,count; Tập giả thiết H từ Version Space H:=Hypotheses(S,G); count:=0; for i from to nops(H) if hx(H[i],new_instance)=1 then Đếm số giả thiết H phù hợp với new_instance count:=count+1; fi; od; Nếu tất giả thiết H phù hợp với new_instance if count=nops(H) then new_instance thuộc lớp Positive GV: PGS TS Đỗ Văn Nhơn 39 HVTH: Huỳnh Tuấn Anh Nghiên cứu cài đặt thuật toán phân lớp liệu với Maple class:=`Positive`; Không có giả thiết phù hợp với new_instance elif count=0 then new_instance thuộc lớp Negative class:=`Negative`; else Không phân lớp cho new_instance class:=`DontKnow`; fi; RETURN (class); end: Phát sinh tập giả thiết H từ Version Space Hypotheses:=proc(S,G) local H; H:=GeneralThan(S[1]); H:=[op(S),op(H),op(G)]; return (H); end: Tìm giả thiết tổng quát giả thiết h GeneralThan:=proc(h) local H,temp,count,i; H:=[]; count:=0; Đếm giá trị khác `?` h for i from to nops(h) if h[i]`?` then count:=count+1; fi; od; if count>2 then for i from to nops(h) if h[i]`?` then temp:=h; temp[i]:=`?`; H:=[op(H),temp]; H:=[op(H),op(GeneralThan(temp))]; fi; od; fi; RETURN (H); end: 2.3 Chạy thử số tập ví dụ huấn luyện: - Training Examples 1: GV: PGS TS Đỗ Văn Nhơn 40 HVTH: Huỳnh Tuấn Anh Nghiên cứu cài đặt thuật toán phân lớp liệu với Maple Sky Sunny Sunny Rainy Sunny AirTemp Warm Warm Cold Warm Humidity Normal High High High Wind Strong Strong Strong Strong Water Warm Warm Warm Cool Forecast Same Same Change Change EnjoySport Positive Positive Negative Positive Version Space: S1 = [[Sunny, Warm, Normal, Strong, Warm, Same]] G1 = [[`?`, `?`, `?`, `?`, `?`, `?`]] S2 = [[Sunny, Warm, `?`, Strong, Warm, Same]] G2 = [[`?`, `?`, `?`, `?`, `?`, `?`]] S3 = [[Sunny, Warm, `?`, Strong, Warm, Same]] G3 = [[Sunny, `?`, `?`, `?`, `?`, `?`], [`?`, Warm, `?`, `?`, `?`, `?`], [`?`, `?`, `?`, `?`, `?`, Same]] S4 = [[Sunny, Warm, `?`, Strong, `?`, `?`]] G4 = [[Sunny, `?`, `?`, `?`, `?`, `?`], [`?`, Warm, `?`, `?`, `?`, `?`]] New Instance: x:=[Sunny,Warm,Normal,Strong,Cool,Change] Kết phân lớp Positive x:=[Rainy,Cold,Normal,Light,Warm,Same] Kết phân lớp Negative x:=[Sunny,Warm,Normal,Light,Warm,Same] Kết phân lớp Don’t Know x:=[Sunny,Cold,Normal,Strong,Warm,Same] Kết phân lớp Don’t Know - Training Examples 2: Origin Make Color Decade Type Classification Japan Honda Blue 1980 Sedan Positive Japan Toyota Green 1970 Sports Negative Japan Toyota Blue 1990 Sedan Positive USA Dodge Red 1980 Sedan Negative Japan Honda White 1980 Sedan Positive GV: PGS TS Đỗ Văn Nhơn 41 HVTH: Huỳnh Tuấn Anh Nghiên cứu cài đặt thuật toán phân lớp liệu với Maple Version Space: S1 = [[Japan, Honda, Blue, `1980`, Sedan]] G1 = [[`?`, `?`, `?`, `?`, `?`]] S2 = [[Japan, Honda, Blue, `1980`, Sedan]] G2 = [[`?`, Honda, `?`, `?`, `?`], [`?`, `?`, Blue, `?`, `?`], [`?`, `?`, `?`, `1980`, `?`], [`?`, `?`, `?`, `?`, Sedan]] S3 = [[Japan, `?`, Blue, `?`, Sedan]] G3 = [[`?`, `?`, Blue, `?`, `?`], [`?`, `?`, `?`, `?`, Sedan]] S4 = [[Japan, `?`, Blue, `?`, Sedan]] G4 = [[`?`, `?`, Blue, `?`, `?`], [Japan, `?`, `?`, `?`, Sedan]] S5 = [[Japan, `?`, `?`, `?`, Sedan]] G5 = [[Japan, `?`, `?`, `?`, Sedan]] New Instance: x:= [Japan,Mazda,Black,1980,Sedan] Kết phân lớp Positive - Training Examples 3: Origin Make Color Decade Type Classification Japan Honda Blue 1980 Sedan Positive Japan Toyota Green 1970 Sports Negative Japan Toyota Blue 1990 Sedan Positive USA Dodge Red 1980 Sedan Negative Japan Honda White 1980 Sedan Positive Japan Mazda Black 1980 Sedan Negative Version Space: S1 = [[Japan, Honda, Blue, `1980`, Sedan]] G1 = [[`?`, `?`, `?`, `?`, `?`]] S2 = [[Japan, Honda, Blue, `1980`, Sedan]] G2 = [[`?`, Honda, `?`, `?`, `?`], [`?`, `?`, Blue, `?`, `?`], [`?`, `?`, `?`, `1980`, `?`], [`?`, `?`, `?`, `?`, Sedan]] GV: PGS TS Đỗ Văn Nhơn 42 HVTH: Huỳnh Tuấn Anh Nghiên cứu cài đặt thuật toán phân lớp liệu với Maple S3 = [[Japan, `?`, Blue, `?`, Sedan]] G3 = [[`?`, `?`, Blue, `?`, `?`], [`?`, `?`, `?`, `?`, Sedan]] S4 = [[Japan, `?`, Blue, `?`, Sedan]] G4 = [[`?`, `?`, Blue, `?`, `?`], [Japan, `?`, `?`, `?`, Sedan]] S5 = [[Japan, `?`, `?`, `?`, Sedan]] G5 = [[Japan, `?`, `?`, `?`, Sedan]] S cannot be generalized ( S = [] ) G cannot be specialized ( G = [] ) GV: PGS TS Đỗ Văn Nhơn 43 HVTH: Huỳnh Tuấn Anh Nghiên cứu cài đặt thuật toán phân lớp liệu với Maple TÀI LIỆU THAM KHẢO [1] Tom M Mitchell, Machine Learning, The McGraw-Hill Companies, Inc., 1997 [2] Lê Thành Sách, Trí tuệ nhân tạo, ĐH Bách khoa – ĐHQG TPHCM [3] Võ Văn Thành, Bài tập Luật phân lớp , ĐH CNTT – ĐHQG TPHCM [4] Võ Huỳnh Trâm & Trần Ngân Bình, Học máy [5] Howard J.Hamilton, Computer Science 831 course, Department of Computer Science, University of Regina, Canada: http://www2.cs.uregina.ca/~dbd/cs831/index.html [6]Wikipedia – ID3 Algorithm: http://en.wikipedia.org/wiki/ID3_algorithm [7] Maplevn2008’s Blog – Blog hướng dẫn sử dụng lập trình Maple http://maplevn2008.wordpress.com GV: PGS TS Đỗ Văn Nhơn 44 HVTH: Huỳnh Tuấn Anh

Ngày đăng: 24/07/2016, 11:05

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan