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

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 100 0

Đ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 47
Dung lượng 1,5 MB

Nội dung

Với kết cấu nội dung gồm 3 chươ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ới thiệu đến các bạn những nội dung về thuật toán Find-s, thuật toán Id3, thuật toán Candidate Elimination. Mời các bạn cùng tham khảo nội dung bài thu hoạch để có thêm tài liệu phục vụ nhu cầu học tập và nghiên cứu.

Nghiên cứu và cài đặt các thuật tốn phân lớp dữ 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  TỐ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 6 GV: PGS. TS. Đỗ Văn Nhơn HVTH: Huỳnh Tuấn Anh Nghiên cứu và cài đặt các thuật tốn phân lớp dữ liệu với Maple TpHCM, 02/2013 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, chỉ  bảo   chúng em trong suốt thời gian học chun đề này Xin chân thành cám  ơn q thầy cơ trong 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 những kiến thức q   báu, tạo mọi điều kiện tốt cho chúng em học tập và nghiên cứu Xin chân thành cám ơn gia đình và bạn bè đã ủng hộ, giúp đỡ  và động viên em trong   thời gian học tập và nghiên cứu Mặc dù đã cố gắng hồn thành bài luận nhưng chắc chắn khơng tránh khỏi thiếu sót   Em kính mong nhận được sự thơng cảm và tận tình chỉ bảo của q thầy cơ Học viên thực hiện 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 và cài đặt các thuật tốn phân lớp dữ liệu với Maple Mục Lục GV: PGS. TS. Đỗ Văn Nhơn HVTH: Huỳnh Tuấn Anh Nghiên cứu và cài đặt các thuật tốn phân lớp dữ liệu với Maple Chương 1: THUẬT TỐN FIND­S HỌC KHÁI NIỆM VÀ BÀI TỐN CỤ THỂ Theo Tom M.Mitchell: “Nhiều vấn đề học đòi hỏi các khái niệm tổng qt thu được  từ các ví dụ huấn luyện. … Vấn đề tự động kết luận về sự xác định tổng qt nhất của  một vài khái niệm, các ví dụ cho trước được ghi nhãn có phải là bộ phận của khái niệm  hay khơng, nhiệm vụ đó thường được xem như là học khái niệm.”  Học khái niệm 1.1 ­ Cho trước các ví dụ huấn luyện. mỗi 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 ra 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 là  hàm boolean được định nghĩa trên tập cá thể ­ “Học khái niệm là đưa ra một hàm boolean từ tập input và putput của các 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 các animal cùng thuộc tính của nó o (Output) Khái niệm được trích ra:  Bird  Cat  … 1.2 ­  Bài tốn cụ thể (Input) Tập ví dụ huấn luyện gồm 4 cá thể sau: o Tập này nói về những ngày (như thế nào đó) mà Aldo thích chơi  mơn thể thao dưới nước của anh ta (Table 2.1 – Positive and  negative training examples gor thw target concept EnjoySport, Machine  Learning – Tom M.Mitchell, 2003) Exampl e Sky Sunny Sunny Rainy AirTem p Warm Warm Cold GV: PGS. TS. Đỗ Văn Nhơn Humidity Wind Water Forecast EnjoySport Normal High High Strong Strong Strong Warm Warm Warm Same Same Change Positive Positive Negative HVTH: Huỳnh Tuấn Anh Nghiên cứu và cài đặt các thuật toán phân lớp dữ liệu với Maple Sunny Warm High Strong Cool Change Positive Bảng 1.1 – Các ví dụ huấn luyện thuộc và khơng thuộc khái niệm đích EnjoySport ­ 1.3 ­ (Output) Khái niệm được học: “EnjoySport” Giả thiết Cũng được hiểu là khái niệm. Là hội của các ràng buộc trên thuộc tính của cá  thể ­ X là cá thể, và X thoả mãn tất cả các ràng buộc trên giả thiết h thì h [hân loại  X là positive (h(X) = 1) ­ Ví dụ: Giả thiết là Aldo thích mơn thể thao dưới nước vào nagỳ “cold days  with high humidity”, giả thiết được 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 được 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, mỗi ngày có 6 thuộc tính Khái niệm đích (target concep) o Khái niệm (hàm) được học o Ký hiệu: c c: X  {0,1} ­  Ví dụ trên: c(X) = 1 nếu EnjoySport = Yes  Ví dụ trên: c(X) = 0 nếu 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à:  GV: PGS. TS. Đỗ Văn Nhơn HVTH: Huỳnh Tuấn Anh Nghiên cứu và cài đặt các thuật tốn phân lớp dữ liệu với Maple ­ Tập các giả thiết (H): các giả thiết về sự phân loại tập cá thể ­ Chương trình học:  1.5 o Cho trước tập ví dụ huấn luyện o Đưa ra giả thiết về sự phân loại tập cá thể: h(X) = c(X)  Thứ tự các giả thiết  ­ Các giả thiết trong khơng gian đều có thứ tự ­ Có thể sắp xếp theo dạng: Tổng qt  cụ thể ­ Thứ tự: o hj và hk là hai giả thiết o hj được nó là tổng qt hơn hay bằng hk nếu và chỉ nếu: (∀x Є X)[(hk(x) = 1)  (hj(x) =1)] o Ký hiệu: hj ≥g hk ­ Ví dụ: h2 ≥g h1 với h1 và h2 sau: o h1 =  o h2 =  THUẬT TỐN FIND – S: TÌM MỘT GIẢ THUYẾT ĐẶC THÙ NHẤT 2.1 Thuật tốn Find­S h = giả thiết cụ thể nhất trong H Với mỗi x Є tập ví dụ huấn luyện, mà c(X) = 1 o Với mỗi ràng buộc ai trong h  IF ai thoả bởi x THEN do nothing ELSE thay ai bởi ràng buộc tổng qt hơn kế tiếp mà nó được  thoả bởi x GV: PGS. TS. Đỗ Văn Nhơn HVTH: Huỳnh Tuấn Anh Nghiên cứu và cài đặt các thuật tốn phân lớp dữ liệu với Maple Xuất ra h 2.2  Áp dụng thuật tốn với ví dụ huấn luyện mục 1.2: ­ h   ­ Cá thể 1 (positive): o ­ h   Cá thể 2 (positive): o h   ­ Cá thể 3 (negative): h không đổi ­ Cá thể 4 (positive): o ­ OUTPUT:  CÀI ĐẶT CHƯƠNG TRÌNH 3.1 ­ h   Ngơn ngữ lập trình, biến mơi trường, các thư viện được sử dụng Thuật tốn Find­S được viết bằng ngơn ngữ Maple (dùng Maple 12), sau đó đóng gói  lại thành mơt thư viện và lưu vào thư mục “C:\Find­S\” ­ Chương trình được viết hồn chỉnh dưới dạng thể hiện form liên kết bên dưới với  package đã được tạo ra ở trên, bằng 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 GV: PGS. TS. Đỗ Văn Nhơn HVTH: Huỳnh Tuấn Anh Nghiên cứu và cài đặt các thuật tốn phân lớp dữ liệu với Maple  Trong hộp thoại mới hiện ra, chọn tiếp Advanced System Setting nếu  là Win Vista hoặc Win 7, Win XP thì chọn Advanced  Trong hộp thoại System Properties, chọn Environment Variables…  Trong bảng System Variables, chọn Path trong phần Variables, rồi 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 giữa các  Variable value là các 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 được sử dụng: o com.maplesoft.openmaple.* : import các lớp OpenMaple của Java o com.maplesoft.externalcall.MapleException : import lớp MapleException Ngồi ra, chương trình còn sử dụng Maple Engine, engine này có chức năng kết  nối với Maple để thực hiện các lệnh trong Maple 3.2 Cấu trúc, chức năng các tập tin cài đặt và 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 tốn Find­S rồi đóng gói lại thành thư viện bằng  chương trình Maple 12 ­ Tập tin demo.mw: chạy thử thuật tốn đã được cài đặt ở trên với một số dữ liệu  huấn  luyện ­ Tập tin Main.java: tạo form với các thao tác tương ứng trong 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 của các tập tin training examples dạng .txt là: ­ Mỗi dòng là một mơ tả chi tiết các thuộc tính của một cá thể trong tập cá thể, mỗi  thuộc tính cách nhau ít nhất một khoảng trắng hoặc một tab. Mỗi thuộc tính có một  số giá trị hữu hạn. Cuối cùng là khái niệm đích GV: PGS. TS. Đỗ Văn Nhơn HVTH: Huỳnh Tuấn Anh Nghiên cứu và cài đặt các thuật tốn phân lớp dữ liệu với Maple ­ Thứ tự giá trị cho mỗi thuộc tính trong ví dụ đó được nhập tương ứng. Tên tập tin,  thuộc tính và các giá trị khơng chấp nhận các giá trị đặc biệt như: `, ~, &, (, ), !, #, %,  ^, ­, \, |, {, }, [, ], ;,   có thể chấp nhận ký tự gạch dưới 3.3 Nội dung các hàm chính và các tham số có liên quan ­ Trong Java, tập tin Main.java: o o public Main() throwMapleException:  Khởi tạo Maple Engine với Java  Đồng thời đặt Table khơng có Header void jButton2ActionPerformed(java.awt.event.ActionEvent evt):  Sự kiện của button Show Version Space, hiển thị những giả thiết phù  hợp với Training Examples  o void  jButton3ActionPerformed(java.awt.event.ActionEvent evt):  o Gọi ShowMaximallySpecificHypothesis() Sự kiện của button ReadFromFile void jButton4ActionPerformed(java.awt.event.ActionEvent evt):  Sự kiện button Create Table  Tạo bảng với số dòng và số cột được cho trong jTextField1  ColunmCount và jTextField2 RowCount o void ShowMaximallySpecificHypothesis()  Hiển thị Maximally Specific Hypothesis lên jTextArea1  Thực hiện hàm FindS của package FindSAlgorithm bằng Maple với tập  ví dụ huấn luyện đưa vào là D, sau đó lấy kết quả Maximally Specific  Hypothesis trả về hiển thị lên jTextArea1 Maximally Specific  Hypothesis trong form. Chuỗi S chứa tập ví dụ từ D[1] đến D[i], nhằm  hiển thị kết quả theo từng bước thực hiện 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 quả trả về x: danh sách lưu mỗi ví dụ, khơng bao gồm giá trị phân loại GV: PGS. TS. Đỗ Văn Nhơn HVTH: Huỳnh Tuấn Anh Nghiên cứu và cài đặt các thuật tốn phân lớp dữ liệu với Maple         cx: bằng 1 nếu giá trị của thuộc tính phân loại là positive, bằng 0 nếu là negative local h,x,cx,d,i; h:=[]; h ← giả thiết đặc thù nhất if nops(D)0 then for i from to nops(D[1][1]) h:=[op(h),` `]; od; fi; Với mỗi ví dụ huấn luyện d for d in D x:=d[1]; cx:=d[2]; Nếu d là 1 positive example              if cx=1 then Đối với mỗi ràng buộc trên thuộc tính  trong h for i from to nops(h) Nếu x thỏa ràng buộc trên thuộc tính  trong h thì khơng làm gì cả if h[i]=x[i] or h[i]=`?` then # nothing Ngược lại, thay thế ràng buộc  trong h bằng một ràng buộc tổng quát  hơn để x thỏa nó  else if h[i]=` ` then 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 là h(x)=1, bất kể x là positive hay  negative), kết quả trả về bằng 1 nếu thỏa, bằng 0 nếu 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: GV: PGS. TS. Đỗ Văn Nhơn 10 HVTH: Huỳnh Tuấn Anh Nghiên cứu và cài đặt các thuật tốn phân lớp dữ liệu với Maple ­ Tải tập ví dụ huấn luyện đã có sẵn (tập tin TrainingExamples3.txt trong cùng thư  mục).  ­ Hiển thị luật ­ Hiển thị cây quyết định GV: PGS. TS. Đỗ Văn Nhơn 33 HVTH: Huỳnh Tuấn Anh Nghiên cứu và cài đặt các thuật toán phân lớp dữ liệu với Maple ­ Phân lớp cho New Instance mới: x:=[blonde,average,light,no] Kết quả sau khi phân lớp: Result = sunburned GV: PGS. TS. Đỗ Văn Nhơn 34 HVTH: Huỳnh Tuấn Anh Nghiên cứu và cài đặt các thuật tốn phân lớp dữ liệu với Maple Chương 3: THUẬT TỐN CANDIDATE ELIMINATION 1. MƠ TẢ THUẬT TỐN GV: PGS. TS. Đỗ Văn Nhơn 35 HVTH: Huỳnh Tuấn Anh Nghiên cứu và cài đặt các thuật tốn phân lớp dữ liệu với Maple Thuật tốn Candidate­Elimination tính version space chứa tất cả những giả thiết phù hợp  với tập các ví dụ huấn luyện. Bắt đầu bằng việc khởi tạo version space để  chứa tất cả  những  giả thiết trong H, khởi tạo G là tập các giả thiết tổng qt nhất trong H Go  {} và khởi tạo S là tập các giả thiết cụ thể nhất So  {} Hai tập G, S này bao đóng tồn bộ  giả  thiết, bởi vì mỗi giả  thiết trong H đều tổng qt   hơn So và đặc thù hơn Go. Với mỗi ví dụ huấn luyện, S và G sẽ được tổng qt hóa và đặc thù  hóa để loại bỏ từ version space bất kỳ những giả thiết nào tìm thấy là khơng phù hợp. Sau tất cả  những ví dụ, version space đã tính sẽ bao đóng tất cả những giả thiết phù hợp với những ví dụ  huấn luyện và chỉ với những ví dụ huấn luyện này. Thuật tốn Candidate Elimination được viết  dưới dạng mã giả như sau: G  các giả thiết tổng qt nhất trong H S  các giả thiết đặc thù nhất trong H Với mỗi ví dụ huấn luyện d, thực hiện: 1/ Nếu d là một positive example ­ Xóa từ trong G tất cả các giả thiết inconsistent với d ­ Đối với mỗi giả thiết s trong S mà inconsistent với d Xóa s trong S Thêm vào S tất cả  các giả  thiết h được tổng quát hóa tối thiểu  từ  s,   sao cho:     a/ h consistent với d, và     b/ Một số giả thiết trong G tổng quát hơn h Xóa từ S bất kỳ giả thiết nào tổng quát hơn các giả thiết khác trong  S 2/ Nếu d là một negative example ­ Xóa trong S bất kỳ giả thiết nào inconsistent với d GV: PGS. TS. Đỗ Văn Nhơn 36 HVTH: Huỳnh Tuấn Anh Nghiên cứu và cài đặt các thuật tốn phân lớp dữ liệu với Maple ­ Đối với mỗi giả thiết g trong G mà inconsistent với d Xóa g trong G Thêm vào G tất cả các giả thiết h được đặc thù hóa tối thiểu từ g, sao   cho:     a/ h consistent với d, và     b/ Một số giả thiết trong S đặc thù hơn h Xóa trong G tất cả các giả thiết nào ít tổng qt hơn các giả thiết khác   trong G GV: PGS. TS. Đỗ Văn Nhơn 37 HVTH: Huỳnh Tuấn Anh Nghiên cứu và cài đặt các thuật tốn phân lớp dữ liệu với Maple 2. CÀI ĐẶT THUẬT TỐN 2.1 Hướng dẫn sử dụng chương trình:  ­ Chương trình cài đặt thuật tốn Candidate Elimination sử dụng ngơn ngữ Java và Maple,  IDE Netbeans. Dùng Maple để  cài đặt thuật tố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 ra để thể hiện kết quả lên form trong Java   (project CandidateElimination của Netbeans đính kèm) ­ Để có thể chạy được chương trình, các bước cần phải thực hiện:     + Cài đặt IDE Netbeans và phần mềm Maple        + Đặt biến mơi trường để  Java có thể  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 là Win XP,  còn Win Vista hay Win 7 thì chọn Advanced system settings)   Environment Variables.  Ở mục  System Variables, tìm dòng có chữ  “Path”  chọn dòng này rồi click Edit   trên dòng có  chứa “Variable Value” di chuyển đến cuối ­> đặt dấu chấm phẩy (;) rồi paste đường dẫn  thư  mục bin.win trong thư mục cải đặt của Maple vào (thường là 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  vì sau khi khởi động Windows mới nhận được biến mơi trường mới thêm vào).      + Tạo thư mục CandidateElimination trong ổ C (C:/CandidateElimination). Sau đó   mở  file CE.mw bằng Maple, click vào nút có kí hiệu là “!!!” (Excute the entire worksheet)   để  Maple build thành package CandidateEliminationAlgorithm, sau khi build xong package   sẽ nằm trong 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 có thể cho người dùng tự nhập tập ví dụ huấn luyện trên form hoặc   đọc file ví dụ huấn luyện có sẵn, định dạng file là *.txt và mỗi dòng sẽ  là mỗi ví dụ  huấn   luyện, ngoại trừ  dòng đầu tiên là các thuộc tính, mỗi thuộc tính hay mỗi giá trị  của thuộc   tính sẽ được ngăn cách bởi khoảng trắng hay tab và nếu thuộc tính hay giá trị có từ  2 từ trở lên   thì viết liền nhau, khơng có khoảng trắng, nhằm phân biệt thuộc tính này với thuộc tính khác, giá   trị này với giá trị khác. Giá trị của thuộc tính phân loại sẽ là được ghi là “Positive” nếu giá trị đó  thuộc loại positive, ngược lại là “Negative” nếu giá trị  đó thuộc loại negative. Kết quả  trả  về  sau khi người dùng bấm nút Show (Show Version Space) sẽ là giá trị của S và G bao đóng tất cả  các giả thiết phù hợp tập ví dụ huấn luyện GV: PGS. TS. Đỗ Văn Nhơn 38 HVTH: Huỳnh Tuấn Anh Nghiên cứu và cài đặt các thuật tốn phân lớp dữ liệu với Maple Còn khi người dùng muốn phân loại một ví dụ mới, thì nhập ví dụ đó vào theo cấu trúc [Value,  Value, …, Value] trong Text Field New Instance, sau đó khi nhấn button Classification thì sẽ  sẽ  cho ra kết quả 1 trong 3 kết quả phân loại là Positive, Negative, hay Don’t Know GV: PGS. TS. Đỗ Văn Nhơn 39 HVTH: Huỳnh Tuấn Anh Nghiên cứu và cài đặt các thuật tốn phân lớp dữ liệu với Maple ­ Ngồi ra chương trình vẫn có thể chạy trong Maple mà khơng kết nối với Java (file  demo.mw đính kèm) 2.2 Cài đặt thuật tốn: ­ Hàm chính cài đặt thuật tốn Candidate Elimination trong Maple như sau: > Tính version space chứa những giả thiết phù hợp với training examples D CandidateElimination:=proc(D::list) G: giả thiết tổng qt nhất      S: giả thiết đặc thù nhất      d: mỗi ví dụ huấn luyện V: danh sách tập hợp các giá trị đã xuất hiện cho từng thuộc tính tính đến thời điểm đang xét  ví dụ thứ i x: danh sách lưu mỗi ví dụ, khơng bao gồm giá trị phân loại     cx: bằng 1 nếu giá trị của thuộc tính phân loại là positive, bằng 0 nếu là negative local G,S,d,V,x,cx,g,s,i,j,tmp; G:=[]; S:=[]; V:=[]; G ← giả thiết tổng quát nhất trong H         S ← giả thiết đặc thù nhất trong H for i from to nops(D[1][1]) G:=[op(G),`?`]; S:=[op(S),` `]; V:=[op(V),{}]; od; G:=[[op(G)]]; S:=[[op(S)]]; V:=[op(V)]; Với mỗ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 là 1 positive example if cx=1 then Xóa từ trong G tất cả các 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 mỗi giả thiết s trong S mà inconsistent với d GV: PGS. TS. Đỗ Văn Nhơn 40 HVTH: Huỳnh Tuấn Anh Nghiên cứu và cài đặt các thuật toán phân lớp dữ liệu với Maple for s in S if Consistent(s,d)=false then Xóa s trong S S:=DeleteHypothesis(S,s); Thêm vào s tất cả các giả thiết h được tổng quát hóa tối thiểu từ S, sao cho: h  consistent với và một số giả thiết trong G tổng quát hơn h S:=[op(S),MinimalGeneralizations(s,d,G)]; Xóa từ S bất kỳ giả thiết nào tổng quát hơn các giả thiết khác trong 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 là một negative example else Xóa trong S bất kỳ giả thiết nào inconsistent với d for s in S if Consistent(s,d)=false then S:=DeleteHypothesis(S,s); fi; od; Đối với mỗi giả thiết g trong G mà inconsistent với d for g in G if Consistent(g,d)=false then Xóa g trong G G:=DeleteHypothesis(G,g); Thêm vào G tất cả các giả thiết h được đặc thù hóa tối thiểu từ g, sao cho: h  consistent với d và một số giả thiết trong S đặc thù hơn h G:=[op(G),op(MinimalSpecializations(g,d,S,V))]; Xóa trong G tất cả các giả thiết nào ít tổng qt hơn các giả thiết khác trong 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; GV: PGS. TS. Đỗ Văn Nhơn 41 HVTH: Huỳnh Tuấn Anh Nghiên cứu và cài đặt các thuật toán phân lớp dữ liệu với Maple od; fi; od; RETURN (G,S); end: ­ Hàm phân lớp New Instance: > Phân loại lớp của new_instance đưa vào trên Version Space     Classification:=proc(S,G,new_instance::list) H: tập giả thiết từ S và G h: mỗi giả thiết trong 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 trong H phù hợp với new_instance count:=count+1; fi; od; Nếu tất cả các giả thiết trong H phù hợp với new_instance         if count=nops(H) then new_instance thuộc lớp Positive class:=`Positive`; Khơng có giả thiết nào 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 được lớp cho new_instance             class:=`DontKnow`; fi; RETURN (class); end: Phát sinh ra 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 những giả thiết tổng quát hơn giả thiết h GeneralThan:=proc(h) local H,temp,count,i; H:=[]; GV: PGS. TS. Đỗ Văn Nhơn 42 HVTH: Huỳnh Tuấn Anh Nghiên cứu và cài đặt các thuật toán phân lớp dữ liệu với Maple count:=0; Đếm những giá trị khác `?` trong 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ử trên một số tập ví dụ huấn luyện: ­ Training Examples 1: 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 Version Space: S1 = [[Sunny, Warm, Normal, Strong, Warm, Same]] G1 = [[`?`, `?`, `?`, `?`, `?`, `?`]] S2 = [[Sunny, Warm, `?`, Strong, Warm, Same]] G2 = [[`?`, `?`, `?`, `?`, `?`, `?`]] S3 = [[Sunny, Warm, `?`, Strong, Warm, Same]] GV: PGS. TS. Đỗ Văn Nhơn 43 HVTH: Huỳnh Tuấn Anh Nghiên cứu và cài đặt các thuật toán phân lớp dữ liệu với Maple G3 = [[Sunny, `?`, `?`, `?`, `?`, `?`], [`?`, Warm, `?`, `?`, `?`, `?`], [`?`, `?`, `?`, `?`, `?`,  Same]] S4 = [[Sunny, Warm, `?`, Strong, `?`, `?`]] G4 = [[Sunny, `?`, `?`, `?`, `?`, `?`], [`?`, Warm, `?`, `?`, `?`, `?`]] New Instance: x:=[Sunny,Warm,Normal,Strong,Cool,Change] Kết quả phân lớp là Positive x:=[Rainy,Cold,Normal,Light,Warm,Same] Kết quả phân lớp là Negative x:=[Sunny,Warm,Normal,Light,Warm,Same] Kết quả phân lớp là Don’t Know x:=[Sunny,Cold,Normal,Strong,Warm,Same] Kết quả phân lớp là 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 Version Space: S1 = [[Japan, Honda, Blue, `1980`, Sedan]]   G1 = [[`?`, `?`, `?`, `?`, `?`]] S2 = [[Japan, Honda, Blue, `1980`, Sedan]] GV: PGS. TS. Đỗ Văn Nhơn 44 HVTH: Huỳnh Tuấn Anh Nghiên cứu và cài đặt các thuật toán phân lớp dữ liệu với Maple   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 quả phân lớp là 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 = [[`?`, `?`, `?`, `?`, `?`]] GV: PGS. TS. Đỗ Văn Nhơn 45 HVTH: Huỳnh Tuấn Anh Nghiên cứu và cài đặt các thuật toán phân lớp dữ liệu với Maple 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]] S cannot be generalized. ( S = [] ) G cannot be specialized. ( G = [] ) GV: PGS. TS. Đỗ Văn Nhơn 46 HVTH: Huỳnh Tuấn Anh Nghiên cứu và cài đặt các thuật toán phân lớp dữ 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 và lập trình trên Maple.  http://maplevn2008.wordpress.com GV: PGS. TS. Đỗ Văn Nhơn 47 HVTH: Huỳnh Tuấn Anh ... Nghiên cứu và cài đặt các thu t toán phân lớp dữ liệu với Maple ­ Hiển thị luật ­ Hiển thị cây  quyết định GV: PGS. TS. Đỗ Văn Nhơn 29 HVTH: Huỳnh Tuấn Anh Nghiên cứu và cài đặt các thu t tốn phân lớp dữ liệu với Maple. .. HVTH: Huỳnh Tuấn Anh Nghiên cứu và cài đặt các thu t toán phân lớp dữ liệu với Maple Sunny Warm High Strong Cool Change Positive Bảng 1.1 – Các ví dụ huấn luyện thu c và khơng thu c khái niệm đích EnjoySport... HVTH: Huỳnh Tuấn Anh Nghiên cứu và cài đặt các thu t toán phân lớp dữ liệu với Maple  h5 = [Japan, `?`, `?`, `?`, Sedan] ­ Phân lớp một New Instance mới: x:= [Japan,Honda,Red,1990,Sports] Kết quả x thu c lớp:  Negative

Ngày đăng: 09/01/2020, 13:22

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w