Report Diagnose Cancer Classification
Report Diagnose Cancer Classification
ĐỒ ÁN CUỐI KỲ
CHẨN ĐOÁN UNG THƯ VÚ BẰNG MÔ HÌNH K-NEAREST NEIGHBORS
Môn: Lưu trữ và khai thác dữ liệu
Giảng viên : Nguyễn Tấn Công
Nhóm 1 – Lớp Quản lý thông tin B
STT Họ và tên Mã số sinh viên
1 Hoàng Xuân Quốc 2156210125
2 Đặng Hoàng Chiến 2156210095
3 Nguyễn Viết Đức 2156210100
báo cáo án – nhóm 3
MỤC LỤC
DANH MỤC HÌNH............................................................................................................4
DANH MỤC BẢNG...........................................................................................................5
I. TỔNG QUAN.............................................................................................................6
1. Giới thiệu nhóm /lý do chọn dự án........................................................................6
2. Sơ đồ tổng quan trình bày (phân rã chức năng)..................................................6
3. Công cụ thực hiện...................................................................................................8
3.1 Giới thiệu Python.................................................................................................8
3.2 Các thư viện sử dụng...........................................................................................9
3.3 Tổng quan về dữ liệu sử dụng...........................................................................11
4. Thông tin dự án của nhóm và phân chia nhiệm vụ...........................................11
II. LÝ THUYẾT THUẬT TOÁN.................................................................................12
1. Giới thiệu về data mining và bài toán phân loại/phân cụm/tìm luật kết hợp. 12
1.1 Giới thiệu về data mining..................................................................................12
1.2 Bài toán phân loại/phân cụm/tìm tập kết hợp....................................................13
2. Thuật toán K – nearest-neibourgh......................................................................16
2.1 Giới thiệu về thuật toán và bài toán mà thuật toán giải quyết...........................16
2.1.1 Tổng quan về thuật toán.............................................................................16
2.1.2 Vấn đề mà bài toán giải quyết....................................................................17
2.2 Đặc trưng của thuật toán....................................................................................18
2.3 Nguyên lý thuật toán.........................................................................................20
2.4 Minh họa thuật toán...........................................................................................24
2.4.1 Dữ liệu........................................................................................................24
2.4.2 Các bước thực hiện....................................................................................25
2.4.3 Kết quả.......................................................................................................28
III. CHUẨN BỊ DỮ LIỆU..............................................................................................28
1. Giới thiệu dữ liệu..................................................................................................28
2. Tiền xử lý dữ liệu..................................................................................................30
2.1. Làm sạch dữ liệu............................................................................................30
2.2. Biến đổi dữ liệu..............................................................................................31
2
báo cáo án – nhóm 3
3
báo cáo án – nhóm 3
4
báo cáo án – nhóm 3
5
báo cáo án – nhóm 3
I. TỔNG QUAN
1. Giới thiệu nhóm /lý do chọn dự án
Học máy (ML - Machine Learning) đã trở thành thành phần công nghệ cốt lõi
trong nhiều trường hợp sử dụng từ xử lý ngôn ngữ tự nhiên và thị giác máy tính đến phát
hiện gian lận, dự báo nhu cầu, đề xuất sản phẩm, bảo trì phòng ngừa và xử lý tài liệu. Với
những kiến thức đã học được trong môn “ Lưu trữ và khai thác hệ thống” của thầy “ NT
Công” chúng em quyết định chọn đề tài là một trong những thuật toán phổ biến trong
lĩnh vực học máy là K-Nearest Neighbors (KNN), một thuật toán phân loại dựa trên việc
đo khoảng cách giữa các điểm dữ liệu. KNN là thuật toán học máy đóng vai trò quan
trọng trong việc phân loại văn bản, nhận dạng hình ảnh và nhiều tác vụ khác trong lĩnh
vực xử lý ngôn ngữ tự nhiên và thị giác máy tính. Nó là ngôn ngữ học máy trong quy mô
lớn. Để tận dụng cần phải tiêu chuẩn hóa quy trình phát triển ML hiện đại trên toàn doanh
nghiệp.
Điều quan trọng hơn hết đến việc lựa chọn đề tài KNN cho phép các nhà phát triển
và nhà khoa học dữ liệu ở mọi cấp độ kỹ năng ML truy cập và quản lý tài nguyên một
cách hiệu quả, đồng thời duy trì chi phí thấp. Nhờ vào khả năng phân loại chính xác và
tính linh hoạt của nó, KNN là một công cụ mạnh mẽ trong việc xử lý ngôn ngữ tự nhiên
và thị giác máy tính, và việc nghiên cứu về nó có thể mang lại nhiều giá trị cho các dự án
ML và doanh nghiệp mà chúng em đang hướng tới.
2. Sơ đồ tổng quan trình bày (phân rã chức năng)
Dự án của nhóm đi qua những phần chính sau :
Tổng quan
Lý thuyết thuật toán
Chuẩn bị dữ liệu
Kết quả và đánh giá thuật toán
Kết luận và hướng phát triển
6
báo cáo án – nhóm 3
7
báo cáo án – nhóm 3
để xác định lớp phân loại của điểm dữ liệu mới. Python cung cấp các công cụ mạnh mẽ để
thực hiện KNN, và scikit-learn là một trong những thư viện phổ biến cho việc triển khai
chúng. Với sự trợ giúp của scikit-learn, việc xây dựng và đánh giá mô hình KNN trở nên
đơn giản và thuận tiện. Python không chỉ hỗ trợ trong việc triển khai thuật toán KNN, mà
còn là công cụ lý tưởng cho việc khám phá dữ liệu và tiền xử lý. Với thư viện như NumPy
và Pandas, người dùng có thể thực hiện các phép toán số học, xử lý dữ liệu và trực quan
hóa một cách dễ dàng. Điều này giúp người dùng có thể chuẩn bị dữ liệu cho mô hình
KNN và tối ưu hóa quy trình làm việc của họ.
3.2 Các thư viện sử dụng
Dữ liệu chính ở trong bài để xây dựng thuật toán được lấy từ trang web y tế : UCI-EDU-
DIANOSTIC .Dữ liệu này mô tả về các đặc điểm được tính toán từ hình ảnh số hóa của
chọc hút bằng kim nhỏ (FNA) của khối vú. Chúng mô tả đặc điểm của nhân tế bào có
trong hình ảnh.
Bằng dữ liệu này người ta có thể sử dụng để tiến hành chẩn đoán ung thư.
4. Thông tin dự án của nhóm và phân chia nhiệm vụ
Nhóm thực hiện đề tài trong vòng 2 tuần, với 3 thành viên chính, mỗi thành viên đảm
nhiệm những nhiệm vụ khác nhau như bảng 1.2. Nhóm đã thực hiện tải dữ liệu và tiến
hành phân tích dự báo, tất cả công cụ, thư viện và những yếu tố phần mềm cần thiết để
demo dữ liệu nhóm đã tiến hành đóng gói lại vào dự án cộng đồng trên nền tảng GitHub.
a) Giới thiệu về nền tảng Github và dự án của nhóm
GitHub là một nền tảng lưu trữ mã nguồn và quản lý dự án phổ biến dành cho các nhà
phát triển phần mềm. Nó cho phép người dùng lưu trữ mã nguồn của dự án, theo dõi sự
thay đổi của dữ liệu.
Các tính năng chính của GitHub bao gồm:
- Lưu trữ mã nguồn: Người dùng có thể tạo và quản lý các kho lưu trữ (repositories) để
lưu trữ mã nguồn của dự án.
- Quản lý phiên bản: GitHub ghi lại lịch sử thay đổi của mã nguồn, cho phép người
dùng theo dõi các sửa đổi, trở về phiên bản cũ, và hợp nhất các thay đổi.
- Hợp tác và Phản hồi: Nền tảng này cho phép các nhà phát triển cùng làm việc trên dự
án, đưa ra đề xuất (pull request), xem xét và thảo luận về mã nguồn.
- Công cụ Quản lý Dự án: GitHub cung cấp các công cụ quản lý dự án như quản lý
nhiệm vụ (issues), wiki, và dự án kanban board để theo dõi tiến độ công việc.
GitHub đã trở thành một trong những công cụ quan trọng cho cộng đồng phát triển
phần mềm, cung cấp nền tảng cho sự hợp tác, kiểm soát phiên bản, và lưu trữ mã nguồn
dự án một cách dễ dàng và hiệu quả.y đổi, hợp tác với đồng nghiệp và kiểm soát phiên
bản.
Dự án của nhóm trên nền tảng GitHub:
Link truy cập dự án: GITHUB-DIANOSING CANCER WITH KNN UCI-EDU-
DIANOSTIC
- Thông tin cách cài đặt và sử dụng: README.md
- Thông tin các thư viện cần thiết: requirements.txt
12
báo cáo án – nhóm 3
Thực hiện phân tích dữ liệu: Áp dụng phương pháp Data Mining đã chọn để phân tích
dữ liệu, tìm ra các mẫu và thông tin quan trọng.
Đánh giá kết quả: Trình bày và đánh giá kết quả phân tích để đảm bảo tính chính xác và
đáng tin cậy của thông tin được tìm thấy.
c) Các phương pháp data mining phổ biến
Clustering (Phân cụm): Phương pháp này nhóm các đối tượng tương tự lại với nhau và
phân tách chúng khỏi các đối tượng khác. Kết quả thu được là các nhóm đối tượng giống
nhau hoặc có quan hệ với nhau.
Classification (Phân loại): Là phương pháp phân loại các đối tượng dựa trên các thuộc
tính và giá trị đã được xác định trước. Kết quả thu được là các đối tượng được phân loại
vào các nhóm khác nhau dựa trên các thuộc tính cụ thể.
Regression (Hồi quy): Dự đoán giá trị của một biến dựa trên các biến khác. Kết quả thu
được là một mô hình dự đoán cho giá trị biến phụ thuộc.
Association Rules (Quy tắc kết hợp): Phân tích các quan hệ giữa các đối tượng trong tập
dữ liệu. Kết quả thu được là các tập hợp các đối tượng có các quan hệ tương tự với nhau.
Neural Networks (Mạng nơ-ron): Phương pháp Machine Learning được lấy cảm hứng
từ cấu trúc của hệ thống thần kinh sinh học, mô phỏng hoạt động của não người. Neural
Networks được sử dụng để giải quyết các bài toán phức tạp trong nhiều lĩnh vực như xử
lý ngôn ngữ tự nhiên, nhận dạng hình ảnh, dự báo tài chính và nhiều lĩnh vực khác.
Sequence Analysis (Phân tích chuỗi): Phương pháp này cho phép phát hiện các chuỗi sự
kiện thường xuyên xảy ra cùng nhau hoặc các chuỗi sự kiện xảy ra trong một thời gian cụ
thể. Kết quả thu được là các mô hình chuỗi sự kiện, giúp hiểu rõ hơn về các quá trình xảy
ra trong tập dữ liệu.
Path Analysis (Phân tích quỹ đạo): Tập trung vào việc phát hiện các mối quan hệ giữa
các sự kiện và xây dựng các mô hình quan hệ để giải thích các quá trình xảy ra trong tập
dữ liệu. Kết quả thu được là các mô hình quan hệ giữa các sự kiện, giúp hiểu rõ hơn về sự
tương tác và phụ thuộc giữa các biến.
d) Các công cụ hỗ trợ
Weka: Phần mềm mã nguồn mở hỗ trợ Datamining, có thể chạy trên nhiều hệ điều hành
khác nhau.
RapidMiner: Phần mềm có giao diện trực quan và dễ sử dụng, hỗ trợ nhiều phương pháp
Datamining.
KNIME: Phần mềm đa năng và mở rộng, có thể tích hợp nhiều công cụ và phương pháp
Datamining khác nhau.
1.2 Bài toán phân loại/phân cụm/tìm tập kết hợp
a) Bài toán phân loại
Bài toán phân loại là bài toán liên quan đến việc xây dựng một mô hình dự đoán để
phân loại các đối tượng vào các nhóm khác nhau dựa trên các thuộc tính đã cho. Để thực
hiện bài toán phân loại, ta sử dụng một tập dữ liệu huấn luyện đã được gán nhãn (có các
13
báo cáo án – nhóm 3
đối tượng và nhãn tương ứng cho từng đối tượng). Mô hình phân loại được huấn luyện
trên tập dữ liệu này và sau đó được sử dụng để dự đoán nhãn cho các đối tượng mới. Ví
dụ, trong bài toán phân loại email, mô hình sẽ học từ các email đã được gán nhãn là "thư
rác" hoặc "thư thường" dựa trên các thuộc tính như từ khóa, độ dài, địa chỉ nguồn, v.v.
Khi mô hình đã được huấn luyện, ta có thể sử dụng nó để dự đoán xem một email mới có
phải là thư rác hay không. Kết quả của bài toán phân loại là một quyết định hoặc xác suất
thuộc về từng nhóm.
Quá trình phân loại bao gồm các bước sau:
Thu thập dữ liệu: Bước đầu tiên là thu thập dữ liệu huấn luyện, trong đó mỗi mẫu
được gán nhãn hoặc phân loại dựa trên thông tin đã biết. Dữ liệu này thường bao gồm các
đặc trưng (features) mô tả mỗi mẫu và nhãn (label) tương ứng với phân loại mong muốn.
Tiền xử lý dữ liệu: Trước khi xây dựng mô hình, dữ liệu thường cần được tiền xử
lý để chuẩn hóa, loại bỏ nhiễu và xử lý các giá trị thiếu. Điều này đảm bảo rằng dữ liệu sẽ
đáng tin cậy và phù hợp cho quá trình phân loại.
Chọn mô hình phân loại: Chọn mô hình phân loại phù hợp là một bước quan
trọng. Có nhiều loại mô hình phân loại khác nhau như cây quyết định (decision tree), hỗn
hợp Gaussian (Gaussian mixture), máy vector hỗ trợ (support vector machine), mạng nơ-
ron (neural network) và rất nhiều mô hình khác. Việc chọn mô hình thích hợp phụ thuộc
vào loại dữ liệu, số lượng đặc trưng và yêu cầu phân loại cụ thể.
Xây dựng mô hình: Trong bước này, mô hình phân loại được xây dựng bằng cách
huấn luyện với dữ liệu huấn luyện. Quá trình huấn luyện là quá trình tìm ra các tham số
của mô hình để tối ưu hoá hiệu suất phân loại. Các thuật toán huấn luyện khác nhau sẽ có
các cách tiếp cận khác nhau để tìm ra các tham số này.
Đánh giá mô hình: Sau khi mô hình được xây dựng, nó cần được đánh giá để đảm
bảo rằng nó có thể hoạt động tốt trên dữ liệu mới. Đánh giá mô hình thường được thực
hiện bằng cách sử dụng dữ liệu kiểm tra (test data) mà mô hình chưa từng được tiếp xúc.
Các độ đo phổ biến để đánh giá mô hình phân loại bao gồm độ chính xác (accuracy), độ
phủ (recall), độ chính xác dương tính (precision) và F1-score.
Sử dụng mô hình: Sau khi mô hình đã được đánh giá và chứng minh hiệu suất tốt, nó
có thể được sử dụng để dự đoán và phân loại các mẫu mới. Mô hình sẽ xử lý các đặc
trưng của các mẫu mới và dự đoán nhãn hoặc phân loại tương ứng.
b) Bài toán phân cụm
Phân cụm dữ liệu là bài toán gom nhóm các đối tượng dữ liệu vào thánh từng cụm
(cluster) sao cho các đối tượng trong cùng một cụm có sự tương đồng theo một tiêu chí
nào đó.
14
báo cáo án – nhóm 3
Mục tiêu là tìm ra cấu trúc tự nhiên trong dữ liệu mà không cần có thông tin trước về
nhãn hay nhóm. Điều này có nghĩa là chúng ta không biết trước các nhóm cụ thể trong dữ
liệu. Các thuật toán phân cụm sẽ phân chia dữ liệu thành các nhóm dựa trên sự tương
đồng giữa các đối tượng dữ liệu. Ví dụ, trong phân cụm khách hàng, chúng ta có thể sử
dụng các thuật toán phân cụm để nhóm các khách hàng có cùng hành vi mua hàng lại với
nhau. Kết quả của bài toán phân cụm là các nhóm đối tượng tương tự hoặc có quan hệ với
nhau.
Dưới đây là các bước cơ bản trong bài toán phân cụm:
Thu thập dữ liệu: Bước đầu tiên là thu thập dữ liệu mà chúng ta muốn phân cụm. Dữ
liệu này thường bao gồm các đặc trưng mô tả mỗi mẫu, và không yêu cầu có nhãn như
trong bài toán phân loại.
Tiền xử lý dữ liệu: Trước khi thực hiện phân cụm, dữ liệu thường cần được tiền xử lý
để loại bỏ nhiễu, chuẩn hóa và xử lý các giá trị thiếu. Điều này giúp đảm bảo rằng dữ liệu
sẽ đáng tin cậy và phù hợp cho quá trình phân cụm.
Chọn phương pháp phân cụm: Có nhiều phương pháp phân cụm khác nhau, và lựa
chọn phương pháp thích hợp phụ thuộc vào loại dữ liệu và yêu cầu cụ thể của bài toán.
Một số phương pháp phân cụm phổ biến bao gồm phân cụm theo k-means, phân cụm theo
độ tương đồng (hierarchical clustering), phân cụm dựa trên mô hình Gaussian hỗn hợp
(Gaussian mixture model), và phân cụm dựa trên mạng nơ-ron tự tổ chức (self-organizing
map).
Xây dựng mô hình phân cụm: Trong bước này, mô hình phân cụm được xây dựng
bằng cách áp dụng phương pháp phân cụm đã chọn lên dữ liệu. Mục tiêu là tìm ra cách
chia dữ liệu thành các cụm sao cho các mẫu trong cùng một cụm có đặc điểm tương tự.
Đánh giá và tinh chỉnh: Sau khi mô hình được xây dựng, chúng ta cần đánh giá chất
lượng của phân cụm. Các phương pháp đánh giá phân cụm thường đo lường sự tương
đồng bên trong các cụm và sự khác biệt giữa các cụm. Các phương pháp như độ tương tự
silhouette (silhouette similarity) và chỉ số Calinski-Harabasz (Calinski-Harabasz index)
thường được sử dụng.
Sử dụng phân cụm: Sau khi mô hình phân cụm đã được đánh giá và tinh chỉnh,
chúng ta có thể sử dụng nó để phân cụm các mẫu mới. Mô hình sẽ xử lý các đặc trưng của
mẫu mới và gán chúng vào các cụm tương ứng.
c) Tìm luật kết hợp
Bài toán tìm luật kết hợp là một bài toán khám phá các quy tắc kết hợp (association
rules) giữa các mục (items) trong một tập dữ liệu đã cho.Mục tiêu chính của bài toán tìm
luật kết hợp là tìm ra các quy tắc kết hợp có độ tin cậy và hỗ trợ xác định. Độ tin cậy
15
báo cáo án – nhóm 3
(confidence) đo lường mức độ chính xác của quy tắc và độ hỗ trợ (support) đo lường mức
độ phổ biến của các mục trong quy tắc.
Để có thể hiểu rõ hơn, hãy xem một ví dụ cụ thể. Giả sử chúng ta có một tập dữ liệu
về hóa đơn mua hàng của khách hàng tại một cửa hàng. Tập dữ liệu này ghi lại thông tin
về các mặt hàng mà khách hàng đã mua. Bài toán tìm luật kết hợp sẽ giúp chúng ta khám
phá các mẫu mua hàng kết hợp, ví dụ "nếu khách hàng mua sản phẩm A thì họ cũng
thường mua sản phẩm B".
Quy trình thực hiện bài toán tìm luật kết hợp bao gồm các bước sau:
Xác định các mục (items) trong tập dữ liệu: Đầu tiên, chúng ta cần xác định các
mục hoặc sản phẩm trong tập dữ liệu. Trong ví dụ của chúng ta, các mục có thể là các sản
phẩm như A, B, C…
Tính toán độ hỗ trợ (support): Độ hỗ trợ là một yếu tố quan trọng để đánh giá
mức độ phổ biến của các mục trong tập dữ liệu. Nó được tính bằng tỷ lệ giữa số lần xuất
hiện của một tập hợp các mục cụ thể và tổng số hồ sơ trong tập dữ liệu. Ví dụ, độ hỗ trợ
của quy tắc "A và B" là số lần mua cả sản phẩm A và B chia cho tổng số hóa đơn.
Xác định độ tin cậy (confidence): Độ tin cậy đo lường mức độ chính xác của một
quy tắc. Nó được tính bằng tỷ lệ giữa số lần xuất hiện của quy tắc và số lần xuất hiện của
mục xuất hiện đầu tiên trong quy tắc. Ví dụ, độ tin cậy của quy tắc "A dẫn đến B" là số
lần mua cả sản phẩm A và B chia cho số lần mua sản phẩm A.
Áp dụng ràng buộc: Để giới hạn số lượng quy tắc kết hợp được tạo ra, chúng ta
có thể áp dụng ràng buộc về độ hỗ trợ và độ tin cậy. Chỉ các quy tắc vượt qua các ràng
buộc này mới được chấp nhận.
Tạo ra các quy tắc kết hợp: Cuối cùng, chúng ta sử dụng các bước trên để tạo ra
các quy tắc kết hợp. Các quy tắc này sẽ cho chúng ta thông tin về mối liên hệ giữa các
mục trong tập dữ liệu.
Sau quá trình tìm luật kết hợp, chúng ta có thể nhận được các quy tắc như:
- Nếu khách hàng mua sản phẩm A và B, thì khách hàng cũng thường mua sản phẩm C.
- Nếu khách hàng mua sản phẩm A và C, thì khách hàng cũng thường mua sản phẩm D.
16
báo cáo án – nhóm 3
Thuật toán K-Nearest Neighbor là thuật toán có nghĩa tiếng Việt là K láng giềng gần
nhất, viết tắt là KNN. Thuật toán KNN là một kĩ thuật học có giám sát (supervised
learning) dùng để phân loại quan sát mới bằng cách tìm điểm tương đồng giữa quan sát
mới này với dữ liệu sẵn có. Thuật toán này được sử dụng rộng rãi trong nhiều lĩnh vực
khác nhau từ phân loại, hồi quy cho đến hệ thống gợi ý.
b) Nguyên lý hoạt động cơ bản
KNN hoạt động dựa trên nguyên tắc rằng các điểm dữ liệu tương tự thường nằm gần
nhau. Để dự đoán nhãn cho một điểm dữ liệu mới, thuật toán này xem xét ‘K’ điểm dữ
liệu gần nhất và dựa trên đa số nhãn của chúng để xác định nhãn cho điểm dữ liệu mới đó.
Giá trị ‘K’ là một siêu tham số quan trọng, quy định số lượng hàng xóm gần nhất mà
thuật toán sẽ xem xét. Việc chọn K đúng là rất quan trọng: K quá nhỏ có thể làm mô hình
bị ảnh hưởng bởi nhiễu dữ liệu, trong khi K quá lớn có thể làm mô hình không nhạy với
đặc điểm cụ thể của dữ liệu.
Tính toán khoảng cách giữa các điểm dữ liệu là một phần quan trọng của KNN dùng
để đo lường sự tương tự giữa các điểm dữ liệu. Phương pháp phổ biến nhất là khoảng
cách Euclidean. Tuy nhiên, có nhiều phương pháp khác như khoảng cách Manhattan được
sử dụng tùy thuộc vào bản chất của dữ liệu.
c) Lịch sử hình thành và phát triển
Khởi nguyên: Nguồn gốc và lịch sử phát triển của thuật toán K-Nearest Neighbors
(KNN) bắt đầu trong giai đoạn đầu của lĩnh vực học máy và trí tuệ nhân tạo. KNN xuất
hiện lần đầu vào những năm 1950 và 1960 trong quá trình nghiên cứu về mô hình hóa
mẫu và nhận dạng. Mặc dù không rõ người chính thức sáng tạo KNN, thuật toán này
nhanh chóng trở nên phổ biến do tính đơn giản và dễ hiểu của nó.
Phát triển và cải tiến: Trong thập kỷ tiếp theo, KNN đã được cải tiến và tinh chỉnh để
nâng cao hiệu suất và độ chính xác. Các nghiên cứu tập trung vào việc tối ưu hóa lựa chọn
giá trị 'K', phương pháp tính khoảng cách và xử lý dữ liệu lớn. Một trong những cải tiến
quan trọng là áp dụng các kỹ thuật giảm chiều dữ liệu như Principal Component Analysis
(PCA) và t-SNE để giảm tải tính toán và cải thiện khả năng phân loại.
2.1.2 Vấn đề mà bài toán giải quyết
a) Về mặt lý thuyết
Về mặt lý thuyết, bài toán mà thuật toán K-Nearest Neighbors giải quyết là bài toán
phân loại và gợi ý dựa trên các đặc trưng của dữ liệu. KNN được sử dụng để xác định lớp
hoặc nhãn của một điểm dữ liệu mới dựa trên các điểm dữ liệu đã biết trước trong tập
huấn luyện. KNN thuộc vào lớp các thuật toán học máy không giám sát (unsupervised
learning) và phụ thuộc vào việc tính toán khoảng cách giữa các điểm dữ liệu. Thuật toán
17
báo cáo án – nhóm 3
này dựa trên giả định rằng các điểm dữ liệu cùng lớp sẽ có tính chất tương tự và nằm gần
nhau trong không gian đặc trưng.
b) Về những ứng dụng thực tế
Phân loại văn bản: sử dụng để phân loại văn bản, chẳng hạn như phân loại email
vào hộp thư rác hoặc không phải hộp thư rác dựa trên nội dung và các đặc trưng
của email.
Nhận dạng khuôn mặt: KNN có thể được áp dụng trong hệ thống nhận dạng khuôn
mặt để xác định xem một khuôn mặt mới thuộc về người nào dựa trên các khuôn
mặt đã biết trước trong tập huấn luyện.
Hệ thống gợi ý: Có thể được sử dụng trong các hệ thống gợi ý sản phẩm hoặc nội
dung. Điều này có thể bao gồm việc đề xuất các sản phẩm tương tự cho người
dùng dựa trên lịch sử mua hàng hoặc đánh giá của họ.
Phát hiện gian lận tín dụng: KNN có thể được sử dụng để phát hiện gian lận tín
dụng bằng cách xác định xem một giao dịch mới có khả năng là gian lận dựa trên
các đặc trưng của giao dịch và thông tin từ các giao dịch trước đó.
Phân loại hình ảnh: Được áp dụng trong việc phân loại hình ảnh vào các nhóm
khác nhau. Ví dụ, xác định xem một bức ảnh là chó, mèo hoặc chim cút dựa trên
các đặc trưng hình ảnh và tập huấn luyện các hình ảnh đã được gán nhãn trước đó.
Nhận dạng tiếng nói: áp dụng trong các hệ thống nhận dạng tiếng nói để xác định
người nói dựa trên các đặc trưng âm thanh của giọng nói.
Phân loại sản phẩm: KNN có thể được sử dụng trong các cửa hàng trực tuyến để
phân loại sản phẩm vào các danh mục khác nhau dựa trên các đặc trưng của sản
phẩm như mô tả, giá, nhãn hiệu, đánh giá và thông tin liên quan khác.
Dự báo thời tiết: nó có thể được áp dụng trong việc dự báo thời tiết dựa trên các
đặc trưng thời tiết trước đó như nhiệt độ, độ ẩm, áp suất không khí và các yếu tố
khí hậu khác.
Hỗ trợ quyết định y tế: KNN có thể được sử dụng để hỗ trợ quyết định trong lĩnh
vực y tế, chẳng hạn như xác định liệu một bệnh nhân có nguy cơ cao mắc bệnh tim
mạch hay không dựa trên các chỉ số sức khỏe và lịch sử bệnh lý…
2.2 Đặc trưng của thuật toán
a) Đặc trưng chung
Dựa trên sự tương tự: KNN sẽ đo lường tính toán độ tương đồng hoặc khoảng cách
giữa các điểm dữ liệu trong không gian đặc trưng. Nó sẽ sử dụng một phép đo khoảng
cách để xác định các điểm gần nhất với điểm dữ liệu đang được dự đoán.Các điểm gần
nhất này sau đó được sử dụng để suy ra nhãn hoặc giá trị dự đoán cho điểm dữ liệu đó.
Ưu điểm: Với đặc trưng này, việc xác định và tính toán giữa các điểm dữ liệu là
khá đơn giản và dễ hiểu. Nó cho phép đo lường sự tương đồng dựa trên khoảng
cách giữa các điểm, giúp xác định các điểm dữ liệu gần nhau.
18
báo cáo án – nhóm 3
Nhược điểm: Nó có thể không hoạt động tốt đối với các tập dữ liệu có đặc
trưng không đồng nhất hoặc khi các lớp không phân tách rõ ràng trong không
gian đặc trưng của dữ liệu.
Không giám sát: KNN là một thuật toán học không giám sát, nghĩa là nó không
yêu cầu một giai đoạn huấn luyện. Nó chỉ cần dữ liệu huấn luyện đã được gán nhãn để
thực hiện dự đoán.
Ưu điểm: Chúng ta chỉ cần dữ liệu huấn luyện đã được gán nhãn để thực hiện
dự đoán, giảm thiểu được kha khá công việc chuẩn bị dữ liệu huấn luyện.
Nhược điểm: Vì KNN không yêu cầu huấn luyện tường minh, nó có thể không
học được các mẫu, quy luật hoặc đặc trưng phức tạp trong dữ liệu. Điều này có
thể dẫn đến hiệu suất dự đoán không tốt trên các tập dữ liệu phức tạp.
Khoảng cách: KNN dựa trên các điểm dữ liệu gần nhất trong không gian đặc trưng
để đưa ra dự đoán. Giá trị của K trong thuật toán KNN xác định số lượng các hàng
xóm gần nhất cần xem xét.
Ưu điểm: KNN dựa trên các điểm dữ liệu gần nhất để đưa ra dự đoán. Điều này
có nghĩa là KNN tập trung vào các điểm dữ liệu có tương đồng về mặt không
gian đặc trưng, giúp xác định nhóm và phân loại dữ liệu.
Nhược điểm: Việc tìm kiếm các hàng xóm gần nhất trong quá trình dự đoán có
độ phức tạp tính toán cao. Đặc biệt là khi số lượng điểm dữ liệu huấn luyện lớn,
việc tìm kiếm các hàng xóm xung quanh có thể tốn nhiều thời gian và tài
nguyên.
Linh hoạt với số chiều: KNN có khả năng làm việc tốt với các tập dữ liệu có số
chiều cao. Điều này là do KNN không giả định về phân phối của dữ liệu và không áp
dụng một mô hình toán học phức tạp. Tuy nhiên, khi số chiều tăng lên, việc tính toán
khoảng cách có thể trở nên tốn kém và hiệu quả của thuật toán có thể giảm. Để giải
quyết ta có thể sử dụng kỹ thuật giảm chiều dữ liệu như PCA hoặc LLE trước khi áp
dụng KNN. Điều này giúp giảm số chiều của dữ liệu trong khi vẫn giữ lại thông tin
quan trọng và cấu trúc của dữ liệu.
Ưu điểm: KNN có khả năng làm việc tốt với các tập dữ liệu có số chiều cao.
Điều này là do KNN không giả định về phân phối của dữ liệu và không áp dụng
một mô hình toán học phức tạp. Nó có thể áp dụng trực tiếp trên không gian
đặc trưng có số chiều cao mà không cần quá nhiều điều chỉnh.
Nhược điểm: Mặc dù linh hoạt với số chiều, KNN có thể gặp khó khăn trong
việc xử lý các tập dữ liệu có số chiều rất lớn. Việc tính toán khoảng cách giữa
các điểm dữ liệu có thể trở nên rất tốn kém và không hiệu quả trong trường hợp
này.
b) Ưu điểm chung
19
báo cáo án – nhóm 3
- Đơn giản và dễ hiểu: KNN là một thuật toán đơn giản và dễ hiểu. Nguyên tắc hoạt
động của nó dựa trên ý tưởng rằng các điểm dữ liệu gần nhau trong không gian đặc
trưng có khả năng thuộc cùng một nhãn.
- Khả năng xử lý dữ liệu phi cấu trúc: KNN có khả năng xử lý dữ liệu phi cấu trúc,
không yêu cầu các giả định về cấu trúc dữ liệu. Điều này cho phép nó áp dụng cho
nhiều loại dữ liệu, bao gồm cả dữ liệu văn bản, hình ảnh, và âm thanh.
- Khả năng mở rộng: Thuật toán này không yêu cầu huấn luyện tường minh, do đó
nó có khả năng mở rộng cho việc thêm dữ liệu mới một cách dễ dàng.
- Hiệu suất tốt đối với tập dữ liệu nhỏ: KNN hoạt động tốt trên các tập dữ liệu nhỏ
với số lượng mẫu ít. Nó không đòi hỏi quá nhiều tính toán trước khi thực hiện dự
đoán.
- Dễ dàng tinh chỉnh tham số: K là tham số quan trọng trong thuật toán KNN. Việc
điều chỉnh giá trị K có thể ảnh hưởng đến hiệu suất của thuật toán. Tuy nhiên, việc
tinh chỉnh K là khá dễ dàng và có thể được thực hiện thông qua quá trình thử và sai
- Sử dụng được trong cả phân loại và hồi quy: KNN có thể được sử dụng cho cả hai
mục đích là phân loại và hồi quy.
- Hoạt động tốt trong trường hợp phân loại với nhiều lớp: KNN có thể được sử dụng
để phân loại dữ liệu với nhiều lớp.
- Không cần giả định gì về phân phối của các class: KNN là một thuật toán phi tham
số, vì vậy nó không cần giả định gì về phân phối của các class. Điều này giúp
KNN có thể hoạt động tốt với các tập dữ liệu có phân phối phức tạp hoặc không
xác định
c) Nhược điểm chung
- Phụ thuộc vào kích thước dữ liệu: hiệu suất sẽ giảm khi tập dữ liệu lớn vì việc tính
toán khoảng cách giữa các điểm dữ liệu mất nhiều thời gian. KNN không phải là
thuật toán phù hợp cho việc xử lý các tập dữ liệu lớn.
- Tính toán tài nguyên: KNN có đòi hỏi khá nhiều tài nguyên tính toán khi tập dữ
liệu lớn, đặc biệt là khi số chiều của không gian đặc trưng cao.
- Nhạy cảm với nhiễu và dữ liệu không đồng nhất: Dễ bị ảnh hưởng bởi các nhiễu
trong dữ liệu và các điểm dữ liệu nằm trong các lớp khác nhau gần nhau. Điều này
có thể dẫn đến việc phân loại không chính xác hoặc không ổn định.
- Cần xử lý các biến số và mất cân bằng dữ liệu: KNN không xử lý được các biến số
khác nhau và cần sự cân bằng dữ liệu trong các lớp khác nhau. Nếu một lớp có số
lượng mẫu nhiều hơn so với lớp khác, KNN có thể dễ dàng bị thiên vị và cho ra kết
quả không chính xác.
- Lưu trữ dữ liệu: KNN cần lưu trữ toàn bộ tập dữ liệu huấn luyện trong bộ nhớ để
thực hiện việc tìm kiếm hàng xóm gần nhất. Điều này có thể là một vấn đề khi tập
dữ liệu rất lớn.
20
báo cáo án – nhóm 3
- Lựa chọn tham số K: Tham số K trong KNN cần được chọn một cách thích hợp.
Một K quá nhỏ có thể dẫn đến overfitting, trong khi một K quá lớn có thể dẫn đến
underfitting.
2.3 Nguyên lý thuật toán
Nguyên lý hoạt động của thuật toán K-Nearest Neighbors (KNN) là dựa trên giả
định rằng các điểm dữ liệu có tính chất tương đồng với nhau thường nằm gần nhau trong
không gian đặc trưng. Khi có một điểm dữ liệu mới, KNN sẽ tìm ra các điểm dữ liệu gần
nó nhất trong không gian đặc trưng, và sử dụng nhãn của các điểm dữ liệu này để dự
đoán nhãn của điểm dữ liệu mới.
21
báo cáo án – nhóm 3
Hình 1. 3 Sơ đồ nguyên lý
22
báo cáo án – nhóm 3
- Xác định giá trị 'K': Người dùng cần quyết định giá trị 'K', tức là số lượng hàng
xóm gần nhất mà thuật toán sẽ xem xét trong quá trình dự đoán.
- Tính toán khoảng cách: KNN sử dụng một phương pháp tính khoảng cách để đo
lường sự tương tự giữa các điểm dữ liệu. Khoảng cách được tính giữa điểm dữ liệu
mới và các điểm dữ liệu trong tập huấn luyện.
- Các phép đo khoảng cách chủ yếu trong KNN là
Khoảng cách Euclidean: Đây là phép đo khoảng cách phổ biến nhất trong KNN.
Khoảng cách Euclidean giữa hai điểm dữ liệu trong không gian đặc trưng được
tính bằng:
Trong đó
D(x,y) là khoảng cách giữa hai điểm x và y
n là số chiều của không gian, xi và yi là các thành phần tương ứng của
điểm x và y.
Độ đo Euclidean là đặc trưng của không gian Euclidean (không gian hình
học thông thường). Khoảng cách Euclidean giữa hai điểm là đường đi ngắn nhất
giữa chúng, tương đương với độ dài của đoạn thẳng nối chúng trong không gian
Euclidean.
Khoảng cách Manhattan: Còn được gọi là khoảng cách thành phố, khoảng cách
Manhattan tính toán tổng các độ lệch tuyệt đối giữa các giá trị của các đặc trưng
tương ứng của hai điểm dữ liệu với công thức.
Trong đó
D(x,y) là khoảng cách Manhattan giữa hai điểm x và y,
n là số chiều của không gian, xi và yi là các thành phần tương ứng của
điểm x và y.
Độ đo Manhattan tương ứng với tổng của độ chênh lệch giữa các thành phần của
hai điểm. Nó được gọi là "Manhattan" vì nó đề xuất một cách di chuyển giữa hai điểm
trong thành phố Manhattan: bạn chỉ có thể đi theo các đường ngang và dọc, không thể đi
chéo.
23
báo cáo án – nhóm 3
Khoảng cách Minkowski: Minkowski là một loại độ đo khoảng cách được sử dụng
để đo khoảng cách giữa hai điểm trong không gian nhiều chiều. Công thức của độ
đoMinkowski được xác định như sau:
Trong đó
D(x,y) là khoảng cách giữa hai điểm x và y
n là số chiều của không gian,
xi và yi là các thành phần tương ứng của điểm x và y, p là một tham số
dương, thường được gọi là "bậc" (power) hoặc "độ dài bậc p".
Khi 1p=1, ta có độ đo Manhattan (khoảng cách theo chiều ngang và dọc), khi
2p=2, ta có độ đo Euclidean, và khi p→∞, ta có độ đo Chebyshev (tìm khoảng cách tối đa
giữa các chiều). Độ đo Minkowski cho phép điều chỉnh độ nhạy của khoảng cách dựa trên
giá trị của tham số p. Khi p tăng lên, độ đo Minkowski trở nên nhạy cảm hơn đối với sự
khác biệt lớn trong các chiều của không gian.
Xác định 'K' hàng xóm gần nhất: KNN chọn 'K' điểm dữ liệu gần nhất (hàng xóm
gần nhất) dựa trên khoảng cách tính được.
24
báo cáo án – nhóm 3
Đa số phiếu bầu: KNN sử dụng đa số phiếu bầu để quyết định nhãn cho điểm dữ
liệu mới. Điểm dữ liệu mới sẽ được gán nhãn bằng nhãn xuất hiện nhiều nhất trong
'K' hàng xóm gần nhất.
Đánh giá mô hình: Đánh giá hiệu suất của mô hình bằng cách đo lường độ chính
xác, độ phủ (recall), độ chính xác (precision) và các độ đo khác trên tập dữ liệu
kiểm tra hoặc sử dụng các kỹ thuật cross-validation.
Tinh chỉnh tham số: Nếu kết quả đánh giá không đạt yêu cầu, bạn có thể tinh chỉnh
tham số như K, phương pháp đo khoảng cách hoặc tiền xử lý dữ liệu để cải thiện
hiệu suất của mô hình.
2.4 Minh họa thuật toán
2.4.1 Dữ liệu
25
báo cáo án – nhóm 3
27 80 Triệu ???
Bảng 2. 1 Dữ liệu demo
Dữ liệu cần phần loại là ( 27 tuổi, thu nhập 80 Triệu ). Chúng ta dự đoán xem
khách hàng này sẽ là khách hàng tiềm năng hay là khách hàng không tiềm năng.
2.4.2 Các bước thực hiện
a) Với độ đo Euclidean
Bước 1: Chuẩn bị dữ liệu
Bước 2: Chọn tham số K
Trong ví dụ này chúng ta sẽ chọn tham số K=3
Bước 3: Tính khoảng cách giữa dữ liệu mới với tất cả các dữ liệu còn lại: ở đây chúng ta
sẽ sử dụng công thức Euclidean để tính toán khoảng cách:
26
báo cáo án – nhóm 3
27 80 Triệu ???
Bảng 2. 2 Euclidean demo
Bước 4: Lựa chọn k điểm có khoảng cách gần nhất: Ở đây chúng ta thấy 3 điểm có
khoảng cách gần nhất là:
Với 3 khoảng cách này chúng ta nhận ra rằng 3 kết quả là 2 (Khách hàng không tiềm
năng) và 1(Khách hàng tiềm năng).
Bước 5: Dự đoán dữ liệu mới dựa trên K gần nhất
Trong 3 kết quả này Khách hàng không tiềm năng xuất hiện nhiều hơn nên chúng ta đưa
ra dự đoán khách hàng này là khách hàng không tiềm năng.
b) Với độ đo Manhattan
27
báo cáo án – nhóm 3
Bước 4: Lựa chọn k điểm có khoảng cách gần nhất: Ở đây chúng ta thấy 3 điểm có
khoảng cách gần nhất là:
28
báo cáo án – nhóm 3
Với 3 khoảng cách này chúng ta nhận ra rằng 3 kết quả là 2 (Khách hàng không
tiềm năng) và 1(Khách hàng tiềm năng).
Bước 5: Dự đoán dữ liệu mới dựa trên K gần nhất
Trong 3 kết quả này Khách hàng không tiềm năng xuất hiện nhiều hơn nên chúng
ta đưa ra dự đoán khách hàng này là khách hàng không tiềm năng.
c) Với độ đo Minkowski
29
báo cáo án – nhóm 3
- Tải dataset.
Hình 3. 3 Mô tả dữ liệu
30
báo cáo án – nhóm 3
2. Tiền xử lý dữ liệu
2.1. Làm sạch dữ liệu
- Kiểm tra các dữ liệu thiếu và dữ liệu trống.
- In ra hình dữ liệu:
- Encode tập y
Hệ số Tương quan Pearson: giúp tìm hiểu mối quan hệ giữa hai lượng. Nó cung cấp đo
lường về sức mạnh của mối liên kết giữa hai biến. Giá trị của Hệ số Tương quan Pearson
có thể nằm trong khoảng từ -1 đến +1. Giá trị 1 có nghĩa là chúng có mối tương quan cao
và giá trị 0 có nghĩa là không có tương quan.
35
báo cáo án – nhóm 3
- Vẽ biểu đồ Heatmap
Hình 3. 16 Heatmap
36
báo cáo án – nhóm 3
37
báo cáo án – nhóm 3
38
báo cáo án – nhóm 3
Nhận xét
- Accuracy giảm dần từ các giá trị k nhỏ.
- Sự thay đổi của k không ảnh hưởng rõ ràng đến sự biến động của thời gian.
3.2. Thử nghiệm với sự thay đổi của p
- Thử nghiệm với sự thay đổi của p độ đo Minkowski
39
báo cáo án – nhóm 3
Nhận xét
- Độ chính xác cao nhất với các giá trị nhỏ của p và sau đó giảm đột ngột.
- Thời gian dự đoán không phụ thuộc vào p. Điều này là do phương pháp không thay
đổi bất kỳ phần quan trọng nào của thuật toán.
Có thể thấy hiệu quả tương tụ giữa thuật toán tự xây dựng và thuật toán của Sklearn
trong việc đưa ra dự đoán đối với trường hợp này.
4.2 Đánh giá hiệu suất thuật toán
a) Confusion matrix
Confusion matrix là một kỹ thuật được sử dụng để tổng hợp hiệu suất của một
thuật toán phân loại, nó có đầu ra nhị phân.
40
báo cáo án – nhóm 3
b) Classification report
41
báo cáo án – nhóm 3
Báo cáo chi tiết về hiệu suất của mô hình phân loại trên tập dữ liệu kiểm thử:
- Precision (Độ chính xác): Là tỷ lệ giữa số lượng dự đoán đúng tích cực (True
Positives) và tổng số lượng dự đoán tích cực (True Positives + False Positives).
Precision cao đồng nghĩa với việc có ít dự đoán dương giả mạo.
- Recall (Tỉ lệ nhận diện): Là tỷ lệ giữa số lượng dự đoán đúng tích cực (True
Positives) và tổng số lượng thực sự tích cực (True Positives + False Negatives).
Recall cao đồng nghĩa với việc có ít trường hợp tích cực thực sự bị bỏ sót.
- F1-Score: Là một trung bình điều hòa giữa Precision và Recall. Nó được tính bằng
công thức: F1-Score = 2 * (Precision * Recall) / (Precision + Recall). F1-Score cao
nếu cả Precision và Recall đều cao.
- Support: Số lượng mẫu thực sự thuộc mỗi lớp.
Nhận xét
- Precision (Độ chính xác): Cho lớp 0: 93% - Độ chính xác cao, chỉ có một tỷ lệ nhỏ
các trường hợp dự đoán tích cực nhưng thực sự là âm. Cho lớp 1: 76% - Có một số
dự đoán tích cực nhưng thực sự là âm.
- Recall (Tỉ lệ nhận diện): Cho lớp 0: 89% - Tỉ lệ đánh giá cao, chỉ có một tỷ lệ nhỏ
các trường hợp thực sự tích cực bị bỏ sót. Cho lớp 1: 85% - Tỉ lệ đánh giá khá cao.
- F1-Score: Cho lớp 0: 91% - F1-score là một trung bình điều hòa giữa precision và
recall, độ chính xác cao. Cho lớp 1: 81% - F1-score có vẻ giảm do precision và
recall không cân bằng.
- Accuracy (Độ chính xác tổng thể): 88% - Tỉ lệ dự đoán đúng trên toàn bộ tập kiểm
thử.
5. Tối ưu hóa siêu tham số:
- Với độ đo Euclidean:
42
báo cáo án – nhóm 3
- Với độ đo Manhattan
43
báo cáo án – nhóm 3
Reset lại cloud server của Streamlit để tải giao diện từ kho trên Github.
Kết quả đã được thể hiện ở trang web sau của nhóm : DEMO-WEB-KNN
2. Phương thức và hàm được sử dụng
STT Tên class Chức năng chính
1 Thực hiện các lệnh bên trong các tab. Ở mỗi
TRAIN_MODELS tab, class này sẽ kế thừa các phương thức từ các
class tương ứng để thực hiện.
2 Bao gồm nhiều hàm được xây dựng để tạo ra
DESCRIPTIVE_STATISTICS
các biểu đồ ở tab thống kê mô tả của trang web
3 KNN_MODELS Class xây dựng thuật toán
Bảng 5. 1 Danh sách class
TRAIN_MODELS
STT Tên phương thức Chức năng chính
1 train_test_split Chia dữ liệu thành tập test và tập train
2 accuracy Hàm đánh giá mô hình
3 Nhận tham số và chạy thuật toán xây dựng ở
run_model_option
class KNN_MODELS
4 plot_confusion_matrix Vẽ confusion matrix
5 run_knn Hàm nhập tham số và điều hướng hiển thị
Bảng 5. 2 Các phương thức của class TRAIN_MODELS
DESCRIPTIVE_STATISTICS
STT Tên phương thức Chức năng chính
1 describe Hàm thống kê mô tả, xuất ra các chỉ số cơ bản
2 subplot_histograms Hàm vẽ Histogram
3 pairplot Vẽ pairplot
4 heatmap Vẽ heatmap
Bảng 5. 3 Các phương thức của class DESCRIPTIVE_STATISTICS
KNN_MODELS
STT Tên phương thức Chức năng chính
1 euclidean Xây dựng độ đo euclidean
2 manhattan Xây dựng độ đo manhattan
3 minkowski Xây dựng độ đo min kowski
4 fit Hàm fit mô hình
5 predict Hàm dự báo
6 get_neighbours Lấy điểm gần nhất
Bảng 5. 4 Các phương thức của class KNN_MODELS
45
báo cáo án – nhóm 3
46
báo cáo án – nhóm 3
47
báo cáo án – nhóm 3
Về ưu điểm:
- Việc triển khai và sử dụng KNN không đòi hỏi nhiều kiến thức toán học phức tạp.
- KNN linh hoạt trong việc sử dụng trên nhiều dữ liệu bởi nó không phụ thuộc nhiều
vào phân phối.
- Có thể chia nhóm dữ liệu có cấu trúc phức tạp và không tuyến tính.
Về nhược điểm:
- Có thể nhạy cảm với dữ liệu nhiễu và có thể bị ảnh hưởng bởi chiều cao khác biệt
của các đặc trưng.
- Cần lưu toàn bộ dữ liệu đào tạo trong bộ nhớ. Điều này có thể tạo ra vấn đề về hiệu
suất khi dữ liệu lớn.
48
báo cáo án – nhóm 3
- Khi số chiều của dữ liệu tăng, khoảng cách giữa các điểm dữ liệu có thể trở nên
không hiệu quả và dẫn đến hiệu suất kém.
- Việc chọn giá trị k phù hợp có thể ảnh hưởng đến kết quả của thuật toán. Giá trị k
quá nhỏ có thể dẫn đến tình trạng quá mức tương quan, trong khi giá trị k quá lớn
có thể làm giảm độ chính xác.
2. Hướng phát triển
Dựa trên những phân tích của nhóm, các yếu tố đánh giá ở trên, nhóm đưa ra những
hướng phát triển khả dụng sau cho đề tài:
- Support Vector Machine (SVM): SVM là một mô hình mạnh mẽ cho việc phân loại
và học máy.
- Random Forest: Random Forest là một mô hình thuật toán học tập dựa trên cây
quyết định, có khả năng xử lý cả dữ liệu có cấu trúc và không có cấu trúc.
- Neural Networks (Deep Learning): Mạng nơ-ron sâu (Deep Neural Networks) có
khả năng học tự động các đặc trưng phức tạp từ dữ liệu.
- Logistic Regression: Phù hợp cho các nhiệm vụ phân loại nhị phân và có thể được
mở rộng cho nhiều lớp.
- Mô Hình Học Sâu (Deep Learning): Sử dụng các mô hình học sâu như mạng nơ-
ron tích chập (CNN) để tự động rút trích đặc trưng từ hình ảnh và cải thiện khả
năng chẩn đoán.
- Mô Hình Học Máy Tăng Cường (Ensemble Models): Kết hợp nhiều mô hình học
máy để cải thiện độ chính xác và ổn định.
49
báo cáo án – nhóm 3
[5]Dvms.vn, Thuật Toán Knn và Ví Dụ đơn Giản trong Ngành Ngân Hàng(2023). Retrive
from https://dvms.com.vn/tin-tuc/big-data/76009-thuat-toan-knn-va-vi-du-don-gian-
trong-nganh-ngan-hang.html#gsc.tab=0
[6]Vu, Bài 6: K-Nearest Neighbors (2017). Retrive from
https://machinelearningcoban.com/2017/01/08/knn/?
fbclid=IwAR07LReBw7K3Ycg1Cxz6r5QbSOJgKOz-
ypW5X5A9ugGkVkba3pdtdhAO49s#-gioi-thieu
50