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 toán K-nearest neighbor sử dụng iris flowers dataset đánh giá hiệu thuật toán” kết nghiên cứu, tìm hiểu thân em từ những kiến thức đã được thầy, cô Viện Kỹ thuật Công nghệ truyền dạy những năm qua một số nguồn tài liệu khác liên quan Em xin chịu trách nhiệm khóa luận văn mình! Nghệ An, ngày 01 tháng 05 năm 2019 Sinh viên thực Phan Thị Phượng MỤC LỤC DANH MỤC TỪ VIẾT TẮT DANH MỤC BẢNG BIỂU .5 DANH MỤC HÌNH ẢNH, ĐỒ THỊ MỞ ĐẦU Đặt vấn đề .8 Mục đích nghiên cứu Phạm vi đối tượng nghiên cứu Nội dung thực .10 Cấu trúc đồ án .10 CHƯƠNG CƠ SỞ LÝ THUYẾT 11 1.1 Machine Learning 11 1.1.1 Định nghĩa 11 1.1.2 Một số phương thức Machine Learning .11 1.2 Bài toán phân lớp dữ liệu 13 1.2.1 Quá trình phân lớp liệu 13 CHƯƠNG 2: THUẬT TỐN K-NEAREST NEIGHBOR 15 2.1 Thuật tốn k-nearest neighbor .15 2.1.1 Định nghĩa .15 2.1.2 Quy trình làm việc thuật toán KNN 15 2.1.3 Ví dụ minh họa .15 2.1.4 Ví dụ Knn nhiễu 17 2.1.5 Ưu điểm, nhược điểm thuật toán .17 2.2 Khoảng cách không gian vector 18 2.2.1 Định nghĩa .18 2.2.2 Một số norm thường dùng .18 CHƯƠNG 3: THỬ NGHIỆM 21 3.1 Bộ dữ liệu Iris flower dataset .21 3.1.1 Giới thiệu .21 3.1.2 Sử dụng tập liệu 22 3.1.3 Tập liệu .23 3.2 Cài đặt 31 3.2.1 Cài đặt python 3.6 31 3.2.2 Thử nghiệm 36 CHƯƠNG 4: KẾT LUẬN .41 TÀI LIỆU THAM KHẢO 42 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 Thơng tin lồi hoa Setosa Bảng Thơng tin lồi hoa Versicolor Bảng 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 Mối quan hệ giữa AI, Machine Learning Deep Learning Hình 1.1.2 Ví dụ 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 norm không gian hai chiều Hình 3.1.1 Hình ảnh minh họa Iris flower dataset Hình 3.1.2 Sơ đồ minh họa phân cụm Iris flower datasets Hình 3.2.2 Mơ hình toá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 toàn thể thầy cô giáo Viện Kỹ thuật Công nghệ – Trường Đại học Vinh, những người đã truyền đạt dẫn cho chúng em những kiến thức, những học quý báu bổ ích suốt năm học vừa qua Để hoàn thành được đồ án này, đặc biệt em xin được bày tỏ tri ân 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, bảo em suốt trình học tập nghiên cứu để hoàn thành đồ án Sau nữa, em xin gửi tình cảm sâu sắc tới gia đình bạn bè đã ln bên cạnh khuyến khích, đợng viên, giúp đỡ vật chất lẫn tinh thần em suốt trình học tập để em hồn thành tốt cơng việc Trong q trình nghiên cứu làm báo cáo lực, kiến thức, trình đợ thâ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 thơng cảm những ý kiến đóng góp quý thầy 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 Phan Thị Phượng MỞ ĐẦU Đặt vấn đề Những năm gần đây, AI lên một chứng cuộc cách mạng công nghiệp lần thứ tư Trí tuệ nhân tạo được định nghĩa một nghành khoa học máy tính liên quan đến việc tự đợng hóa hành vi thơng minh Trí tuệ nhân tạo mợt bợ phận khoa học máy tính phải được đặt những nguyên lý lý thuyết vững chắc, có khả ứng dụng được lĩnh vực Ở thời điểm tại, thuật ngữ thường dùng để nói đến máy tính có mục đích khơng định ngành khoa học nghiên cứu lý thuyết ứng dụng trí tuệ nhân tạo Theo đà phát triển cơng nghệ, ứng dụng trí tuệ nhân tạo ln xu hướng công nghệ tương lai mà hãng công nghệ tồn giới đua sáng tạo, tảng cốt lõi cuốc cách mạng công nghệ 4.0 ML (Machine Learning) mợt lĩnh vực trí tuệ nhân tạo, được sinh từ khả nhận diện mẫu từ lý thuyết máy tính học mà khơng cần phải lập trình để xử lý nhiệm vụ cụ thể Hầu hết nghành công nghiệp làm việc với hàm lượng lớn dữ liệu nhận tầm quan trọng cơng nghệ ML Những nhìn sáng suốt từ nguồn dữ liệu – chủ yếu dạng thời gian thực – giúp tổ chức vận hành hiệu tạo lợi cạnh tranh so với đối thủ Các ứng dụng ML đã quen thuộc với người: xe tự hành Google Tesla, hệ thống tự tag khuôn mặt Facebook, hệ thống gợi ý sản phẩm Amazon, hệ thống gợi ý phim Netflix…, một vài những ứng dụng trí tuệ nhân tạo cụ thể ML Hình Mối quan hệ AI, Machine Learning Deep Learning Xu hướng phát triển công nghệ thông tin ngày tăng, song song với lượng dữ liệu được sinh ngày mợt lớn Vì nhu cầu để xử lý dữ liệu lớn hơn, ML góp phần giải vấn đề Mợt những thuật tốn thường dùng ML thuật tốn K- nearest neighbor Ứng dụng thuật toán được sử dụng nhiều rợng rãi tốn phân lớp Mục đích nghiên cứu Nghiên cứu, tìm hiểu thuật toán KNN Đánh giá hiệu thuật toán Phạm vi đối tượng nghiên cứu Phạm vi nghiên cứu: Thử nghiệm Iris flower dataset Đối tượng nghiên cứu: Thuật tốn KNN bợ Iris flower dataset Nội dung thực 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 đá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 10 34 6.0 2.7 5.1 1.6 35 5.4 3.0 4.5 1.5 36 6.0 3.4 4.5 1.6 37 6.7 3.1 4.7 1.5 38 6.3 2.3 4.4 1.3 39 5.6 3.0 4.1 1.3 40 5.5 2.5 4.0 1.3 41 5.5 2.6 4.4 1.2 42 6.1 3.0 4.6 1.4 43 5.8 2.6 4.0 1.2 44 5.0 2.3 3.3 1.0 45 5.6 2.7 4.2 1.3 46 5.7 3.0 4.2 1.2 47 5.7 2.9 4.2 1.3 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 hoa Chiều rộng đài hoa Chiều dài cánh Chiều rộng hoa 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 27 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 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 28 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 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 trang hình dưới: Nhấp cḥt vào dowload chọn window 29 Lúc xuất trang có chứa phiên Python, cài đặt Python 3.6 nên ta tìm phiên 3.6 tải Ví dụ hình tơi chọn phiên 3.6.2 Khi tải hoà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 đẻ cài đặt Tại có hai lựa chọn: - Install now: Mặc định cài python vào ổ C, cài sẵn IDLE, pip tài liệu… - Customize installation: cho phép chọn cài đặt tính cần thiết 30 Khi đã cài đặt xong, mở IDLE để chạy thử một đoạn code sau: Ok Như đã hoàn thành xong việc cài đặt python, việc lại cài đặt những thư viện cần thiết để hỗ trợ cho toán Ở đây, toán cần thư viện sau: numpy, matplotlib, sklearn Sử dụng cmd để cài đặt: - Nếu pip bạn chưa có sẵn gói ta phải cài đặt cho nó, ta thực sau: 31 - Sau cài đặt thành cơng gói pip ta tiếp tục cài đặt thư viện numpy: - Cài đặt thư viện matplotlib: 32 - Cuối ta cài đặt thư viện sklearn: Như đã hoàn thành cài đặt thư viện hỗ trợ cho python tốn Mợt điều lưu ý đây, thư viện sklearn có chứa bợ dữ liệu Iris flower dataset nên cần sử dụng bộ dữ liệu ta không cần phải dowload nữa Tìm hiểu mợt chút thư viện Sklearn: Sklearn thư viện phổ biến python Nó viết sẵn thuật tốn phức tạp, bạn cần nhét dữ liệu vào chờ tính tốn lấy kết 33 Ví dụ muốn tìm hiểu xem python dùng thuộc phiên vào thư viện sklearn tḥc phiên ta cần kiểm tra sau: Kết nhận được: Ngoài thư viện sklearn có sẵn bợ dữ liệu thường được dùng nghiên cứu: iris, files, digits, boston, same_images… 34 3.2.2 Thử nghiệm Training set Dữ liệu K-nearest neighbor Tập dự đốn Test set Hình 3.2.2 Mơ hình toán Trong phần này, tách 150 dữ liệu Iris flower dataset thành hai phần, gọi training set test set Thuật toán dựa vào thơng tin training set để dự đốn xem dữ liệu test set tương ứng với loại hoa Dữ liệu được chuẩn đoán được đối chiếu với loại hoa thật dữ liệu test set để đánh giá hiệu KNN - Bước 1: Khai báo thư viện cần thiết 35 - Bước 2: Load dữ liệu thị vài dữ liệu mẫu Kết nhận được: 36 - Bước 3: Tách training set test set: Giả sử muốn dùng 50 điểm dữ liệu cho test set 100 điểm lại cho training set Thư viện sklearn có mợt hàm số cho phép ngẫu nhiên lựa chọn: Kết nhận được: 37 - Bước 4: KNN dự đoán Xét trường hớp K=1, tức với điểm dữ liệu test ta xét điểm dữ liệu training gần lấy nhãn điểm để dự đốn cho điểm dữ liệu test Kết nhận được: Kết cho thấy nhãn dự đoán gần giống với label thật dữ liệu test, có số 20 điểm được hiển thị có kết sai lệch - Bước 5: Đánh giá Để đánh giá đợ xác thuật tốn KNN, xem có điểm dữ liệu test được dự đoán Lấy số lượng chia cho tổng số lượng tập dữ liệu test đợ xác Thư viện sklearn cung cấp cho ta hàm số accuracy_score để thực công việc 38 Kết nhận được: Với K=1 đã cho kết 96% Nhận thấy xét điểm gần dẫn đến kết sai điểm nhiễu Vậy nên ta thử xét với K=9 kết nào? Kết nhận được: Kết đã tăng lên 98% Như đã giải được toán đặt với kết thu được gần hoàn hảo Trong kỹ thuật majoring voting trên, điểm gần được xem có vai trò giá trị phiếu Xét thực tế điều khơng đúng, rõ ràng những điểm gần phải có trọng số cao Vậy nên ta đánh trọng số khác cho điểm xét phải thỏa mãn điều kiện điểm gần test data phải có trọng số cao Với giá trị mặc định weights=” uniform” tương ứng với điểm lân cận có giá trị nhau, ta gán giá trị weights=” distance” lúc điểm gần với test data có trọng số cao hơn: 39 Kết sau đánh trọng số: Kết nhận được không thay đổi! CHƯƠNG 4: KẾT LUẬN Trong trình thực đồ án tốt nghiệp, em đã cố gắng để tìm hiểu học hỏi khả giới hạn khơng tránh khỏi những sai sót, nên có theerchuwa giải được tất những vấn đề, đặt Em mong nhận được thông cảm quý thầy cô bạn Em xin chân thành cảm ơn Những kết đạt được: - Sự hiểu biết thuật toán KNN tương đối tốt - Làm quen với Iris flower dataset - Từ những đã làm được, từ hiểu biết thêm AI, ứng dụng của ML vào đời sống công nghệ đại - Làm quen ngơn ngữ lập trình Python Những hạn chế: - Thuật tốn phụ tḥc nhiều vào hệ số K - Kết đưa có thay đổi (vì điểm xét lấy ngẫu nhiên) - Chưa thự hiểu hết toán 40 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 bản, NXB Khoa Học Và Kỹ Thuật, 2018 41 ... những thuật tốn thường dùng ML thuật toán K- nearest neighbor Ứng dụng thuật tốn được sử dụng nhiều rợng rã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. .. tham số thuật tốn học để tìm mơ hình tốt kiểm tra, đánh giá lại mơ hình phân lớp cuối chọn mơ hình phân lớp tốt cho tốn 14 CHƯƠNG 2: THUẬT TOÁN K-NEAREST NEIGHBOR 2.1 Thuật toán k-nearest neighbor. .. hiệu thuật toán Phạm vi đối tượng nghiên cứu Phạm vi nghiên cứu: Thử nghiệm Iris flower dataset Đối tượng nghiên cứu: Thuật tốn KNN bợ Iris flower dataset Nội dung thực Tìm hiểu thuật