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

Đồ án tốt nghiệp: Nghiên cứu thuật toán K-nearest neighbor và sử dụng Iris flowers dataset đánh giá hiệu quả thuật toán

42 321 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 42
Dung lượng 0,96 MB

Nội dung

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.

LỜ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 tốn K­nearest neighbor và sử  dụng iris flowers dataset đánh giá hiệu quả  thuật tố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 MỤC LỤC DANH MỤC TỪ VIẾT TẮT STT Từ viết tắt Ý nghĩa AI Artificial Intelligence ML Machine learning SVM Support Vector Machine KNN K­ nearest neighbor DANH MỤC BẢNG BIỂU STT Tên bảng Nội dung Bảng 1 Thơng tin lồi hoa Setosa Bảng 2 Thơng tin lồi hoa Versicolor Bảng 3 Thơng tin lồi hoa virginica DANH MỤC HÌNH ẢNH, ĐỒ THỊ STT Tên hình ảnh, đồ  thị Nội dung Hình 1 Mối quan hệ giữa AI, Machine Learning  và Deep Learning Hình 1.1.2 Ví dụ về mơ hình phân lớp Hình 2.1.3 Ví dụ minh họa thuật tốn KNN             Hình 2.1.4 Bản đồ minh họa knn nhiễu với k=1 Hình 2.2.2 Norm 1 và norm 2 trong khơng gian hai  chiều Hình 3.1.1 Hình ảnh minh họa về Iris flower dataset Hình 3.1.2 Sơ đồ minh họa phân cụm của Iris flower  datasets Hình 3.2.2 Mơ hình bài tốn LỜI CẢM ƠN Lời đầu tiên cho phép em gửi lời cảm  ơn sâu sắc tới tồ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 q báu và bổ ích trong suốt 5 năm học vừa qua Để hồ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 q trình học tập và nghiên cứu để hồ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ì đã ln 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   q trình học tập để em hồn thành tốt cơng việc của mình Trong q 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 q 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 Đặ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 ngun 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 ln là xu  hướng cơng nghệ  tương lai mà các hãng cơng nghệ  trên tồ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 đã q quen thuộc với con người: xe tự  hành của  Google và Tesla, hệ  thống tự  tag khn 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 Hì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  tốn thường dùng trong ML đó là thuật tốn K­ nearest neighbor Ứng dụng của thuật tốn này được sử dụng rất nhiều và rộng rãi trong các   bài tốn phân lớp Mục đích nghiên cứu  Nghiên cứu, tìm hiểu thuật tốn KNN  Đánh giá hiệu quả của thuật tốn 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  Đối tượng nghiên cứu: Thuật tốn KNN và bộ Iris flower dataset Nội dung thực hiện  Tìm hiểu thuật tố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á Cấu trúc đồ án  Mở đầu  Chương 1: Cơ sở lý thuyết  Chương 2: Thuật toán K­nearest neighbor  Chương 3: Thử nghiệm  Chương 4: Kết luận CHƯƠ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 tốn  Machine Learning có hiện nay được áp dụng rộng rãi bao gồm máy truy tìm   liệu, máy phân tích thị  trường chứng khốn,  nhận dạng tiếng nói và chữ  viết… 1.1.2 Một số phương thức của Machine Learning  Học có giám sát:   Thuật tốn dự  đốn đầu ra của một dữ  liệu mới (new   input) dựa trên các cặp (input, outcome) đã biết từ trước. Cặp dữ liệu này còn  10 48 6.2 2.9 4.3 1.3 49 5.1 2.5 3.0 1.1 50 5.7 2.8 4.1 1.3 Bảng 3: Thơng tin lồi Virginica Thứ tự Chiều dài đài  Chiều rộng  Chiều   hoa đài hoa cánh hoa dài  Chiều   rộng  cánh hoa 6.3 3.3 6.0 2.5 5.8 2.7 5.1 1.9 7.1 3.0 5.9 2.1 6.3 2.9 5.6 1.8 6.5 3.0 5.8 2.2 7.6 3.0 6.6 2.1 4.9 2.5 4.5 1.7 7.3 2.9 6.3 1.8 6.7 2.5 5.8 1.8 10 7.2 3.6 6.1 2.5 11 6.5 3.2 5.1 2.0 12 6.4 2.7 5.3 1.9 13 6.8 3.0 5.5 2.1 14 5.7 2.5 5.0 2.0 15 5.8 2.8 5.1 2.4 16 6.4 3.2 5.3 2.3 17 6.5 3.0 5.5 1.8 18 7.7 3.8 6.7 2.2 19 7.7 2.6 6.9 2.3 20 6.0 2.2 5.0 1.5 21 6.9 3.2 5.7 2.3 28 22 5.6 2.8 4.9 2.0 23 7.7 2.8 6.7 2.0 24 6.3 2.7 4.9 1.8 25 6.7 3.3 5.7 2.1 26 7.2 3.2 6.0 1.8 27 6.2 2.8 4.8 1.8 28 6.1 3.0 4.9 1.8 29 6.4 2.8 5.6 2.1 30 7.2 3.0 5.8 1.6 31 7.4 2.8 6.1 1.9 32 7.9 3.8 6.4 2.0 33 6.4 2.8 5.6 2.2 34 6.3 2.8 5.1 1.5 35 6.1 2.6 5.6 1.4 36 7.7 3.0 6.1 2.3 37 6.3 3.4 5.6 2.4 38 6.4 3.1 5.5 1.8 39 6.0 3.0 4.8 1.8 40 6.9 3.1 5.4 2.1 41 6.7 3.1 5.6 2.4 42 6.9 3.1 5.1 2.3 43 5.8 2.7 5.1 1.9 44 6.8 3.2 5.9 2.3 45 6.7 3.3 5.7 2.5 46 6.7 3.0 5.2 2.3 47 6.3 2.5 5.0 1.9 48 6.5 3.0 5.2 2.0 49 6.2 3.4 5.4 2.3 50 5.9 3.0 5.1 1.8 29 3.2. Cài đặt    3.2.1. Cài đặt python 3.6      Tải python tại đây: https://www.python.org/downloads/ Xuất hiện trang như hình dưới: Nhấp chuột vào dowload và chọn window Lúc đó xuất hiện trang có chứa các phiên bản của Python, vì cài đặt Python 3.6  nên ta tìm phiên bản 3.6 rồi tải về. Ví dụ hình dưới tơi chọn phiên bản 3.6.2 30 Khi tải về hồn tất ta bắt đầu tiến hành cài đặt: Nhấp đúp vào tệp vừa tải về đẻ cài đặt. Tại đây có hai lựa chọn: ­ Install now: Mặc định cài python vào ổ C, cài sẵn IDLE, pip và tài liệu… ­ Customize installation: cho phép chọn cài đặt và tính năng cần thiết 31 Khi đã cài đặt xong, mở IDLE để chạy thử một đoạn code như sau: Ok. Như vậy đã hồn thành xong việc cài đặt python, việc còn lại của chúng ta là  cài đặt những thư viện cần thiết để hỗ trợ cho bài tốn Ở đây, bài tốn chúng ta cần các thư viện sau: numpy, matplotlib, sklearn Sử dụng cmd để cài đặt: ­ Nếu pip của bạn chưa có sẵn gói thì ta phải cài đặt cho nó, ta thực hiện  như sau: ­ Sau khi cài đặt thành cơng gói pip ta tiếp tục cài đặt thư viện numpy: 32 ­ Cài đặt thư viện matplotlib: ­ Cuối cùng ta cài đặt thư viện sklearn: 33 Như  vậy là đã hoàn thành cài đặt các thư  viện hỗ  trợ  cho python cũng như  bài   tốn Một điều lưu ý   đây, trong thư  viện sklearn nó có chứa bộ  dữ  liệu Iris flower  dataset nên khi cần sử dụng bộ dữ liệu này ta khơng cần phải dowload về nữa Tìm hiểu một chút về thư viện Sklearn: Sklearn là thư  viện phổ  biến nhất của python. Nó viết sẵn các thuật tốn phức  tạp, bạn chỉ cần nhét dữ liệu vào và chờ nó tính tốn rồi lấy kết quả Ví dụ  muốn tìm hiểu xem python đang dùng thuộc phiên bản nào vào thư  viện  sklearn thuộc phiên bản nào thì ta chỉ cần kiểm tra như sau: 34 Kết quả nhận được: Ngồi ra thư  viện sklearn có sẵn các bộ  dữ  liệu thường được dùng trong nghiên   cứu: iris, files, digits, boston, same_images… 3.2.2. Thử nghiệm 35 Hình 3.2.2. Mơ hình bài tốn Trong phần này, chúng ta sẽ  tách 150 dữ  liệu trong Iris flower dataset ra   thành hai phần, gọi là training set và test set. Thuật tốn sẽ  dựa vào thơng tin  ở  training set để dự đốn xem mỗi dữ liệu trong test set tương ứng với loại hoa nào.  Dữ  liệu được chuẩn đốn này sẽ  được đối chiếu với loại hoa thật của mỗi dữ  liệu trong test set để đánh giá hiệu quả của KNN ­ Bước 1: Khai báo các thư viện cần thiết 36 ­ Bước 2: Load dữ liệu và hiện thị vài dữ liệu mẫu Kết quả nhận được: 37 ­ Bước 3: Tách training set và test set: Giả  sử chúng ta muốn dùng 50 điểm dữ  liệu cho test set và 100 điểm còn lại  cho training set. Thư  viện sklearn có một hàm số  cho phép chúng ta ngẫu nhiên  lựa chọn: Kết quả nhận được: 38 ­ Bước 4: KNN dự đốn Xét trường hớp K=1, tức là với mỗi điểm dữ liệu test ta chỉ xét 1 điểm dữ liệu   training gần nhất và lấy nhãn cả điểm đó để dự đốn cho điểm dữ liệu test Kết quả nhận được: Kết quả cho thấy nhãn dự đốn gần giống với label thật của dữ liệu test, chỉ có 2   trong số 20 điểm được hiển thị có kết quả sai lệch ­ Bước 5: Đánh giá  Để  đánh giá độ  chính xác của thuật tốn KNN, chúng ta xem có bao nhiêu điểm   trong dữ  liệu test được dự  đốn đúng. Lấy số  lượng đó chia cho tổng số  lượng   trong tập dữ liệu test sẽ ra độ chính xác. Thư viện sklearn cung cấp cho ta hàm số  accuracy_score để thực hiện cơng việc này 39 Kết quả nhận được: Với K=1 đã cho ra kết quả 96%. Nhận thấy rằng nếu chỉ xét 1 điểm gần nhất có  thể dẫn đến kết quả sai nếu điểm đó là nhiễu. Vậy nên ta thử xét với K=9 thì kết  quả sẽ như thế nào? Kết quả nhận được:   Kết quả đã tăng lên 98% Như vậy chúng ta đã giải quyết được bài tốn đặt ra với kết quả thu được   gần như hồn hảo Trong kỹ thuật majoring voting trên, mỗi trong 9 điểm gần nhất được xem  có vai trò và giá trị phiếu như nhau. Xét trên thực tế điều này là khơng đúng, vì rõ  ràng những điểm gần hơn sẽ phải có trọng số cao hơn. Vậy nên ta sẽ đánh trọng   số khác nhau cho 9 điểm đang xét nhưng phải thỏa mãn điều kiện điểm gần test   data thì phải có trọng số càng cao 40 Với giá trị mặc định weights=” uniform” tương  ứng với các điểm lân cận  có giá trị như nhau, ta gán giá trị của weights=” distance” lúc đó các điểm gần với  test data sẽ có trọng số cao hơn:  Kết quả sau khi đánh trọng số:  Kết quả nhận được khơng thay đổi! CHƯƠNG 4: KẾT LUẬN   Trong q trình thực hiện đồ án tốt nghiệp, em đã cố gắng hết sức để tìm  hiểu và học hỏi nhưng vì khả năng còn giới hạn khơng tránh khỏi những sai sót,   nên có theerchuwa giải quyết được tất cả  những vấn đề, đặt ra. Em rất mong   nhận được sự thơng cảm của q thầy cơ và các bạn. Em xin chân thành cảm ơn Những kết quả đạt được:            ­ Sự hiểu biết về thuật tốn KNN cơ bản tương đối tốt            ­ Làm quen với Iris flower dataset           ­ Từ những gì đã làm được, từ đó hiểu biết thêm về AI, ứng dụng của của   ML vào đời sống cơng nghệ hiện đại           ­ Làm quen ngơn ngữ lập trình Python 41 Những hạn chế: ­ Thuật tốn phụ thuộc nhiều vào hệ số K ­ Kết quả đưa ra có sự thay đổi (vì các điểm xét lấy ngẫu nhiên) ­ Chưa thự sự hiểu hết về bài tốn TÀI LIỆU THAM KHẢO [1]     https://machinelearningcoban.com/2017/01/08/knn/ [2]     https://en.wikipedia.org/wiki/Iris_flower_data_set [3]     https://machinelearningcoban.com/  [4]     https://vi.wikipedia.org/wiki/Hoc_máy [5]         Vũ Hữu Tiệp, Machine Learning cơ  bản, NXB Khoa Học Và Kỹ  Thuật,   2018   42 ... Nghiên cứu,  tìm hiểu thuật tốn KNN  Đánh giá hiệu quả của thuật toán 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  Đối tượng nghiên cứu: Thuật toán KNN và bộ Iris flower dataset. .. 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 tốn thường dùng trong ML đó là thuật tốn K­ nearest neighbor Ứng dụng của thuật tốn này được sử dụng rất nhiều và rộng rãi trong các   bài tốn phân lớp Mục đích nghiên cứu  Nghiên cứu,  tìm hiểu thuật tốn KNN... Đối tượng nghiên cứu: Thuật toán KNN và bộ Iris flower dataset Nội dung thực hiện  Tìm hiểu thuật tố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á Cấu trúc đồ án  Mở đầu  Chương 1: Cơ sở lý thuyết

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

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

TÀI LIỆU LIÊN QUAN

w