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 1TR ƯỜ 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 2L 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 3M c L c ụ ụ
Trang 4Ch ươ ng 1: THU T TOÁN FINDS Ậ
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 54 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 73.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 FindS đậ ượ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:\FindS\”.ạ ư ệ ư ư ụ
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 10cx: 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 114. 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 FindS t i th m c g c đĩa C (t c là th m c FindS có đạ ư ụ ạ ư ụ ố ổ ứ ư ụ ường d n ẫ
nh sau “C:\FindS\”). Sau đó ch y t p tin FindS.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 FindS 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 12Sunny 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 (symbolbased 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 15ID3 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 16m 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 17Entropy(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 18o 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 ấ ầ ử ở