Mục tiêu của đồ án nhằm: nghiên cứu, tìm hiểu thuật toán K-nearest neighbor, đánh giá hiệu quả của thuật toán, làm quen với bộ dữ liệu Iris và sử dụng bộ dữ liệu vào thử nghiệm và đánh giá. Mời các bạn cùng tham khảo đồ án để nắm rõ các nội dug nghiên cứu.
Trang 1L I CAM ĐOANỜ
Em xin cam đoan: Khóa lu n văn đ án t t nghi p v i đ tài “Nghiên c uậ ồ ố ệ ớ ề ứ thu t toán Knearest neighbor và s d ng iris flowers dataset đánh giá hi u quậ ử ụ ệ ả thu t toán” là k t qu nghiên c u, tìm hi u c a b n thân em t nh ng kiên th cậ ế ả ứ ể ủ ả ừ ữ ́ ư ́
đa đ̃ ược thây, cô trong ̀ Vi n Ky thuât va Công nghê truyên day trong nh ng nămệ ̃ ̣ ̀ ̣ ̀ ̣ ữ qua và môt sô ngu n tài li u khác liên quan.̣ ́ ồ ệ
Em xin ch u m i trách nhi m v khóa lu n văn c a mình!ị ọ ệ ề ậ ủ
Nghê An, ngày 01 tháng 05 năm 2019 ̣
Sinh viên th c hi nự ệPhan Th Phị ượng
Trang 2M C L C Ụ Ụ
2
Trang 53 Hình 2.1.3 Ví d minh h a thu t toán KNN ụ ọ ậ
4 Hình 2.1.4 B n đ minh h a knn nhi u v i k=1ả ồ ọ ễ ớ
5 Hình 2.2.2 Norm 1 và norm 2 trong không gian hai
chi uề
6 Hình 3.1.1 Hình nh minh h a v Iris flower datasetả ọ ề
7 Hình 3.1.2 S đ minh h a phân c m c a Iris flowerơ ồ ọ ụ ủ
datasets
8 Hình 3.2.2 Mô hình bài toán
L I C M NỜ Ả Ơ
Trang 6L i đ u tiên cho phép em g i l i c m n sâu s c t i toàn th các th y côờ ầ ử ờ ả ơ ắ ớ ể ầ giáo trong Vi n K thu t và Công ngh – Trệ ỹ ậ ệ ường Đ i h c Vinh, nh ng ngạ ọ ữ ườ i
đã h t mình truy n đ t và ch d n cho chúng em nh ng ki n th c, nh ng bàiế ề ạ ỉ ẫ ữ ế ứ ữ
h c quý báu và b ích trong su t 5 năm h c v a qua.ọ ổ ố ọ ừ
Đ hoàn thành để ược đ án này, đ c bi t em xin đồ ặ ệ ược bày t s tri ân và xinỏ ự chân thành c m n gi ng viên ThS. Nguy n Bùi H u ngả ơ ả ễ ậ ười tr c ti p hự ế ướng d n,ẫ
ch b o em trong su t quá trình h c t p và nghiên c u đ hoàn thành đ án này. ỉ ả ố ọ ậ ứ ể ồSau n a, ữ em xin g i tình c m sâu s c t i gia đình và b n bè vì đã luôn bênử ả ắ ớ ạ
c nh khuy n khích, đ ng viên, giúp đ c v v t ch t l n tinh th n em trong su tạ ế ộ ỡ ả ề ậ ấ ẫ ầ ố quá trình h c t p đ em hoàn thành t t công vi c c a mình.ọ ậ ể ố ệ ủ
Trong quá trình nghiên c u và làm báo cáo do năng l c, ki n th c, trình đứ ự ế ứ ộ
b n thân còn h n h p nên không tránh kh i nh ng thi u sót. Em kính mong nh nả ạ ẹ ỏ ữ ế ậ
đượ ực s thông c m và nh ng ý ki n đóng góp c a quý th y cô và các b n.ả ữ ế ủ ầ ạ
Em xin chân thành c m n!ả ơ
Ngh An, ngày 01 tháng 05 năm 2019 ệ
Sinh viên th c hi nự ệPhan Th Phị ượng
M Đ UỞ Ầ
6
Trang 71. Đ t v n đặ ấ ề
Nh ng năm g n đây, AI n i lên nh m t b ng ch ng c a cu c cách m ngữ ầ ổ ư ộ ằ ứ ủ ộ ạ công nghi p l n th t Trí tu nhân t o có th đệ ầ ứ ư ệ ạ ể ược đ nh nghĩa nh m t nghànhị ư ộ
c a khoa h c máy tính liên quan đ n vi c t đ ng hóa các hành vi thông minh. Tríủ ọ ế ệ ự ộ
tu nhân t oệ ạ là m t b ph n c a khoa h c máy tính và do đó nó ph i độ ộ ậ ủ ọ ả ược đ tặ trên nh ng nguyên lý lý thuy t v ng ch c, có kh năng ng d ng đữ ế ữ ắ ả ứ ụ ược c a lĩnhủ
v c nàyự Ở ờ th i đi m hi n t i, thu t ng nàyể ệ ạ ậ ữ thường dùng đ nói đ n các máyể ế tính có m c đích không nh t đ nh và ngành khoa h c nghiên c u v các lý thuy tụ ấ ị ọ ứ ề ế
và các ng d ng c a trí tu nhân t o.ứ ụ ủ ệ ạ
Theo đà phát tri n c a công ngh , ng d ng trí tu nhân t o luôn là xuể ủ ệ ứ ụ ệ ạ
hướng công ngh tệ ương lai mà các hãng công ngh trên toàn th gi i đua nhauệ ế ớ sáng t o, nó là n n t ng c t lõi c a cu c cách m ng công ngh 4.0.ạ ề ả ố ủ ố ạ ệ
ML (Machine Learning) là m t lĩnh v c c a trí tu nhân t o, độ ự ủ ệ ạ ược sinh ra
t kh năng nh n di n m u và t lý thuy t các máy tính có th h c mà không c nừ ả ậ ệ ẫ ừ ế ể ọ ầ
ph i l p trình đ x lý các nhi m v c th nào đó.ả ậ ể ử ệ ụ ụ ể
H u h t m i nghành công nghi p đang làm vi c v i hàm lầ ế ọ ệ ệ ớ ượng l n dớ ữ
li u đ u nh n ra t m quan tr ng c a công ngh ML. Nh ng cái nhìn sáng su t tệ ề ậ ầ ọ ủ ệ ữ ố ừ ngu n d li u này – ch y u d ng th i gian th c – s giúp các t ch c v n hànhồ ữ ệ ủ ế ạ ờ ự ẽ ổ ứ ậ
hi u qu h n ho c t o l i th c nh tranh so v i các đ i th ệ ả ơ ặ ạ ợ ế ạ ớ ố ủ
Các ng d ng c a ML đã quá quen thu c v i con ngứ ụ ủ ộ ớ ười: xe t hành c aự ủ Google và Tesla, h th ng t tag khuôn m t trên Facebook, h th ng g i ý s nệ ố ự ặ ệ ố ợ ả
ph m c a Amazon, h th ng g i ý phim c a Netflix…, ch là m t vài trong vôẩ ủ ệ ố ợ ủ ỉ ộ vàn nh ng ng d ng c a trí tu nhân t o và c th là ML.ữ ứ ụ ủ ệ ạ ụ ể
Trang 8Hình 1. M i quan h gi a AI, Machine Learning và Deep Learning ố ệ ữ
Xu hướng phát tri n công ngh thông tin ngày càng tăng, song song v i nó ể ệ ớ
lượng d li u đữ ệ ược sinh ra cũng ngày m t l n. Vì v y nhu c u đ x lý d li u ộ ớ ậ ầ ể ử ữ ệcũng l n h n, ML đang góp ph n gi i quy t v n đ này. M t trong nh ng thu t ớ ơ ầ ả ế ấ ề ộ ữ ậtoán thường dùng trong ML đó là thu t toán K nearest neighbor.ậ
ng d ng c a thu t toán này đ c s d ng r t nhi u và r ng rãi trong các
bài toán phân l p.ớ
2. M c đích nghiên c uụ ứ
Nghiên c u, tìm hi u thu t toán KNN.ứ ể ậ
Đánh giá hi u qu c a thu t toán.ệ ả ủ ậ
3. Ph m vi và đ i tạ ố ượng nghiên c uứ
Ph m vi nghiên c u: Th nghi m trên Iris flower dataset.ạ ứ ử ệ
8
Trang 9 Đ i tố ượng nghiên c u: Thu t toán KNN và b Iris flower dataset.ứ ậ ộ
4. N i dung th c hi nộ ự ệ
Tìm hi u thu t toán KNN.ể ậ
Làm quen v i b d li u Iris.ớ ộ ữ ệ
S d ng b d li u vào th nghi m và đánh giá.ử ụ ộ ữ ệ ử ệ
Trang 10CHƯƠNG 1. C S LÝ THUY TƠ Ở Ế
1.1. Machine Learning
1.1.1. Đ nh nghĩa ị
Là m t lĩnh v c c a trí tu nhân t o liên qua đ n vi c nghiên c u và xâyộ ự ủ ệ ạ ế ệ ứ
d ng cácự kĩ thu t cho phép các h th ng h c t đ ng t d li uậ ệ ố ọ ự ộ ừ ữ ệ đ gi i quy t cácể ả ế
v n đ c th Ví d các máy có th h c cách phân lo i th đi n t có ph i thấ ề ụ ể ụ ể ọ ạ ư ệ ử ả ư rác hay không và t đ ng s p x p vào các th m c tự ộ ắ ế ư ụ ương ng.ứ
Machine Learning có liên quan đ n th ng kê vì c hai lĩnh v c đ u nghiênế ố ả ự ề
c u vi c phân tích d li u, nh ng khác v i th ng kê, h c máy t p trung vàoứ ệ ữ ệ ư ớ ố ọ ậ
s ph c t p c a các gi i thu tự ứ ạ ủ ả ậ trong vi c th c thi tính toán.ệ ự
Machine Learning có hi n nay đệ ược áp d ng r ng rãi bao g mụ ộ ồ máy truy tìm
d li u, máy phân tích th trữ ệ ị ường ch ng khoán,ứ nh n d ng ti ng nói và chậ ạ ế ữ
Trang 11được g i là (ọ data, label), t c ( ứ d li u, nhãn ữ ệ ). Supervised learning là nhóm phổ
bi n nh t trong các thu t toán Machine Learning.ế ấ ậ
H c có giám sát đọ ược chia thành hai lo i chính:ạ
Classification (phân l p): Lớ à quá trình phân l p m t đ i tớ ộ ố ượng d li u vào m tữ ệ ộ hay nhi u l p đã cho trề ớ ước nh m t mô hình phân l p (model). Mô hình này đờ ộ ớ ượ cxây d ng d a trên m t t p d li u đự ự ộ ậ ữ ệ ược xây d ng trự ước đó có gán nhãn (hay còn
g i là t p hu n luy n). Quá trình phân l p làọ ậ ấ ệ ớ quá trình gán nhãn cho đ i tố ượng dữ
li u.ệ
Hình 1.1.2: Ví d v mô hình phân l p ụ ề ớ
Có nhi u bài toán phân l p nh phân l p nh phân, phân l p đa l p, phân l p đaề ớ ư ớ ị ớ ớ ớ
tr Trong đó phân l p nh phân là m t lo i phân l p đ c bi t c a phân l p đa l p.ị ớ ị ộ ạ ớ ặ ệ ủ ớ ớ
Trang 12ng d ng c a bài toán phân l p đ c s d ng r t nhi u và r ng rãi nh nh n d ng
khuôn m t, nh n d ng ch vi t, nh n d ng gi ng nói, phát hi n th rác…ặ ậ ạ ữ ế ậ ạ ọ ệ ư
Regression (h i quy): N uồ ế không được chia thành các nhóm mà là m t giá trộ ị
th c c th Đ u ra c a m t đi m d li u s b ng chính đ u ra c a đi m dự ụ ể ầ ủ ộ ể ữ ệ ẽ ằ ầ ủ ể ữ
d li u hu n luy n c a UL không do con ngữ ệ ấ ệ ủ ười gán nhãn, máy tính s ph i tẽ ả ự
h c hoàn toàn. Có th nói, h c không giám sát thì giá tr đ u ra s ph thu c vàoọ ể ọ ị ầ ẽ ụ ộ thu t toán ULậ ng d ng l n ph bi n c a h c không giám sát là bài toán phânỨ ụ ớ ổ ế ủ ọ
c m.ụ
H c bán giám sát: Các bài toán khi có m t s lọ ộ ố ượng l n d li u nh ng ch ớ ữ ệ ư ỉ
m t ph n trong chúng độ ầ ược dán nhãn. Nh ng bài toán này n m gi a phữ ằ ữ ương
th c h c giám sát và h c không giám sát.ư ọ ọ
1.2. Bài toán phân l p d li uớ ữ ệ
1.2.1. Quá trình phân l p d li u ớ ữ ệ
Đ xây d ng để ự ược mô hình phân l p và đánh giá hi u qu c a mô hình c n ớ ệ ả ủ ầ
ph i th c hi n quá trình sau đây:ả ự ệ
Bước 1: Chu n b t p d li u hu n luy n và rút trích đ c tr ng.ẩ ị ậ ữ ệ ấ ệ ặ ư
Công đo n này đạ ược xem là công đo n quan tr ng trong các bài toán v ML. vì ạ ọ ề
đây là input cho vi c h c đ tìm ra mô hình c a bài toán. Chúng ta ph i bi t c n ệ ọ ẻ ủ ả ế ầ
ch n ra nh ng đ c tr ng t t c a d li u, lọ ữ ặ ư ố ủ ữ ệ ược b nh ng đ c tr ng không t t c a ỏ ữ ặ ư ố ủ
d li u, gây nhi u. ữ ệ ễ Ướ ược l ng s chi u c a d li u bao nhiêu là t t hay nói cách ố ề ủ ữ ệ ốkhác là ch n bao nhiêu feature. N u s nhi u quá l n gây khó khăn cho vi c tính ọ ế ố ề ớ ệ
12
Trang 13toán thì ph i gi m s chi u c a d li u nh ng v n gi đả ả ố ề ủ ữ ệ ư ẫ ữ ược đ chính xác c a dộ ủ ữ
Bước 2: Xây d ng mô hình phân l pự ớ
M c đích c a mô hình hu n luy n là tìm ra hàm F(x) và thông qua hàm f tìmụ ủ ấ ệ
được đ chúng ta gán nhãn cho d li u. Bể ữ ệ ước này thường được g i là h c hayọ ọ training
F(x)= y
Trong đó: x là các feature hay input đ u vào c a d li uầ ủ ữ ệ
Y là nhãn dán l p hay output đ u raớ ầ
Thông thường đ xây d ng mô hình phân l p cho bài toán này chúng ta sể ự ớ ử dungjcacs thu t toán h c giám sát nh KNN, NN, SVM, Decision tree, Navieậ ọ ư Bayers
Bước 3: Ki m tra d li u v i mô hìnhể ữ ệ ớ
Sau khi tìm được mô hình phân l p bớ ở ước hai, thì bước này chúng ta s đ aẽ ư vào các d li u m i đ ki m tra trên mô hình phân l p.ữ ệ ớ ẻ ể ớ
Bước 4: Đánh giá mô hình phân l p và ch n ra mô hình t t nh tớ ọ ố ấ
Bước cu i cùng chúng ta s đánh giá mô hình b ng cách đánh giá m c đ l iố ẽ ằ ứ ộ ỗ
c a d li u testing và d li u training thông qua mô hình tìm đủ ữ ệ ữ ệ ược. N u khôngế
đ t đạ ược k t qu mong mu n c a chúng ta thì ph i thay đ i các tham s c aế ả ố ủ ả ổ ố ủ thu t toán h c đ tìm ra các mô hình t t h n và ki m tra, đánh giá l i mô hìnhậ ọ ể ố ơ ể ạ phân l p. và cu i cùng ch n ra mô hình phân l p t t nh t cho bài toán c a chúngớ ố ọ ớ ố ấ ủ ta
Trang 15CHƯƠNG 2: THU T TOÁN KNEAREST NEIGHBORẬ
2.1. Thu t toán knearest neighborậ
2.1.1. Đ nh nghĩa ị
Knearest neighbor (KNN) là m t trong nh ng thu t toán h c có giám sátộ ữ ậ ọ
đ n gi n nh t trong Machine Learning. Ý tơ ả ấ ưởng c a KNN là tìm ra output c a dủ ủ ữ
ki u d a trên thông tin c a nh ng d li u training g n nó nh t.ệ ự ủ ữ ữ ệ ầ ấ
2.1.2. Quy trình làm vi c c a thu t toán KNN ệ ủ ậ
Bước 1: xác đ nh tham s K= s láng gi ng g n nh t.ị ố ố ề ầ ấ
Bước 2: tính kho ng cách đ i tả ố ượng c n phân l p v i t t c các đ i tầ ớ ớ ấ ả ố ượ ngtrong training data
Bước 3: s p x p kho ng cách theo th t tăng d n và xác đ nh K lángắ ế ả ứ ự ầ ị
gi ng g n nh t v i đ i tề ầ ấ ớ ố ượng c n phân l pầ ớ
Bước 4: l y t t c các l p c a K láng gi ng g n nh t.ấ ấ ả ớ ủ ề ầ ấ
Bước 5: d a vào ph n l n l p c a K đ xác đ nh l p cho đ i tự ầ ớ ớ ủ ể ị ớ ố ượng c nầ phân l p.ớ
2.1.3. Ví d minh h a ụ ọ
Trang 16Hình 2.1.3. ví d minh h a thu t toán KNN ụ ọ ậ
Gi s bài toán đả ử ược đ t ra: mình m i quen m t ngặ ớ ộ ười b n, tuy nhiênạ mình là fan c a UsUk v y nên mình c n bi t ngủ ậ ầ ế ườ ại b n này có ph i là fan c aả ủ KPop hay không. Qua th i gian tìm hi u mình đã thu th p đờ ể ậ ược m t s d li uộ ố ữ ệ
và đã bi u hi n dể ệ ướ ại d ng hình v trên.ẽ
Ta d dàng nhìn th y có hai lo i: hình vuông màu xanh bi u di n choễ ấ ạ ể ễ
nh ng ngữ ười là fan c a Kpop, tam giác màu đ bi u di n cho nh ng ngủ ỏ ể ễ ữ ườ ikhông là fan c a Kpop, hình tròn màu xanh là ngủ ườ ại b n mình mu n bi t có ph iố ế ả
là fan Kpop hay không, kho ng cách gi a ch m tròn và các đi m còn l i bi uả ữ ấ ể ạ ể
di n đ thân thi t c a b n đó v i nh ng ngễ ộ ế ủ ạ ớ ữ ườ ại b n
Phương pháp đ n gi n nh t đ ki m tra xem b n đó ch i thân v i ngơ ả ấ ể ể ạ ơ ớ ườ i
b n nào nh t, t c là tìm xem đi m g n ch m xanh thu c class nào (hình vuôngạ ấ ứ ể ầ ấ ộ hay tam giác). T hình trên ta d dàng nh n th y đi m g n ch m xanh nh t làừ ễ ậ ấ ể ầ ấ ấ hình tam giác màu đ , do đó nó s đỏ ẽ ược phân vào l p tam giác màu đ ớ ỏ
Có m t v n đ trong phộ ấ ề ương pháp trên, xung quanh c m xanh xu t hi nấ ấ ệ
r t nhi u hình vuông màu xanh nên vi c xét đi m g n nh t là ch a kh thi. Vìấ ề ệ ể ầ ấ ư ả
v y, ta s xét k đi m g n nh t. Gi s , ta l y K=3, d a theo hình trên ta d dàngậ ẽ ể ầ ấ ả ử ấ ự ễ
16
Trang 17Hình 2.1.4. B n đ minh h a knn nhi u v i k=1 ả ồ ọ ễ ớ
Hình trên là bài toán phân l p v i ba l p: đ , lam, l c. M i đi m d li uớ ớ ớ ỏ ụ ỗ ể ữ ệ
m i s đớ ẽ ược gán nhãn theo màu c a đi m đó mà nó thu c v Trong hình này, chúủ ể ộ ề
ý vùng khoanh tròn màu vàng, ta nh n th y r ng đi m màu l c n m gi a hai vùngậ ấ ằ ể ụ ằ ữ
l n v i nhi u d li u đ và lam, đi m này r t có th là nhi u d n đ n vi c dớ ớ ề ữ ệ ỏ ể ấ ể ễ ẫ ế ệ ữ
li u test n u r i vào vùng này s có nhi u kh năng cho k t qu sai l ch. ệ ế ơ ẽ ề ả ế ả ệ
Trang 182.1.5. u đi m, nh Ư ể ượ c đi m c a thu t toán ể ủ ậ
KNN nhi u d đ a ra k t qu không chính xác khi k nh ễ ễ ư ế ả ỏ
C n th i gian l u training set, khi d li u training và test tăng lên nhi u sầ ờ ư ữ ệ ề ẽ
m t nhi u th i gian tính toán.ấ ề ờ
Vi c đo kho ng cách gi a hai đi m d li u nhi u chi u, t c hai vector, làệ ả ữ ể ữ ệ ề ề ứ
r t c n thi t trong Machine Learning. Chúng ta c n đánh giá xem đi m nào làấ ầ ế ầ ể
đi m g n nh t c a m t đi m khác; chúng ta cũng c n đánh giá xem đ chính xácể ầ ấ ủ ộ ể ầ ộ
c a vi c ủ ệ ướ ược l ng; và trong r t nhi u ví d khác n a.ấ ề ụ ữ
Và đó chính là lý do mà khái ni m norm ra đ i. Có nhi u lo i norm khácệ ờ ề ạ nhau mà các b n s th y dạ ẽ ấ ở ưới đây:
18
Trang 19Đ xác đ nh kho ng cách gi a hai vectorể ị ả ữ y và z, ng i ta th ng áp d ngườ ườ ụ
m t hàm s lên vector hi uộ ố ệ x = y−z. M t hàm s đ c dùng đ đo các vector c nộ ố ượ ể ầ
có m t vài tính ch t đ c bi t.ộ ấ ặ ệ
2.2.1. Đ nh nghĩa ị
M t hàm sộ ố f () ánh x m t đi mạ ộ ể x t không gianừ nn chi u sang t p s th cề ậ ố ự
m t chi u độ ề ược g i là norm n u nó th a mãn ba đi u ki n sau đây:ọ ế ỏ ề ệ
Gi s các vector ả ử x = [x1; x2…xn], y = [y1; y2…yn]
Nh n th y kho ng cách Euclid chính là m t norm, norm mày thậ ấ ả ộ ường được g i làọ norm 2:
(1)
V i p là m t s không nh h n 1 b t k , hàm s sau đây:ớ ộ ố ỏ ơ ấ ỳ ố
(2)
Được ch ng minh th a mãn ba ddieuf ki n trên, và đứ ỏ ệ ược g i là norm p.ọ
Nh n th y r ng khiậ ấ ằ p 0→ thì bi u th c bên trên tr thànhể ứ ở s các ph n t khác 0ố ầ ử
c aủ x. Hàm số (2) khi p=0 đ c g i là gi chu n (pseudonorm) 0. Nó không ph iượ ọ ả ẩ ả
Trang 20là norm vì nó không th a mãn đi u ki n 2 và 3 c a norm. Gi chu n này, thỏ ề ệ ủ ả ẩ ườ ng
được ký hi u làệ ||x||0, khá quan tr ng trong ML vì trong nhi u bài toán, chúng taọ ề
c n có ràng bu c “sparse”, t c s lầ ộ ứ ố ượng thành ph n “active” c aầ ủ x là nh ỏ
Có m t vài giá tr c a ộ ị ủ p th ng đ c dùng:ườ ượ
Khi p = 2 chúng ta có norm2 nh trên.ư ở
Khi p = 1 chúng ta có:
||x||1 = |x1| + |x2| + |x3| +…|xn| (3)
Là t ng các giá tr tuy t đ i c a t ng ph n t c a ổ ị ệ ố ủ ừ ầ ử ủ x. Norm 1 thường được dùng
nh s p x c a norm 0 trong các bài toán có ràng bu c. Dư ấ ỉ ủ ộ ưới đây là m t ví d soộ ụ sánh norm 1 và norm 2 trong không gian hai chi u:ề
Trang 21đi t ừ x đ n ế y trong m t thành ph mà thành ph đ c t o hình bàn c , chúng taộ ố ố ượ ạ ờ
ch có th đi theo d c bàn c ch không th đi theo đỉ ể ọ ờ ứ ể ường th ng.ẳ
Khi p > ∞, ta có norm p chính là tr tuy t đ i c a ph n t l n nh t c aị ệ ố ủ ầ ử ớ ấ ủ vector đó:
(4)
CHƯƠNG 3: TH NGHI MỬ Ệ