+ Tích Hợp với Big Data: K-nn có thể được áp dụng vào xử lý big data, đặcbiệt là khi bạn muốn thực hiện các phân loại dựa trên sự tương đồng giữa các điểm dữ liệu.. Điều nàybao gồm cách
Trang 1BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG THƯƠNG TP.HỒ CHÍ MINH
KHOA CÔNG NGHỆ THÔNG TIN
1 Lê Gia Huy
2 Lê Quốc Huy
3 Hồ Văn Khánh
Thành phố Hồ Chí Minh, tháng 10 năm 2023
Trang 2MỤC LỤC
Phần I MỞ ĐẦU 1
Phần II NỘI DUNG 2
I Tổng quan về bài thuyết trình 2
1 Lý do chọn chọn đề tài 2
2 Mục đích nghiên cứu 2
II Thuật toán K-NN 4
1 Giới thiệu về thuật toán 4
1.1 Khái niệm thuật toán 4
1.2 Ưu nhược điểm của thuật toán 4
2 Ứng dụng 5
3 So sánh thuật toán K-NN và Thuật toán khác 6
4 Nội dung thuật toán 6
4.1 Ý tưởng của thuật toán 6
4.2 Các bước thực hiện 7
4.3 1 số phép đo khoảng các 8
4.3.1 Khoảnh cách Euclid (đường chim bay) 8
4.3.2 Khoảnh cách Manhattan 9
5 Ví dụ minh họa 9
5.1 Ví dụ 1 9
5.2 Ví dụ về K-NN nhiễu 10
5.3 Ví dụ 11
III Demo code 13
Phần III KẾT LUẬN 19
i
Trang 3Phần IV TÀI LIỆU THAM KHẢO 20
ii
Trang 4Phần I
BẢNG PHÂN CÔNG CÔNG VIỆC
iii
Trang 5Phần II
Phần III MỞ ĐẦU
Trong thời đại hiện nay, không thể phủ nhận sự thăng hoa của trí tuệ nhântạo (AI) đã chuyển đổi toàn diện cả cuộc sống cá nhân và thế giới kinh doanh Sựphát triển vượt bậc của AI đã mang lại tiềm năng vô tận cho ứng dụng của nó trongđời sống hàng ngày và đa dạng các lĩnh vực công nghiệp Để hiểu sâu hơn về cách
AI vận hành và khả năng đưa ra các quyết định logic có ảnh hưởng sâu rộng, khôngthể không xem xét một khía cạnh quan trọng – thuật toán K-Nearest Neighbors(K-NN) Đây không chỉ là một công cụ, mà là một trụ cột trong lĩnh vực học máy vàlogic trong AI, giúp máy tính tư duy và suy luận như con người
Trong bài báo cáo này, chúng ta sẽ tìm hiểu sâu hơn về vị trí quan trọng củathuật toán K-NN trong ngành AI, khám phá cách nó hoạt động và tác động của nótrên cuộc cách mạng trí tuệ nhân tạo đang diễn ra trên khắp thế giới
iv
Trang 6Phần IV NỘI DUNG
I Tổng quan về bài thuyết trình
1 Lý do chọn chọn đề tài
- Thuật toán K-nn (K-nearest neighbors) là một lựa chọn tốt cho đề tài mônTrí tuệ Nhân tạo vì nó đơn giản nhưng mạnh mẽ Dưới đây là một số lý do chọn đềtài này:
+ Hiểu rõ về cơ bản của Machine Learning: K-nn là một thuật toán cơbản trong machine learning, giúp bạn hiểu rõ về cách mà các thuật toán này hoạtđộng Nó làm rõ khái niệm về việc dự đoán dựa trên dữ liệu huấn luyện gần nhất
+ Dễ Hiểu và Triển Khai: Thuật toán này rất dễ hiểu, đặc biệt là cho nhữngngười mới bắt đầu trong lĩnh vực trí tuệ nhân tạo Bạn có thể dễ dàng thấy cách nóhoạt động và áp dụng nó trong các bài toán cụ thể
+ Ứng Dụng Rộng Rãi: K-nn được sử dụng trong nhiều lĩnh vực như nhậndạng hình ảnh, phân loại văn bản, và nhiều bài toán khác Bạn có thể tìm hiểu cách
nó áp dụng vào các vấn đề thực tế
+ Khám Phá và Nghiên Cứu Cải Tiến: Bạn có thể nghiên cứu về các phươngpháp cải tiến của K-nn, ví dụ như việc sử dụng các phương pháp tối ưu hóa để cảithiện hiệu suất hoặc kết hợp nó với các phương pháp khác
+ Tích Hợp với Big Data: K-nn có thể được áp dụng vào xử lý big data, đặcbiệt là khi bạn muốn thực hiện các phân loại dựa trên sự tương đồng giữa các điểm
dữ liệu
2 Mục đích nghiên cứu
v
Trang 7-Hiểu Rõ Hơn về Quá Trình Quyết Định: Nghiên cứu về thuật toán K-nn cóthể giúp hiểu rõ hơn về cách quá trình quyết định diễn ra trong mô hình Điều nàybao gồm cách nó đo lường sự tương đồng giữa các điểm dữ liệu và quyết định dựatrên các điểm gần nhất.
- Hiệu Suất và Tối Ưu Hóa: Một mục đích quan trọng là nghiên cứu cách cảithiện hiệu suất của thuật toán K-nn Có thể xem xét các kỹ thuật tối ưu hóa, giảmthiểu độ phức tạp tính toán, hoặc xử lý hiệu quả với dữ liệu lớn
-Ứng Dụng trong Lĩnh Vực Cụ Thể: Mục tiêu có thể tập trung vào cách K-nn
có thể được áp dụng trong các lĩnh vực cụ thể như y tế, tài chính, hình ảnh, hayngôn ngữ tự nhiên Các ứng dụng cụ thể sẽ giúp nâng cao hiểu biết và áp dụng thực
tế của thuật toán
-Khả Năng Áp Dụng Đa Nhiệm: Nghiên cứu có thể tập trung vào khả năngcủa K-nn trong các nhiệm vụ đa nhiệm, tức là làm thế nào nó có thể được sử dụng
để giải quyết nhiều vấn đề cùng một lúc hoặc làm thế nào nó tương tác với các môhình khác
-Tích Hợp với Các Công Nghệ Mới: Mục tiêu nghiên cứu cũng có thể liênquan đến việc tích hợp thuật toán K-nn với các công nghệ mới như học máy tăngcường, học máy dựa trên biểu diễn, hoặc các kỹ thuật khác đang phát triển
-Đối Mặt với Thách Thức Dữ Liệu: Một mục đích khác có thể là nghiên cứulàm thế nào thuật toán K-nn đối mặt với thách thức từ dữ liệu không đồng đều,nhiễu, hoặc thiếu sót
=>> Nói chung, mục đích nghiên cứu của thuật toán K-nn trong trí tuệ nhântạo là cải thiện hiểu biết, hiệu suất và ứng dụng thực tế của nó trong các lĩnh vựckhác nhau
vi
Trang 8II Thuật toán K-NN
1 Giới thiệu về thuật toán
1.1 Khái niệm thuật toán
-KNN (K-Nearest Neighbors) là một trong những thuật toán học có giám sátđơn giản nhất được sử dụng nhiều trong khai phá dữ liệu và học máy Ý tưởng củathuật toán này là nó không học một điều gì từ tập dữ liệu học (nên KNN được xếpvào loại lazy learning), mọi tính toán được thực hiện khi nó cần dự đoán nhãn của
dữ liệu mới
-Lớp (nhãn) của một đối tượng dữ liệu mới có thể dự đoán từ các lớp (nhãn)của k hàng xóm gần nó nhất
Có một vài khái niệm tương ứng người-máy như sau:
Ngôn ngữ người Ngôn ngữ Máy Học in Machine Learning
Tập tài liệu mang vào phòng thi Tập dữ liệu tập huấn Training set
Câu hỏi trong dề thi Dữ liệu kiểm thử Test data point
Câu hỏi gần giống Điểm dữ liệu gần nhất Nearest Neighbor
1.2 Ưu nhược điểm của thuật toán
Đơn giản và dễ triển khai: Thuật toán
KNN đơn giản và dễ hiểu, không yêu
cầu quá nhiều trọng số hay tham số phức
Yếu tố tính toán: Một trong
những hạn chế của KNN là yếu tố tính toán Với mỗi điểm dữ liệu
vii
Trang 9tạp Điều này làm cho việc triển khai
thuật toán trở nên dễ dàng và nhanh
chóng
mới cần phân loại, thuật toán phải tính toán khoảng cách đến tất cả các điểm dữ liệu huấn luyện đã biết Điều này đòi hỏi một lượng tính toán đáng kể, đặc biệt là với tập dữ liệu lớn
Linh hoạt trong việc xử lý dữ liệu:
KNN có khả năng phân loại dữ liệu với
nhiều đặc trưng và nhãn khác nhau Nó
không giới hạn bởi các giả định về phân
phối của dữ liệu và có thể áp dụng cho
nhiều loại bài toán khác nhau
Nhạy cảm với dữ liệu nhiễu:
KNN có thể nhạy cảm với dữ liệu nhiễu và các điểm dữ liệu outlier Điều này có thể ảnh hưởng đến độ chính xác của thuật toán, vì nó có thể gây ra các dự đoán sai lệch
Không cần quá trình huấn luyện phức
tạp: KNN không yêu cầu quá trình huấn
luyện phức tạp như các thuật toán học
máy khác Thay vào đó, nó sử dụng các
điểm dữ liệu huấn luyện đã biết để phân
loại điểm dữ liệu mới
Lựa chọn K và phương pháp tính khoảng cách: Độ chính xác
của thuật toán KNN phụ thuộc vào giá trị của K (số lượng điểm gần nhất) và phương pháp tính khoảng cách giữa các điểm dữ liệu Lựa chọn K và phương pháp tính khoảng cách phù hợp là quan trọng
để đạt được kết quả tốt
Dễ dàng mở rộng: KNN có thể được
mở rộng để xử lý dữ liệu lớn và đa chiều
bằng cách sử dụng các cấu trúc dữ liệu
như cây KD-Tree hoặc cấu trúc dữ liệu
băm Điều này giúp cải thiện hiệu suất
tính toán của thuật toán
2 Ứng dụng
KNN là một mô hình đơn giản và trực quan nhưng vẫn có hiệu quả cao vì nókhông tham số; mô hình không đưa ra giả định nào về việc phân phối dữ liệu Hơnnữa, nó có thể được sử dụng trực tiếp để phân loại đa lớp
viii
Trang 10Thuật toán KNN có nhiều ứng dụng trong ngành đầu tư, bao gồm dự đoánphá sản, dự đoán giá cổ phiếu, phân bổ xếp hạng tín dụng trái phiếu doanh nghiệp,tạo ra chỉ số vốn và trái phiếu tùy chỉnh.
3 So sánh thuật toán K-NN và Thuật toán khác
-K-nn vs Học máy tăng cường (Reinforcement Learning):
+K-nn: Dùng cho bài toán phân loại và dự đoán dựa trên sự tương đồng vớicác điểm dữ liệu lân cận
+Reinforcement Learning: Chủ yếu dùng trong bài toán quyết định chuỗihành động để tối ưu hóa một hàm thưởng
-K-nn vs Mạng Nơ-ron (Neural Networks):
+K-nn: Dễ hiểu, không yêu cầu nhiều tham số, thích hợp cho dữ liệu có cấutrúc đơn giản
+Neural Networks: Mạnh mẽ với khả năng học đặc trưng phức tạp, phù hợpcho nhiều loại dữ liệu, đặc biệt là hình ảnh, văn bản
-K-nn vs Xử lý Ngôn Ngữ Tự Nhiên (Natural Language Processing - NLP):+K-nn: Có thể sử dụng cho phân loại văn bản đơn giản dựa trên sự tươngđồng
+NLP: Sử dụng các mô hình như Transformer để hiểu và tạo ra ngôn ngữ tựnhiên, phức tạp hơn so với việc so sánh dựa trên sự tương đồng
4 Nội dung thuật toán
ix
Trang 114.1 Ý tưởng của thuật toán
Thuật toán KNN cho rằng những dữ liệu tương tự nhau sẽ tồn tại gần nhau trong một không gian, từ đó công việc của chúng ta là sẽ tìm k điểm gần với
dữ liệu cần kiểm tra nhất Việc tìm khoảng cách giữa 2 điểm củng có nhiều côngthức có thể sử dụng, tùy trường hợp mà chúng ta lựa chọn cho phù hợp
4.2 Các bước thực hiện
Phương pháp K-Nearest Neighbors (K-NN) là một thuật toán học máy khôngparametric, tức là nó không giả định bất kỳ mô hình hay phân phối cụ thể nào về dữliệu Thay vào đó, nó dựa vào việc so sánh và lựa chọn các điểm dữ liệu gần nhất
để thực hiện phân loại hoặc dự đoán
Dưới đây là các bước cơ bản để triển khai thuật toán K-NN:
luyện có nhãn, trong đó mỗi điểm dữ liệu đã được gán nhãn Nếu bạn đang làmviệc trên bài toán phân loại, nhãn sẽ là các nhãn lớp (class labels) Nếu bạn đanglàm việc trên bài toán dự đoán, nhãn có thể là các giá trị số (ví dụ: dự đoán giá trịcủa một thuộc tính)
thường là một số lẻ Giá trị của K quyết định số lượng hàng xóm sẽ được lựa chọn
để thực hiện phân loại hoặc dự đoán cho một điểm dữ liệu mới
độ tương đồng (hoặc khoảng cách) giữa các điểm dữ liệu trong tập huấn luyện vàđiểm dữ liệu mới Khoảng cách Euclide là một phương pháp phổ biến để tính toán
x
Trang 12độ tương đồng, nhưng có thể sử dụng các phương pháp đo khác như khoảng cáchManhattan, khoảng cách Cosine, hoặc hàm kernel.
điểm dữ liệu gần nhất với điểm dữ liệu mới Các điểm dữ liệu này được xem là
"hàng xóm" trong thuật ngữ K-NN
xóm để phân loại hoặc dự đoán cho điểm dữ liệu mới Đối với bài toán phân loại,chúng ta thực hiện đa số phiếu bầu (voting) để xác định nhãn cuối cùng dựa trênnhãn của K hàng xóm Đối với bài toán dự đoán, chúng ta có thể tính trung bình giátrị của các hàng xóm hoặc sử dụng các phương pháp khác tùy thuộc vào bài toán cụthể
Điều quan trọng khi triển khai thuật toán K-NN là lựa chọn đúng giá trị K vàphương pháp đo độ tương đồng phù hợp với bài toán Ngoài ra, việc chuẩn bị vàtiền xử lý dữ liệu cũng có thể ảnh hưởng đáng kể đến kết quả của thuật toán
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ượng trongtraining 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ầnnhấ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
4.3 1 số phép đo khoảng các
4.3.1 Khoảnh cách Euclid (đường chim bay)
xi
Trang 13Khoảng cách Euclid (Euclidean distance) là việc chúng ta tìm khoảng cáchgiữa hai điểm trong không gian, ví dụ cho hai điểm P1(x1,y1) và P2(x2,y2) thìkhoảng cách Euclid sẽ được tính theo công thức:
d=√(x2−x1)2+(y2−y1)2
4.3.2 Khoảnh cách Manhattan
Khoảng cách Manhattan (Manhattan distance) còn được gọi là khoảng cáchL1 hay khoảng cách trong thành phố, là một dạng khoảng cách giữa hai điểmtrong không gian Euclid với hệ tọa độ Descartes Đại lượng này được tính bằngtổng chiều dài của hình chiếu của đường thẳng nối hai điểm này trong hệ trục tọa
Trang 14Giả 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 Us-Uk vậy nên mình cần biết người bạn này có phải là fan của K-Pophay không Qua thời gian tìm hiểu mình đã thu thập được một số dữ liệu và đã biểuhiệ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ữngngười là fan của K-pop, tam giác màu đỏ biểu diễn cho những người không là fancủa K-pop, hình tròn màu xanh là người bạn mình muốn biết có phải là fan K-pophay 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ếtcủ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ạnnà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 tamgiá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ácmà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ấtnhiề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 nhận ra cóhai
hình tam giác đỏ và một hình vuông xanh có khoảng cách gần chấm xanh nhất, do
đó chấm xanh được phân vào lớp tam giác đỏ Lấy K=7, ta có năm hình vuôngxanh và hai hình tam giác đỏ, lúc này chấm xanh được xếp vào lớp hình vuôngxanh Trường hợp lấy K=4, ta nhận thấy sẽ có hai hình vuông xanh và hai hình tamgiác đỏ, đây là trường hợp có điểm bằng nhau, với trường hợp này KNN sẽ xử lýbằng cách so sánh tổng khoảng cách của các hình gần nhất với điểm ta đang xét
xiii
Trang 155.3 Ví dụ
xiv
Trang 16Giả sử ta có tập dữ liệu D có gắn nhãn gồm 15 điểm như trên ảnh.
Bước 1.Điểm cần dự đoán nhãn A(3,9)
Bước 2.Ta tính khoảng cách từ điểm A đến các điểm dữ liệu trong D bằngcông thức Euclidian
Bước 3.Ta chọn K= 5, và tìm ra 5 điểm có khoảng cách gần với điểm A nhất.Bước 4.Trong 5 điểm ta thấy có 4 điểm mang nhãn (+) và 1 điểm mang nhãn(-)
Bước 5.Vậy ta có thể đưa ra kết luận là điểm A cần dự đoán mang nhãn (+)
xv
Trang 17III Demo code
Định nghĩa 1 cấu trúc mô tả 1 điểm và tọa độ của điểm đó và khoảng cách từcái điểm cần tìm đến điểm đó
Khai báo khởi tạo danh sách các phần tử
xvi
Trang 18xvii
Trang 19xviii
Trang 20Khai báo tọa độ của giá trị cần tìm
xix
Trang 21Hàm xác định điểm cần tìm thuộc lớp 0 hay lớp 1
Kết quả tính khoảng cách từ điểm cần tìm tới các điểm khác tăng dần
xx
Trang 22Trong các điểm K gần điểm cần tìm nhất các điểm thuộc lớp nào nhiều hơnthì điểm cần tìm cũng thuộc lớp đó
Kết quả điểm cần tìm thuộc lớp
xxi
Trang 23Phần V KẾT LUẬN
Trong bài thuyết trình này, chúng em đã giới thiệu về khái niệm, cú pháp vàngữ nghĩa của Thuật toán K-NN, một phương pháp suy luận quan trọng trong trítuệ nhân tạo Chúng em cũng đã minh hoạ cách áp dụng thuật toán K-NN để chứngminh các định lý trong logic mệnh đề và logic vị từ cấp một Ngoài ra, chúng tôicũng đã chỉ ra một số ưu điểm và nhược điểm của thuật toán K-NN so với cácphương pháp suy luận khác
Thuật toán K-NN là một công cụ mạnh mẽ để biểu diễn và lập luận với cáctri thức logic Tuy nhiên, thuật toán K-NN cũng gặp một số khó khăn khi xử lý cáctri thức phức tạp, không chắc chắn hoặc mơ hồ Do đó, các nghiên cứu về cải tiến
và mở rộng thuật toán K-NN vẫn đang được tiếp tục trong lĩnh vực trí tuệ nhân tạo.Chúng tôi hy vọng bài thuyết trình này sẽ giúp các bạn có cái nhìn tổng quan và sâusắc hơn về K-NN và vai trò của nó trong trí tuệ nhân tạo
xxii
Trang 24Phần VI TÀI LIỆU THAM KHẢO
[1] https://codelearn.io/sharing/thuat-toan-k-nearest-neighbors-knn
[2] Bạch Hưng Khang, Hoàng Kiếm Trí tuệ nhân tạo - Các phương pháp và ứngdụng NXB Khoa học Kỹ thuật, 1989
[3]neighbor-haym-9d
https://www.slideshare.net/trongthuy3/luan-van-nghien-cuu-thuat-toan-knearest-[4]https://github.com/sonnhfit/machine_learning_tutorial/blob/master/KNN/
knn_turorial.cpp
xxiii