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

Bài Tập Lớn Môn Trí Tuệ Nhân Tạo Thuật Toán K-Nearesr-Neighbor (Knn).Pdf

25 1 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Nội dung

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT HƯNG YÊN

BÀI TẬP LỚN MÔN TRÍ TUỆ NHÂN TẠOTHUẬT TOÁN K-NEARESR-NEIGHBOR (KNN)

NGÀNH: CÔNG NGHỆ THÔNG TINCHUYÊN NGÀNH: KHOA HỌC MÁY TÍNH

Trang 2

NHẬN XÉTNhận xét của giảng viên hướng dẫn:

Trang 3

LỜI CAM ĐOAN

Nhóm 8 chúng em xin cam đoan bài tâp lớn “Thuật toán Neighbor (KNN)” là kết quả thực hiện nhóm dưới sự hướng dẫn của thầyNguyễn Văn Hậu

K-Nearest-Những phần sử dụng tài liệu tham khảo trong Bài tập lớn đã được nêu rõtrong phần tài liệu tham khảo Các kết quả trình bày trong Bài tập lớn và chươngtrình xây dựng được hoàn toàn là kết quả do bản thân nhóm chúng em thực hiện.Nếu vi phạm lời cam đoan này, nhóm chúng em xin chịu hoàn toàn tráchnhiệm trước khoa và nhà trường.

Xin chân thành cảm ơn!

Hưng Yên, ngày … tháng … năm 2023

SINH VIÊN

Trang 4

LỜI CẢM ƠN

Để có thể hoàn thành Bài tập lớn này, lời đầu tiên Nhóm 8 chúng em xinphép gửi lời cảm ơn tới bộ môn Khoa học máy tính, Khoa Công nghệ thông tin– Trường Đại học Sư phạm Kỹ thuật Hưng Yên đã tạo điều kiện thuận lợi chonhóm chúng em thực hiện Bài tập lớn môn học này.

Đặc biệt chúng em xin chân thành cảm ơn Thầy Nguyễn Văn Hậu đã rấttận tình hướng dẫn, chỉ bảo nhóm trong suốt thời gian thực hiện Bài tập lớn vừaqua.

Chúng em cũng xin chân thành cảm ơn tất cả các Thầy, các Cô trongTrường đã tận tình giảng dạy, trang bị cho nhóm chúng em những kiến thức cầnthiết, quý báu để giúp nhóm thực hiện được Bài tập lớn này.

Mặc dù nhóm đã có cố gắng, nhưng với trình độ còn hạn chế, trong quátrình thực hiện đề tài không tránh khỏi những thiếu sót Chúng em hi vọng sẽnhận được những ý kiến nhận xét, góp ý của các Thầy giáo, Cô giáo về nhữngkết quả triển khai trong Bài tập lớn.

Chúng em xin trân trọng cảm ơn!

Trang 5

MỤC LỤC

MỤC LỤC 5

DANH SÁCH HÌNH VẼ 6

DANH SÁCH BẢNG BIỂU 7

CHƯƠNG I: TRÌNH BÀY BÀI TOÁN 8

1.1 Giới Thiệu Bài Toán 8

1.2 Ngữ Cảnh Và Ý Nghĩa Của Bài Toán 8

1.3 Các Yếu Tố Nghiên Cứu 8

1.4 Mục Tiêu và Ứng Dụng 8

CHƯƠNG II: TRÌNH BÀY VỀ MÔ HÌNH THUẬT TOÁN 9

2.1 Thuật toán K-Nearest Neighbors 9

3.1.3 Thực hiện chuẩn đoán 17

CHƯƠNG IV: KẾT LUẬN 23

Trang 6

DANH SÁCH HÌNH

Hình 2 1 Thuật toán KNN 9

Hình 2 2 Bản đồ minh họa Knn nhiễu với k=1 13

YHình 3 1 Khai báo các thư viện cần thiết 19

Hình 3 2 Hình hiển thị dữ liệu và chia tập dữ liệu mẫu 20

Hình 3 3 Hình load dữ liệu test set 20

Hình 3 4 Xây dựng hàm tính khoảng cách và thuật toá 21

Hình 3 5 Kết quả của việc áp dụng thuật toán KNN 22

Hình 3 6 Kết quả của việc chọn k từ khoảng 1 đến 180 23

Trang 8

CHƯƠNG I: TRÌNH BÀY BÀI TOÁN1.1 Giới Thiệu Bài Toán

Bài toán nghiên cứu tập trung vào việc sử dụng thuật toán K-Nearest Neighbors (KNN) để phân loại dữ liệu về sức khỏe của bệnh nhân và xác định liệu họ mắc bệnh tiểu đường hay không Thông qua việc phân tích các yếu tố như số lần mang thai, huyết áp, độ dày da trích, insulin, chỉ số BMI, hàm lượng đường trong huyết tương, tuổi và kết quả xét nghiệm tiểu đường, mục tiêu là xây dựng một mô hình chính xác vàhiệu quả trong việc dự đoán bệnh lý.

1.2 Ngữ Cảnh Và Ý Nghĩa Của Bài Toán

Bệnh tiểu đường là một vấn đề sức khỏe nghiêm trọng trên khắp thế giới, và khả năng phát hiện sớm có thể ảnh hưởng đến quy trình điều trị và chăm sóc bệnh nhân Việc sử dụng KNN để phân loại dữ liệu sức khỏe của bệnh nhân có thể mang lại kết quả chính xác và hữu ích, giúp bác sĩ và nhà nghiên cứu y tế đưa ra quyết định thông minh về điều trị và chăm sóc sức khỏe.

1.3 Các Yếu Tố Nghiên Cứu

Bài toán đặt ra các yếu tố quan trọng như số lần mang thai, huyết áp, độ dày da trích, insulin, chỉ số BMI, hàm lượng đường trong huyết tương, tuổi và kết quả xét nghiệm tiểu đường Mỗi yếu tố này đóng vai trò quan trọng trong việc xác định khả năng mắc bệnh tiểu đường của bệnh nhân.

1.4 Mục Tiêu và Ứng Dụng

Mục tiêu của nghiên cứu là xây dựng một mô hình KNN hiệu quả để phân loại bệnh nhân và đưa ra dự đoán chính xác về tình trạng tiểu đường Kết quả của nghiên cứu này có thể hỗ trợ quyết định điều trị và chăm sóc sức khỏe, giúp tối ưu hóa quá trình chẩn đoán và giảm nguy cơ phát triển bệnh tiểu đường.

Trang 9

CHƯƠNG II: TRÌNH BÀY VỀ MÔ HÌNH THUẬT TOÁN2.1 Thuật toán K-Nearest Neighbors

2.1.1 Định nghĩa

Thuật toán K-Nearest Neighbors (KNN) là một phương pháp học máy giám sát, tức lànó sử dụng dữ liệu huấn luyện có nhãn để dự đoán hoặc phân loại dữ liệu mới Nóđược coi là một thuật toán đơn giản và linh hoạt, có khả năng áp dụng cho cả bài toánphân loại (Classification) và hồi quy (Regression) Một đặc điểm quan trọng của KNNlà nó thuộc loại "lazy learning," nghĩa là nó không xây dựng một mô hình từ dữ liệuhuấn luyện ngay từ đầu Thay vào đó, nó giữ lại toàn bộ tập dữ liệu huấn luyện và thựchiện tính toán khi cần dự đoán kết quả cho dữ liệu mới Nó còn được gọi là thuật toánInstance-based hoặc Memory-based learning vì nó lưu trữ và sử dụng trực tiếp các vídụ trong quá trình dự đoán.

Hình 2 1 Thuật toán KNN2.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 giữa đối tượng cần phân lớp và tất cả đối tượngtrong tập dữ liệu training.

Trang 10

 Bước 3: Sắp xếp khoảng cách theo thứ tự tăng dần và chọn K láng giềng gầnnhất với đối tượng cần phân lớp.

 Bước 4: Lấy 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 các lớp của K để xác định lớp cho đối tượng cầnphân lớp.

2.1.3 Ví dụ minh họa

Trong ví dụ này, chúng ta đang đối mặt với bài toán phân loại thể loại phim (phim hành động hoặc phim tình cảm) dựa trên số lượng cú đá và số lượng nụ hôn trong phim Chúng ta có một tập dữ liệu huấn luyện (training set) với các thông tin sau:

Tên phimSố lượng cú đá Số lượng nụ hônLoại phim

Bảng 2 1 Tập dữ liệu huấn luyện (training set)

Để xác định loại phim của bộ phim chưa xác định, chúng ta sử dụng Euclidean Distance Mỗi phim được biểu diễn như một điểm trong không gian 2 chiều, với số lượng cú đá là tọa độ x và số lượng nụ hôn là tọa độ y.

Trang 11

Euclidean distance là việc chúng ta tìm khoảng cách giữa hai điểm trong không gian,

ví dụ cho 2 điểm P1(x1,y1) và P2(x2,y2) thì Euclidean distance sẽ được tính theo côngthức:

Để áp dụng trong Euclidean distance vào trong trường hợp này, chúng ta sẽ coi mỗi phim sẽ được biểu diễn bởi một điểm trong tọa độ Oxy với số lượng cú đá là tọa độ x và số lượng nụ hôn là tọa độ y Điều đó có nghĩa là phim California Man sẽ được biểu diễn bởi điểm (3, 104); phim He isn't really into dudes sẽ được biểu diễn bởi điểm (2, 100),

Gọi là d Euclidean distance, chúng ta tính khoảng cách giữa phim chưa xác định vàtừng phim trong tập huấn luyện:

Thì:

Trang 12

Sau khi tính toán, chúng ta sẽ được bảng sau:

California Man 20.5He isn’t really into

18.7Beautiful Woman 19.2Kevin Longblade 115.3Robo Slayer 3000 117.4

Trang 13

Xác Định Thể Loại Phim

Giả sử chúng ta chọn =3, tức là chúng ta sẽ xem xét 3 láng giềng gần nhất Trongk

trường hợp này, láng giềng gần nhất là California Man, He isn't really into dudes, vàBeautiful Woman.

Với 3 láng giềng này, chúng ta xác định loại phim cho bộ phim chưa xác định dựa trênphần lớn loại phim của các láng giềng Vì cả ba đều thuộc thể loại Tình cảm, chúng tacó thể kết luận rằng bộ phim chưa xác định cũng thuộc thể loại Tình cảm.

Đây là cách thuật toán K-Nearest Neighbors (KNN) và Euclidean Distance được ápdụng để phân loại thể loại phim cho bộ phim chưa xác định trong tập dữ liệu huấnluyện.

2.1.4 Ví dụ về nhiễu

Hình 2 2 Bản đồ minh họa Knn nhiễu với k=1

Trang 14

Hình trên đây là bài toán Phân lớp với 3 lớp: Đỏ, Lam, Lục Mỗi điểm dữ liệu mới(test data point) sẽ được gán nhãn theo màu của điểm mà nó thuộc về Trong hình này,có một vài vùng nhỏ xem lẫn vào các vùng lớn hơn khác màu Ví dụ có một điểm màuLục ở gần góc 11 giờ nằm giữa hai vùng lớn với nhiều dữ liệu màu Đỏ và Lam Điểmnày rất có thể là nhiễu Dẫn đến nếu dữ liệu test rơi vào vùng này sẽ có nhiều khả năngcho kết quả không chính xác.

2.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ỏ.

 Khi k lớn, thời gian lưu training set tăng lên nhiều sẽ mất nhiều thời giantính toán, dẫn đến hiệu suất không tốt.

Trang 15

K quá lớn: thuật toán sẽ xem xét rất nhiều điểm dữ liệu khi phân loại Dẫn đến

việc vùng lân cận của điểm cần phân loại bao gồm các điểm từ nhiều lớp khácnhau, làm giảm độ chính xác của việc phân loại.

==> Vì vậy, việc chọn giá trị k là một bước quan trọng trong việc tối ưu hóa hiệu suấtcủa thuật toán k-NN Một cách tiếp cận thông thường là sử dụng phương pháp thử vàsai hoặc phương pháp kiểm định chéo (cross-validation) để tìm giá trị k tối ưu.

2.2.2 Cách tìm Khoảng cách

Chi tiết cách tìm Khoảng cách:

Trong KNN, để đo lường sự tương đồng hoặc khác biệt giữa các điểm dữ liệu, chúngta sử dụng các phương pháp tính khoảng cách Mặc dù có nhiều cách tính khoảng cáchkhác nhau, một trong những phương pháp phổ biến nhất là Euclidean distance.

Khoảng cách Euclidean là việc chúng ta tìm khoảng cách giữa hai điểm trong không

gian, ví dụ cho 2 điểm P1(x1,y1) và P2(x2,y2) thì Euclidean distance sẽ được tính theocông thức:

Tổng quát hơn, giả sử mẫu có giá trị thuộc tính là <a1(x), a2(x), a3(x), , an(x) > ,

thuộc tính là số thực Khoảng cách giữa hai mẫu xi và xj là khoảng cách Euclidean:

Trang 16

CHƯƠNG III: ÁP DỤNG MÔ HÌNH/THUẬT TOÁN KNN ĐỂ GIẢIQUYẾT BÀI TOÁN

Bộ dữ liệu bao gồm 576 bản ghi của bệnh nhân với 2 loại nhãn 0 (không bị tiểu đường) và 1(bị tiểu đường) Với 8 đặc điểm là 'Pregnancies', 'Glucose',

'BloodPressure', 'SkinThickness', 'Insulin', 'BMI', 'DiabetesPedigreeFunction', 'Age' Dựa trên bộ dữ liệu này bọn em sẽ phát triển một mô hình phân biệt tuyến tính để phânbiệt bệnh nhân bị tiểu đường hoặc không bị tiểu đường.

Pregnancies Số lần mang thai

Glucose Nồng độ glucose trong huyết tương sau 2 giờ trong xét nghiệm dung nạp glucose qua đường uống

BloodPressure Huyết áp (mm Hg)

SkinThickness Độ dày nếp gấp da cơ bắp tay (mm)Insulin Huyết thanh sau 2 giờ (mu U/ml)

DiabetesPedigreeFunction Chỉ số hàm Diabetes pedigree

Trang 17

Age Tuổi (năm)

Bảng 3 1 Mô tả dữ liệu3.1.2 Tiền xử lý dữ liệu

Chúng tôi sử dụng bộ dữ liệu “Diabetes” được thu thập từ Viện Quốc gia về Bệnh tiểuđường và Tiêu hóa và Bệnh thận là một bộ phận của Viện Y tế Quốc gia Hoa Kỳ vàđược chia sẻ vào 9-5-1990 bởi Vincent Sigillito Bộ dữ liệu được đưa ra với mục tiêulà để dự đoán dựa trên các phép đo chẩn đoán xem một bệnh nhân có bị tiểu đườnghay không.

Các thuộc tính của dữ liệu được chọn ra từ một bộ dữ liệu lớn hơn dựa trên một sốràng buộc, cụ thể tất cả bệnh nhân ở đây đều là nữ từ 21 tuổi trở lên và có gốc gác từpima Ấn Độ

Do một số yếu tố khách quan, bộ dữ liệu có một số thuộc tính có các giá trị lỗi như chỉsố Glucose, BloodPressure, SkinThickness, Insulin và BMI tồn tại giá trị 0 (các thuộctính này

phải lớn hơn 0) nên chúng tôi đã tiến hành lọc dữ liệu bằng phần mềm excel và loại bỏnhững đối tượng có dữ liệu bị sai.

Từ 768 đối tượng ban đầu được khảo sát, chúng tôi đã loại bỏ 376 đối tượng có dữ liệusai đã lọc ra được bộ dữ liệu mới gồm 392 đối tượng còn lại

Trong bộ dữ liệu mới đó, 130 đối tượng được chuẩn đoán bị tiểu đường chiếm 33,16%,trong 130 đối tượng được chẩn đoán mắc bệnh tiểu đường đó, họ có trung bình 4.46lần mang thai, 145mm nồng độ glucose trong huyết tương sau 2 giờ trong xét nghiệmdung nạp glucose qua đường uống, 74 huyết áp, 32 mm độ dày nếp gấp da cơ bắp tay,206 U/ml Isulin tiết ra sau 2 giờ, 36 BMI, 0.62 chỉ số hàm Diabetes pedigree, và trungbình mắc bệnh ở tuổi 36

3.1.3 Thực hiện chuẩn đoán

Trong phần này, chúng ta sẽ tách 768 dữ liệu trong Diabetes dataset ra thành hai phần, gọi là training set và test set Thuật toán sẽ dựa vào thông tin ở training set để dự đoán xem mỗi dữ liệu trong test set tương ứng với loại bệnh nhân nào Dữ liệu được chuẩn đoán này sẽ được đối chiếu với bộ dữ liệu của bệnh nhân thật với bộ 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

Trang 18

Hình 3 1 Khai báo các thư viện cần thiết

-Bước 2: Load dữ liệu và chia tập dữ liệu mẫu

Trang 19

Hình 3 2 Hình hiển thị dữ liệu và chia tập dữ liệu mẫu

- Bước 3: Load dữ liệu test set

Hình 3 3 Hình load dữ liệu test set

Trang 20

- Bước 4: KNN dự đoán

+ Xây dựng hàm tính khoảng cách Euclidean và xây dựng thuật toán neighbors

K-nearnest-Hình 3 4 Xây dựng hàm tính khoảng cách và thuật toá

+ Kết quả của việc thực hiện chuẩn đoán với k = 100, tức là với mỗi điểm dữ liệu test ta chỉ xét 100 điểm dữ liệu training gần nhất và lấy nhãn cả điểm đó để dự đoán cho điểm dữ liệu test :

Trang 21

Hình 3 5 Kết quả của việc áp dụng thuật toán KNN

- Bước 5: Đánh giá

Trang 22

Để đánh giá độ chính xác của thuật toán KNN, em xây dựng hàm tính độ chính xác của thuật toán được đưa vào vòng lặp for với i từ 1 đến 180 và chúng ta xem việc chọn k bằng mấy thì độ chính xác của thuật toán sẽ cao nhất và hiệu suất của thuật toán sẽ được tối ưu nhất

Hình 3 6 Kết quả của việc chọn k từ khoảng 1 đến 180

Trang 23

CHƯƠNG IV: KẾT LUẬN

4.1 Các Kết Quả Đạt Được

Nhóm đã thực hiện quá trình phân lớp dữ liệu bằng dữ liệu bằng ngôn ngữ python dựa trên bộ dữ liệu Diabetes được tổng hợp từ Viện Quốc gia về Tiểu đường, Tiêu hóa và Bệnh thận Hoa Kỳ Mục tiêu khi thực hiện chính là để đánh giá tính đúng đắn của bộ dữ liệu khi dựa trên các yếu tố bao gồm Pregnancies, Glucose, Blood Pressure, Skin Thickness, Insullin, BMI, Diabetes Pedigree Function, Age để cho ra kết quả dự đoán một người nào đó có mắc bệnh Đái tháo đường hay không.

Quá trình phân lớp dựa trên mô hình K-nearnest-neighbors Sau khi thực hiện quá trình phân lớp, nhóm tiến đến bước phân tích đánh giá bằng hàm score và xây dựng hàm đo độ mất mát của thuật toán.

Cuối cùng sau quá trình thực hiện đề tài nhóm đã đạt được kết quả ban đầu đề ra là dự đoán được dựa số người mắc bệnh tiểu đường dựa trên số liệu của các yếu tố trong bảng dữ liệu là 130 người và số liệu trung bình của các yếu tố lần lượt là 4.46 lần mang thai, 145mm nồng độ glucose trong huyết tương sau 2 giờ trong xét nghiệm dung nạp glucose qua đường uống, 74 huyết áp, 32 mm độ dày nếp gấp da cơ bắp tay, 206 U/ml Isulin tiết ra sau 2 giờ, 36 BMI, 0.62 chỉ số hàm Diabetes pedigree, và trung bình mắc bệnh ở tuổi 36 Negative của phương pháp Random Forest đưa ra lần lượt là 79.4% - 69.7%.

4.2 Những hạn chế và Hướng Phát Triển

4.2.1 Những Hạn chế

Bộ dữ liệu được thu thập dựa trên các bệnh nhân thuộc một bộ phận nhỏ là các bệnh nhân ở đây đều là nữ từ 21 tuổi trở lên và có gốc gác từ pima Ấn Độ Điều này làm cho bộ dữ liệu có thể sẽ có một vài thiếu sót so với thực tế và làm cho quá trình phân tích chưa phản ánh được hoàn toàn sát với thực tế cuộc sống Trong bộ dữ liệu chỉ bao gồm một vài yếu tố chủ yếu để xác định được bệnh Đái tháo đường, có thể trên thực tếsẽ có một vài các yếu tố khác nằm ngoài bộ dữ liệu Những bệnh nhân được thu thập dữ liệu đều là nữ từ độ tuổi 21 trở lên khiến cho việc căn bệnh Đái tháo đường đang ngày càng trẻ hóa không được phản ánh một cách rõ ràng

4.2.2 Hướng phát triển

Mô hình này được xây dựng để dự đoán một người liệu có mắc bệnh Đái tháo đường hay không dựa trên việc phân tích các chỉ số của một vài yếu tố như Pregnancies, Glucose, Blood Pressure, Skin Thickness, Insullin, BMI, Diabetes Pedigree Function, Age Dựa trên những phân tích đó mà bản thân mỗi người có thể có những nhận thức rõ ràng hơn về các vấn đề liên quan đến bệnh Đái tháo đường như: Biết được nguy cơ mắc bệnh Đái tháo đường có xác xuất xảy ra rất cao đối với bất kỳ ai nếu không có chếđộ sinh hoạt phù hợp hay phương pháp chăm sóc sức khỏe phù hợp Các chỉ số của một cơ thể có nguy cơ mắc bệnh Đái tháo đường và có những biện pháp chưa trị phù

Ngày đăng: 15/07/2024, 17:06

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

TÀI LIỆU LIÊN QUAN

w