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

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

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.

Trang 1

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 Ậ Ứ Ụ

Trang 2

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 chuyên đ  này.ố ờ ọ ề

Xin chân thành cám  n quý 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 quýạ ọ ố ậ ả ạ ị ữ ế ứ  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 hoà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 quý th y cô.ả ậ ỉ ả ủ ầ

H c viên th c hi nọ ự ệ

Hu nh Tu n Anhỳ ấTpHCM, 02/2013

Trang 3

M c L c ụ ụ

Trang 4

Ch ươ ng 1: THU T TOÁN FIND­S

1. 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 các khái ni m t ng quát 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 quát 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 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)

­ (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 

p Humidity Wind Water Forecast EnjoySport

1 Sunny Warm Normal Strong Warm Same Positive

2 Sunny Warm High Strong Warm Same Positive

3 Rainy Cold High Strong Warm Change Negative

Trang 5

4 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

­ (Output) Khái ni m đệ ược h c: “ọ EnjoySport”

Trang 6

­ 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: ọ

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)ư ả ế ề ự ạ ậ ể1.5.  Th  t  các gi  thi t ứ ự ả ế

­ Các gi  thi t trong không gian đ u có th  tả ế ề ứ ự

1. h = gi  thi t c  th  nh t trong H ả ế ụ ể ấ

2. 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 a ớ ỗ ộ i  trong h

IF a i  tho  b i x ả ở

THEN do nothing ELSE

thay a i  b i ràng bu c t ng quát h n k  ti p mà nó đ ở ộ ổ ơ ế ế ượ c  tho  b i x ả ở

Trang 7

3.1. Ngôn ng  l p trình, bữ ậ i n môi trế ường, các th  vi n đư ệ ượ ử ục s  d ng

­ Thu t toá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 hoà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.ộ ả ọ

Trang 8

 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.ớNgoà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

­ 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.ố ị ữ ạ ố ệ

Trang 9

­ 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 : ộ ị ấ ậ ị ặ ệ ư `, ~, &, (, ), !, #, %, 

 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.ự ệ ả ậ

Trang 10

        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ằ ế ị ủ ộ ạ ằ ế

Đ i v i m i ràng bu c trên thu c tính ố ớ ỗ ộ ộ trong h

for i from 1 to nops(h) do

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

for i from 1 to nops(h) do

if h[i]=`?` or h[i]=x[i] then

Trang 11

4. HƯỚNG D N S  D NG CHẪ Ử Ụ ƯƠNG TRÌNH

­ Đ t bi n môi trặ ế ường nh  m c 3.1ư ụ

­ T o th  m c Find­S t i th  m c g c   đĩa C (t c là th  m c Find­S có đạ ư ụ ạ ư ụ ố ổ ứ ư ụ ường d n ẫ

nh  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   trên.ậ ư ư ụ ừ ạ ở

­ Ch y project Find­S v i NetBeans. Giao di n chạ ớ ệ ương trình nh  sau:ư

­ Có th  t o t p ví d  hu n luy n b ng m t trong hai cách sau:ể ạ ậ ụ ấ ệ ằ ộ

o T o m i m t Table: b ng cách nh p s  c t (vào m c Column Count) và s  ạ ớ ộ ằ ậ ố ộ ụ ốdòng (vào m c Row Count) r i b m nút Create Table.ụ ồ ấ

o B m nút Read From File đ  load t p tin Training Examples s n có v i c u trúcấ ể ậ ẵ ớ ấ  

Trang 12

Sunny Warm High Strong Warm Same Positive

­ Hi n th  Maximally Specific Hypothesis theo t ng bể ị ừ ước tính toán:

­ Hi n th  Maximally Specific Hypothesis theo t ng bể ị ừ ước tính toán:

Trang 13

­ Hi n th  Maximally Specific Hypothesis theo t ng bể ị ừ ước tính toán:

 h1 = [Japan, Honda, Blue, `1980`, Sedan]

 h2 = [Japan, Honda, Blue, `1980`, Sedan]

 h3 = [Japan, `?`, Blue, `?`, Sedan]

 h4 = [Japan, `?`, Blue, `?`, Sedan]

Trang 14

­ 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ế ả ộ ớ

Ch ươ ng 2: THU T TOÁN ID3

1. MÔ T  CHUNG THU T TOÁN ID3 VÀ BÀI TOÁNẢ Ậ

1.1. Thu t toán ID3

Thu t toán h c quy n p (inductive learning algorithm) cây quy t đ nh ID3 là m t thu t ậ ọ ạ ế ị ộ ậtoán đượ ử ục s  d ng r ng rãi trong s  nhi u thu t toán độ ố ề ậ ược đ a ra theo ti p c n h c d a trên ký ư ế ậ ọ ự

hi u bi u di n v n đ  dệ ể ễ ấ ề ướ ại d ng các ký hi u (symbol­based learning).ệ

Thu t toán h c quy n p cây ID3 (g i t t là ID3) là m t thu t toán h c đ n gi n nh ng tậ ọ ạ ọ ắ ộ ậ ọ ơ ả ư ỏ 

ra thành công trong nhi u lĩnh v c. ID3 là m t thu t toán hay vì cách bi u di n tri th c h c đề ự ộ ậ ể ễ ứ ọ ượ  c

c a nó, ti p c n c a nó trong vi c qu n lý tính ph c t p, Heuristic c a nó dùng cho vi c ch n ủ ế ậ ủ ệ ả ứ ạ ủ ệ ọ

l a các khái ni m  ng viên và ti m năng c a nó đ i v i vi c x  lý d  li u nhi u.ự ệ ứ ề ủ ố ớ ệ ử ữ ệ ễ

Trang 15

ID3 bi u di n các khái ni m   d ng các cây quy t đ nh. 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 thu t toán ID3 là h c cây quy t đ nh t  m t t p các ví d  hu n ư ậ ệ ụ ủ ậ ọ ế ị ừ ộ ậ ụ ấluy n (training examples) hay còn g i là d  li u hu n luy n. Hay nói khác h n, thu t toán 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 ầ ế ị ả ạ ắ ụ ậ ữ ệ

hu n luy n, cũng nh  đ i v i các ví d  khác.ấ ệ ư ố ớ ụ

1.2. Xét m t bài toán phân lo i c  thộ ạ ụ ể

Xét bài toán phân lo i xem “có đi ch i Tennis” (PlayTennis)  ng v i m t đi u ki n ạ ơ ứ ớ ộ ề ệnào đó hay không? Thu t toán ID3 s  h c cây quy t đ nh t  t p h p các ví d  hu n ậ ẽ ọ ế ị ừ ậ ợ ụ ấluy n sau (ệ Table 3.2 – Training examples for target concept PlayTennis, Machine Learning 

– Tom M.Mitchell, 2003):

Day Outlook Temp Humidit

B ng 1.1  – T p d  li u hu n luy n cho khái ni m “PlayTennis” ậ ữ ệ ấ ệ ệ

T p d  li u này bao g m 14 ví d  M i ví d  bi u di n cho đi u ki n th i ti t g m các ậ ữ ệ ồ ụ ỗ ụ ể ễ ề ệ ờ ế ồthu c tính Outlook (quang c nh), Temp (nhi t đ ), Humidity (đ   m) và Wind (gió); và đ u có ộ ả ệ ộ ộ ẩ ề

Trang 16

m t thu c tính phân lo i ộ ộ ạ PlayTennis (Yes, No), còn đ c g i là thu c tính đích. “No” nghĩa là ượ ọ ộkhông đi ch i Tennis  ng v i th i ti t đó, “Yes” nghĩa là ngơ ứ ớ ờ ế ượ ạc l i. Giá tr  phân lo i   đây ch  ị ạ ở ỉ

có hai lo i (Yes, No).ạ

M i thu c tính đ u có m t t p các giá tr  h u h n. Thu c tính Outlook có ba giá tr  ỗ ộ ề ộ ậ ị ữ ạ ộ ị

(Overcast, Rain, Sunny), Temp có ba giá tr  (Hot, Cool, Warm), Humidity có hai giá tr  (High, ị ịNormal) và Wind có hai giá tr  (Strong, Weak). Các giá tr  này chính là ký hi u (symbol) dùng đ  ị ị ệ ể

bi u di n bài toán.ể ễ

2. THU T TOÁN ID3 VÀ C  S  LÝ THUY TẬ Ơ Ở Ế

Quinlan (1983) là ngườ ầi đ u tiên đ  xu t vi c s  d ng lý thuy t thông tin đ  t o ra các ề ấ ệ ử ụ ế ể ạcây quy t đ nh và công trình c a ông là c  s  cho ph n trình bày   đây. Lý thuy t thông tin c a ế ị ủ ơ ở ầ ở ế ủShannon (1948) cung c p khái ni m Entropy đ  đo tính thu n nh t (hay ngấ ệ ể ầ ấ ượ ạc l i là đ  pha ộ

tr n) c a m t t p h p. M t t p h p là thu n nh t n u nh  t t c  các ph n t  c a t p h p đ u ộ ủ ộ ậ ợ ộ ậ ợ ầ ấ ế ư ấ ả ầ ử ủ ậ ợ ềthu c cùng m t lo i, và khi đó ta nói t p h p này có đ  pha tr n là th p nh t. Trong trộ ộ ạ ậ ợ ộ ộ ấ ấ ường h p ợ

c a t p ví d , thì t p ví d  là thu n nh t n u nh  t t c  các ví d  đ u có cùng giá tr  phân lo i.  ủ ậ ụ ậ ụ ầ ấ ế ư ấ ả ụ ề ị ạ

Khi t p ví d  là thu n nh t thì có th  nói: ta bi t ch c ch n v  giá tr  phân lo i c a m t ậ ụ ầ ấ ể ế ắ ắ ề ị ạ ủ ộ

ví d  thu c t p này, hay ta có lụ ộ ậ ượng thông tin v  t p đó là cao nh t. Khi t p ví d  có đ  pha tr nề ậ ấ ậ ụ ộ ộ  cao nh t, nghĩa là s  lấ ố ượng các ví d  có cùng giá tr  phân lo i cho m i lo i là tụ ị ạ ỗ ạ ương đương nhau, thì khi đó ta không th  đoán chính xác để ược m t ví d  có th  có giá tr  phân lo i gì, hay nói khác ộ ụ ể ị ạ

h n, lơ ượng thông tin ta có được v  t p này là ít nh t. V y, ta c n ch n thu c tính đ  h i sao choề ậ ấ ậ ầ ọ ộ ể ỏ  

có th  chia t p ví d  ban đ u thành các t p ví d  thu n nh t càng nhanh càng t t. V y trể ậ ụ ầ ậ ụ ầ ấ ố ậ ước 

h t, ta c n có m t phép đo đ  đo đ  thu n nh t c a m t t p h p, t  đó m i có th  so sánh t p ế ầ ộ ể ộ ầ ấ ủ ộ ậ ợ ừ ớ ể ậ

ví d  nào thì t t h n.ụ ố ơ

2.1. Entropy đo tính thu n nh t c a t p ví dầ ấ ủ ậ ụ

Khái ni m entropy c a m t t p S  đệ ủ ộ ậ ược  đ nh nghĩa trong Lý thuy t thông tin là s  lị ế ố ượng mong đ i các bít c n thi t đ  mã hóa thông tin v  l p c a m t thành viên rút ra m t cách ng u ợ ầ ế ể ề ớ ủ ộ ộ ẫnhiên t  t p S. Trong trừ ậ ường h p t i  u, mã có đ  dài ng n nh t. Theo lý thuy t thông tin, mã cóợ ố ư ộ ắ ấ ế  

đ  dài t i  u là mã gán ộ ố ư –log2p bits cho thông đi p có xác su t là p.ệ ấ

Trong trường h p S là t p ví d , thì thành viên c a S là m t ví d , m i ví d  thu c m t ợ ậ ụ ủ ộ ụ ỗ ụ ộ ộ

l p hay có m t giá tr  phân lo i. ớ ộ ị ạ

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

Entropy(S) = 0  t p ví d  S ch  toàn ví d  thu c cùng m t lo i, hay S là thu n nh t.ậ ụ ỉ ụ ộ ộ ạ ầ ấ

Trang 17

Entropy(S) = 1  t p ví d  S có các ví d  thu c các lo i khác nhau v i đ  pha tr n là cao nh t. ậ ụ ụ ộ ạ ớ ộ ộ ấ

0 < Entropy(S) < 1  t p ví d  S có s  lậ ụ ố ượng ví d  thu c các lo i khác nhau là không b ng ụ ộ ạ ằnhau. 

Đ  đ n gi n ta xét trể ơ ả ường h p các ví d  c a S ch  thu c lo i  âm (­) ho c dợ ụ ủ ỉ ộ ạ ặ ương (+). 

Hình 3.4 minh h a s  ph  thu c c a giá tr  entropy vào ọ ự ụ ộ ủ ịxác su t xu t hi n c a ví d  dấ ấ ệ ủ ụ ương

Cho trước: 

•  T p S là t p d  li u rèn luy n, trong đó thu c tính phân ậ ậ ữ ệ ệ ộ

lo i có hai giá tr , gi  s  là âm (­) và dạ ị ả ử ương (+) 

•  p+ là ph n các ví d  dầ ụ ương trong t p S. ậ

•  p_ là ph n các ví d  âm trong t p S. ầ ụ ậ

Khi đó, entropy đo đ  pha tr n c a t p S theo công th c ộ ộ ủ ậ ứsau: 

Entropy(S) = ­ p +  log 2  p +  ­ p ­  log 2  p ­

M t cách t ng quát h n, n u các ví d  c a t p S thu c nhi u h n hai lo i, gi  s  là có c ộ ổ ơ ế ụ ủ ậ ộ ề ơ ạ ả ửgiá tr  phân lo i thì công th c entropy t ng quát là:ị ạ ứ ổ

Entropy(S) =  I  log 2  p i

2.2. Lượng thông tin thu được đo m c đ  gi m entropy mong đ iứ ộ ả ợ

Entropy là m t s  đo đo đ  pha tr n c a m t t p ví d , bây gi  chúng ta s  đ nh nghĩa ộ ố ộ ộ ủ ộ ậ ụ ờ ẽ ị

m t phép đo hi u su t phân lo i các ví d  c a m t thu c tính. Phép đo này g i là lộ ệ ấ ạ ụ ủ ộ ộ ọ ượng thông tin thu được, nó đ n gi n là lơ ả ượng gi m entropy mong đ i gây ra b i vi c phân chia các ví d  theo ả ợ ở ệ ụthu c tính này.ộ

M t cách chính xác h n, Gain(S,A) c a thu c tính A, trên t p S, độ ơ ủ ộ ậ ược đ nh nghĩa nh  sau:ị ư  Gain (S,A) = Entropy (S) ­  Entropy (Sv) trong đó Values(A) là t p h p có th  có các giá tr  c a ậ ợ ể ị ủthu c tính A, và Sộ v là t p con c a S ch a các ví d  có thu c tính A mang giá tr  v.ậ ủ ứ ụ ộ ị

2.3.  Áp d ng c  th  cho ví d  hu n luy n   B ng 1.1ụ ụ ể ụ ấ ệ ở ả

­ Bước 1: cây cho S

o Gain(S, Outlook) = 0.246

o Gain(S, Humidity) = 0.151

o Gain(S, Wind) = 0.048

Trang 18

o Gain(Ssunny, Humidity) = 0.97­ (3/5)0.0 – (2/5)0.0 = 0.97

o Gain(Ssunny, Wind) = 0.97 – (2/5)1.0 –(3/5)0.918 = 0.019

o Gain(Ssunny, Temperature) = 0.97­(2/5)0.0­(2/5)1.0­(1/5)0.0=0.57

 Humidity : thu c tính phân lo i t t nh t t i bộ ạ ố ấ ạ ước này

 Humidity: root c a Ssunny.ủ

Cây nh  sau:ư

Trang 19

­ Bước 3: Cây cho Srain

o Srain={D4,D5,D6,D10,D14}

 K t qu :ế ả

Trang 20

­ Đi u ki n d ng:ề ệ ừ

o M i nút là đ u n m vào 1 trong hai trọ ề ằ ường h p:ợ

 1. T t c  các thu c tính đ u đã n m trên node thu c con đấ ả ộ ề ằ ộ ường t  root ừ

đ n lá đó.ế

 2. Node lá có entropy = 0

Entropy=0, T t c  cá th  đ u + ấ ả ể ề  Phân lo i Yes.ạEntropy=0, T t c  cá th  đ u ­ ấ ả ể ề  Phân lo i No.ạ2.4. Thu t toán ID3

­ T o node g c cho cây.ạ ố

­ if t t c  các cá th  là positive ấ ả ể then tr  v  cây ch  có node, nhãn là +ả ề ỉ

­ if t t c  các cá th  là negative ấ ả ể then tr  v  cây ch  có node, nhãn là –ả ề ỉ

­ if Attributes tr ng then tr  v  cây ch  có 1 node, nhãn là giá tr  chung nh t c a ả ề ỉ ị ấ ủ

Target_Attribute trong t p cá th ậ ể

­ else: Begin

o A   Thu c tính t  Attributes t t nh t phân lo i t p cá th ộ ừ ố ấ ạ ậ ể

o Thu c tính cho root là A. (root ộ  A)

o For each tr  Vị i c a A:ủ

 Thêm 1 nhánh m i dớ ưới root, tương  ng A = Vứ i

 ExamplesVi = t p con các cá th  thu c Examples có A=Vậ ể ộ i

Trang 21

­ Thu t toán ID3 đậ ượ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:\ID3\”.ư ệ ư ư ụ

­ Chương trình được vi t hoà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  n i Java v i Mapleụ ế ố ớ

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 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.ớNgoà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 ID3.mw: cài đ t thu t toán ID3 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 toán đã đậ ạ ử ậ ược cài đ t   trên v i m t s  d  li u ặ ở ớ ộ ố ữ ệ

hu n  luy n; tính các ch  s  Entropy, Gain… trong các trấ ệ ỉ ố ường h p tợ ương  ng.ứ

­ T p tin DecisionTreeFrame.java: hi n th  cây quy t đ nh.ậ ể ị ế ị

Trang 22

­ T p tin Main.java: t o form v i các thao tác tậ ạ ớ ương  ng (T o b ng, Đ c ví d  hu n ứ ạ ả ọ ụ ấluy n t  t p tin, Hi n th  các lu t, Hi n th  cây quy t đ nh).ệ ừ ậ ể ị ậ ể ị ế ị

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à:

­ Dòng đ u tiên mô t  các thu c tính có trong ví d  hu n luy n, m i thu c tính cách ầ ả ộ ụ ấ ệ ỗ ộnhau ít nh t m t kho ng tr ng ho c m t tab. Thu c tính cu i cùng là thu c tính phân ấ ộ ả ắ ặ ộ ộ ố ộ

lo i. M i thu c tính có m t s  giá tr  h u h n.ạ ỗ ộ ộ ố ị ữ ạ

­ M i dòng k  ti p là m t ví d  hu n luy n, 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ýể ấ ậ  

o Vector ListNodes(String Nodes):

 Chuy n chu i Nodes k t qu  tr  v  c a hàm GetNodes(T) trong Mapleể ỗ ế ả ả ề ủ  thành 1 Vector trong Java

Trang 23

 Thành ph n c a Vector s  là m i nút đầ ủ ẽ ỗ ượ ưc l u thành 1 danh sách g m ồnút cha và các nút con, m i nút s  đỗ ẽ ược tách b i d u "|" đ  phân bi t ở ấ ể ệ

 S  ki n c a button ShowRules, hi n th  các lu t.ự ệ ủ ể ị ậ

 Chuy n t  chu i T, là danh sách các nhánh c a cây quy t đ nh t  ể ừ ỗ ủ ế ị ừMaple v i Training Examples l y t  b ng d  li u trong form, sang các ớ ấ ừ ả ữ ệ

lu t.ậ+ T p tin DecisionTreeFrame:ậ

o void paintComponent(Graphics g): hàm v  cây quy t đ nhẽ ế ị

 Duy t qua các nút con c a nút parent (kh i t o = 0). Trệ ủ ở ạ ường h p n u ợ ế

ch  có 1 nút con, v  nút đó ngay bên dỉ ẽ ưới nút parent; n u s  nút con là ế ố

ch n, v  bên dẵ ẽ ưới nút parent, l y nút parent là đi m gi a cách đ u các ấ ể ữ ềnút con; n u s  nút con là l , v  bên dế ố ẻ ẽ ưới nút parent, l y ph n t    ấ ầ ử ở

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

🧩 Sản phẩm bạn có thể quan tâm

w