You are on page 1of 62

BỘ GIÁO DỤC VÀ ĐÀO TẠO BỘ NÔNG NGHIỆP VÀ PTNT

TRƯỜNG ĐẠI HỌC THỦY LỢI

VŨ HUY HOÀNG

ỨNG DỤNG HỌC MÁY ĐỂ PHÂN LOẠI UNG THƯ VÚ

ĐỒ ÁN TỐT NGHIỆP

HÀ NỘI, NĂM 2022


BỘ GIÁO DỤC VÀ ĐÀO TẠO BỘ NÔNG NGHIỆP VÀ PTNT
TRƯỜNG ĐẠI HỌC THỦY LỢI

VŨ HUY HOÀNG

ỨNG DỤNG HỌC MÁY ĐỂ PHÂN LOẠI UNG THƯ VÚ

Ngành : Công nghệ thông tin


Mã số:

NGƯỜI HƯỚNG DẪN 1. PGS TS.Lê Đức Hậu

HÀ NỘI, NĂM 2022


GÁY BÌA ĐỒ ÁN TỐT NGHIỆP, KHÓA LUẬN TỐT NGHIỆP

VŨ HUY HOÀNG ĐỒ ÁN/KL TỐT NGHIỆP HÀ NỘI, NĂM 2022


  CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM
 Độc lập - Tự do - Hạnh phúc
 --------------------
 NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP

 Họ tên sinh viên: Vũ Huy Hoàng Hệ đào tạo : Đại học


chính quy
 Lớp: 59TH1 Ngành: Công nghệ
thông tin
 Khoa: Công nghệ thông tin

1- TÊN ĐỀ TÀI:
” Ứng dụng học máy để phân loại ung thư vú ”

2- NỘI DUNG CÁC PHẦN THUYẾT MINH VÀ TÍNH TOÁN:


Phần Tỷ lệ
Chương 1: Giới thiệu 10%
Chương 2: Cơ sở lý thuyết 40%
Chương 3: Phân tích và giải quyết bài toán 40%
Chương 4: Kết quả thực nghiệm 10%

3- GIÁO VIÊN HƯỚNG DẪN TỪNG PHẦN


Phần Giáo viên hướng dẫn
Chương 1: Giới thiệu
Chương 2: Cơ sở lý thuyết PGS TS.Lê Đức Hậu
Chương 3: Phân tích và giải quyết bài toán
Chương 4: Kết quả thực nghiệm

4- NGÀY GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP


Hà Nội, ngày ... tháng ... năm 2022
Trưởng Bộ môn Giáo viên hướng dẫn chính
(Ký và ghi rõ Họ tên) (Ký và ghi rõ Họ tên)

Nhiệm vụ Đồ án tốt nghiệp đã được Hội đồng thi tốt nghiệp của Khoa thông qua
Hà Nội,ngày ... tháng ... năm 2022
Chủ tịch Hội đồng
(Ký và ghi rõ Họ tên)

Sinh viên đã hoàn thành và nộp bản Đồ án tốt nghiệp cho Hội đồng thi ngày....
tháng .... năm 2021.
Sinh viên làm Đồ án tốt nghiệp
(KÝ VÀ GHI RÕ HỌ TÊN)

Hoàng

Vũ Huy Hoàng
TRƯỜNG ĐẠI HỌC THUỶ LỢI
KHOA CÔNG NGHỆ THÔNG TIN

BẢN TÓM TẮT ĐỀ CƯƠNG ĐỒ ÁN TỐT NGHIỆP

TÊN ĐỀ TÀI: Ứng dụng học máy để phân loại ung thư vú

Sinh viên thực hiện: Vũ Huy Hoàng


Lớp: 59TH1
Giáo viên hướng dẫn: PGS TS. Lê Đức Hậu

TÓM TẮT ĐỀ TÀI


Trong những năm gần đây, với sự phát triển của ngành khoa học kỹ thuật và công
nghệ thì việc phát hiện ra bệnh ung thư ngày càng chính xác. Việc phát hiện sớm sẽ
giúp cho các bác sĩ biết và có những phương pháp điều trị để giảm thiểu khả năng tử
vong cho người bệnh. Ung thư vú là bệnh ung thư thứ hai trong số các bệnh ung thư
được chẩn đoán nhiều nhất.
Ung thư vú là loại ung thư phổ biến nhất ở phụ nữ. Nó ảnh hưởng đến 10% tất cả
phụ nữ ở một số giai đoạn trong cuộc sống của họ. Ung thư vú bắt đầu khi các khối u
ác tính là ung thư bắt đầu phát triển từ các tế bào vú. Ung thư vú xảy ra chủ yếu ở phụ
nữ từ 40 tuổi trở lên và nó xảy ra khi các tế bào trong các tuyến sản xuất sữa (được gọi
là thùy) bất thường và phân chia mạnh mẽ. Cần có một hệ thống phát hiện hỗ trợ máy
tính (CAD) sử dụng phương pháp học máy để cung cấp chẩn đoán chính xác ung thư
vú. Các hệ thống CAD này có thể hỗ trợ phát hiện ung thư vú ở giai đoạn đầu. Khi ung
thư vú được phát hiện đủ sớm, tỷ lệ sống sót tăng lên vì có thể điều trị tốt hơn
Trong thời gian làm đồ án tốt nghiệp, em chọn đề tài “Ứng dụng học máy để phân
loại ung thư vú”. Đề tài này nhằm đưa ra chẩn đoán về bệnh ung thư vú dựa trên bộ dữ
liệu thu thập được

CÁC MỤC TIÊU CHÍNH


 Tìm hiểu các kiến thức liên quan về học máy, các công cụ xử lý dữ liệu và xây
dựng ứng dụng.
 Nghiên cứu các thuật toán: Thuật toán Naïve Bayes, Thuật toán SVM (Support
Vector Machine)
 Đánh giá và xác định thuật toán tốt nhất.
KẾT QUẢ DỰ KIẾN

 Nắm vững các kiến thức liên quan.


 Dự đoán ung thư thực trên bộ dữ liệu thu thập được.
 Tổng hợp kiến thức và viết báo cáo.
LỜI CAM ĐOAN

Tác giả xin cam đoan đây là Đồ án tốt nghiệp/ Khóa luận tốt nghiệp của bản thân tác
giả. Các kết quả trong Đồ án tốt nghiệp/Khóa luận tốt nghiệp này là trung thực, và
không sao chép từ bất kỳ một nguồn nào và dưới bất kỳ hình thức nào. Việc tham khảo
các nguồn tài liệu (nếu có) đã được thực hiện trích dẫn và ghi nguồn tài liệu tham khảo
đúng quy định.

Tác giả ĐATN

Hoàng

Vũ Huy Hoàng

i
LỜI CÁM ƠN

Đồ án “Ứng dụng học máy để phân loại ung thư vú” là kết quả nghiên cứu đồ án tốt
nghiệp của bản thân em dưới sự giúp đỡ của thầy cô và bạn bè. Sau thời gian học tập
và rèn luyện của bản thân tại trường Đại học Thủy Lợi, em đã được giao thực hiện học
phần tốt nghiệp. Nhân dịp hoàn thành đồ án tốt nghiệp, em xin được gửi lời cảm ơn
sâu sắc tới quý thầy cô trong trường đã tạo điều kiện giúp đỡ để em hoàn thành tốt
khóa học này.

Đặc biệt, em được gửi lời cảm ơn chân thành đến thầy giáo PGS TS. Lê Đức Hậu,
trong thời gian thực hiện đồ án tốt nghiệp đã trực tiếp hướng dẫn và chỉ bảo tận tình để
em có thể hoàn thành được công việc của mình.

Cuối cùng, em xin chân thành cảm ơn gia đình, các bạn học trong trường luôn là động
lực cho em phấn đấu, đã luôn ở bên động viên, khích lệ và giúp đỡ em rất nhiều trong
những lúc khó khăn.

Do bản thân còn nhiều hạn chế nên trong quá trình thực hiện đồ án không tránh khỏi
sai sót, em rất mong nhận được sự góp ý của quý thầy cô và các bạn.

ii
MỤC LỤC

DANH MỤC CÁC HÌNH ẢNH....................................................................................v


DANH MỤC BẢNG BIỂU..........................................................................................vi
DANH MỤC CÁC TỪ VIẾT TẮT VÀ GIẢI THÍCH CÁC THUẬT NGỮ...............vii
CHƯƠNG 1 GIỚI THIỆU.............................................................................................1
1.1 Đặt vấn đề............................................................................................................1
1.2 Nội dung..............................................................................................................1
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT...............................................................................3
2.1 Học máy............................................................................................................... 3
2.1.1 Giới thiệu......................................................................................................3
2.1.2 Vai trò của học máy......................................................................................3
2.1.3 Phân loại và ứng dụng học máy....................................................................4
2.1.4 Ứng dụng của học máy.................................................................................6
2.1.5 Thuật toán Naïve Bayes................................................................................8
2.1.6 Thuật toán SVM (Support Vector Machine)...............................................11
2.1.7 Chuẩn hóa dữ liệu.......................................................................................15
2.1.8 Phương pháp đánh giá.................................................................................18
2.2 Python với học máy...........................................................................................22
2.2.1 Giới thiệu về ngôn ngữ lập trình Python.....................................................22
2.2.2 Python với học máy....................................................................................23
CHƯƠNG 3 PHÂN TÍCH VÀ GIẢI QUYẾT BÀI TOÁN.........................................25
3.1 Bối cảnh bài toán...............................................................................................25
3.2 Thu thập và xử lý dữ liệu...................................................................................26
3.2.1 Tổng quan về dữ liệu..................................................................................26
3.2.1 Tiền xử lý dữ liệu........................................................................................30
3.2.2 Chia dữ liệu.................................................................................................31
3.2.3 Huấn luyện..................................................................................................32
CHƯƠNG 4 Kết quả thực nghiệm...............................................................................36
KẾT LUẬN.................................................................................................................39

iii
TÀI LIỆU THAM KHẢO...........................................................................................40
PHỤ LỤC.................................................................................................................... 42

iv
DANH MỤC CÁC HÌNH ẢNH

Hình 2.1 Các phương pháp học máy phổ biến hiện nay.................................................4
Hình 2.2 Minh họa siêu phẳng trong SVM..................................................................12
Hình 2.3 Vấn đề chọn siêu phẳng trong SVM.............................................................13
Hình 2.4 Margin trong vấn đề chọn siêu phẳng...........................................................14
Hình 2.5 Minh họa về Precision và Recall...................................................................22
Hình 3.1 Phân bổ của dữ liệu vào 2 lớp.......................................................................29
Hình 3.2 Mô hình huấn luyện tổng quát.......................................................................33
Hình 3.3 Mô hình huấn luyện với thuật toán Naive Bayes...........................................34
Hình 3.4 Mô hình huấn luyện với thuật toán SVM......................................................35
Hình 4.1 Chia dữ liệu...................................................................................................36

v
DANH MỤC BẢNG BIỂU

Bảng 2.1 Ví dụ về ma trận nhầm lẫn............................................................................19


Bảng 3.1 Bảng chi tiết dữ liệu......................................................................................26
Bảng 4.1 Bảng kết quả chẩn đoán u lành tính B dựa theo việc đánh giá bằng Precision
và Recall...................................................................................................................... 37
Bảng 4.2 Bảng kết quả chẩn đoán u ác tính M dựa theo việc đánh giá bằng Precision
và Recall...................................................................................................................... 37
Bảng 4.3 Bảng kết quả đánh giá dựa theo độ chính xác...............................................38

vi
DANH MỤC CÁC TỪ VIẾT TẮT VÀ GIẢI THÍCH CÁC THUẬT NGỮ

Từ viết tắt Từ hoàn chỉnh Giải nghĩa


AI Artificial Intelligence Trí tuệ nhân tạo
ANN Artificial Neural Network Mạng lưới thần kinh nhân tạo
ĐATN Đồ án tốt nghiệp Đồ án tốt nghiệp
FDR False Discovery Rate Tỉ lệ đoán dương tính sai
FN False negative Số ca dự đoán âm tính sai
FNR False Discovery Rate Tỉ lệ dương tính giả
FOR False Omission Rate Tỉ lệ đoán âm tính sai
FP False positive Số các ca dự đoán dương tính sai
FPR False Positive Rate  Tỉ lệ âm tính giả
GPU Graphics Processing Unit
ML Machine Learning Học máy
NPV Negative Predictive Value Tỉ lệ âm tính đoán đúng
PCA Principal Component Analysis
PPV Positive Predictive Value Tỉ lệ dương tính đúng
SVM Support Vector Machine
TN True negative Số các ca dự đoán âm tính đúng
TP True positive Số các ca dự đoán dương tính
đúng
TPR True Positive Rate

vii
CHƯƠNG 1 GIỚI THIỆU

1.1 Đặt vấn đề

Trong những năm gần đây, ung thư đang dần trở thành “gánh nặng” của nhiều
quốc gia trên thế giới, trong đó có Việt Nam. Một trong những loại ung thư phổ biến
nhất là ung thư vú. Ung thư vú là loại u phổ biến nhất ở phụ nữ Việt Nam cũng như ở
hầu hết các nước trên thế giới, chiếm khoảng 1/3 các ung thư mới được chẩn đoán. Tỷ
lệ mắc ung thư vú trên thế giới nói chung và Việt Nam nói riêng có xu hướng tăng,
nhưng tỷ lệ tử vong do bệnh này vẫn từng bước giảm nhờ các tiến bộ trong chẩn đoán,
phát hiện bệnh sớm, đặc biệt là trong điều trị nội khoa ung thư. Việc phát hiện sớm sẽ
giúp cho các bác sĩ biết và có những phương pháp điều trị để giảm thiểu khả năng tử
vong cho người bệnh. Ung thư vú là bệnh ung thư thứ hai trong số các bệnh ung thư
được chẩn đoán nhiều nhất

Ung thư vú là loại ung thư thường gặp nhất và là nguyên nhân phổ biến thứ hai
gây tử vong do ung thư ở phụ nữ. Ung thư vú ít khi xảy ra ở nam giới

Ung thư vú bắt đầu khi các khối u ác tính là ung thư bắt đầu phát triển từ các tế
bào vú. Ung thư vú xảy ra chủ yếu ở phụ nữ từ 40 tuổi trở lên và nó xảy ra khi các tế
bào trong các tuyến sản xuất sữa (được gọi là thùy) bất thường và phân chia mạnh mẽ.
Cần có một hệ thống phát hiện hỗ trợ máy tính (CAD) sử dụng phương pháp học máy
để cung cấp chẩn đoán chính xác ung thư vú. Các hệ thống CAD này có thể hỗ trợ
phát hiện ung thư vú ở giai đoạn đầu. Khi ung thư vú được phát hiện đủ sớm, tỷ lệ
sống sót tăng lên vì có thể điều trị tốt hơn.

Xuất phát từ những vấn đề thực tiễn nêu trên, yêu cầu cần có những giải pháp cụ
thể. Bằng những kiến thức em vốn có, thúc đẩy em tìm hiểu và nghiên cứu những giải
pháp để có thể tìm ra những giải pháp cụ thể giải quyết những vấn đề nêu trên. Vì vậy,
em chọn đề tài “Ứng dụng của học máy để phân loại ung thư vú” làm đề tài cho
ĐATN của mình

1
1.2 Nội dung

Các nội dung chính được trình bày trong báo cáo này:

 Tìm hiểu các kiến thức liên quan về học máy, các công cụ xử lý dữ liệu và xây
dựng ứng dụng.

 Nghiên cứu các thuật toán: Thuật toán Naïve Bayes, Thuật toán SVM (Support
Vector Machine)

 Đánh giá và xác định thuật toán tốt nhất.

Cấu trúc của báo cáo:

CHƯƠNG 1 MỞ ĐẦU

Giới thiệu về tổng quát về vấn đề ung thư và nêu lý do tại sao lại làm về đề tài này

CHƯƠNG 2 CƠ SỞ LÝ THUYẾT

+) Giới thiệu chung về học máy và phân loại học máy, ứng dụng của học máy

+) Giới thiệu về 2 thuật toán được sử dụng trong đồ án là : Naive Bayes và SVM.

+) Giới thiệu các phương pháp đánh giá sử dụng trong đồ án

+) Python trong học máy

CHƯƠNG 3 PHÂN TÍCH VÀ GIẢI QUYẾT BÀI TOÁN

+) Giới thiệu về bối cảnh bài toán

+) Giới thiệu về bộ dữ liệu được sử dụng

+) Chia dữ liệu và huấn luyện

CHƯƠNG 4 KẾT QUẢ THỰC NGHIỆM

2
3
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT

2.1 Học máy

Trong những năm gần đây, AI nổi nên như một bằng chứng của cuộc cách
mạng công nghiệp lần thứ 4. Theo đà phát triển của công nghệ, ứng dụng Trí tuệ nhân
tạo luôn là xu hướng công nghệ tương lai mà các doanh nghiệp trên toàn thế giới chạy
đua đầu tư, phát triển. Trong phần này sẽ đề cập về học máy – một lĩnh vực Trí tuệ
nhân tạo và một số thuật toán sẽ được nghiên cứu và ứng dụng trong ĐATN này.

2.1.1 Giới thiệu

Học máy là một lĩnh vực của trí tuệ nhân tạo liên quan đế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
những vấn đề cụ thể. Đó là một quá trình phân tích dữ liệu, phương pháp cho phép
máy móc tự động học từ dữ liệu thông qua các thuật toán. Máy móc sẽ được huấn
luyện thông qua một lượng lớn dữ liệu. Máy phân tích và tìm ra các quy tắc từ dữ liệu,
và cải thiện hiệu suất của nó. Để sau đó máy sẽ có được khả năng tự động phán đoán
hoặc dự đoán. [1]

2.1.2 Vai trò của học máy

Machine learning rất quan trọng vì nó cung cấp cho doanh nghiệp cái nhìn về
xu hướng trong hành vi của khách hàng và các mô hình hoạt động kinh doanh, cũng
như hỗ trợ sự phát triển của các sản phẩm mới. Nhiều công ty hàng đầu hiện nay,
chẳng hạn như Facebook, Google và Uber, biến học máy trở thành một phần trọng tâm
trong hoạt động của họ. Machine learning đã trở thành một yếu tố cạnh tranh khác biệt
đáng kể đối với nhiều công ty.

4
Hình 2.1 Các phương pháp học máy phổ biến hiện nay
2.1.3 Phân loại và ứng dụng học máy

Máy học cổ điển thường được phân loại theo cách một thuật toán học để trở nên
chính xác hơn trong các dự đoán của nó. Có bốn cách tiếp cận cơ bản: học có giám sát,
học không giám sát, học bán giám sát và học tăng cường. Loại dữ liệu thuật toán mà
các nhà khoa học chọn sử dụng phụ thuộc vào loại dữ liệu mà họ muốn dự đoán.

 Học có giám sát (supervised learning)


Trong học có giám sát, máy tính học cách mô hình hóa các mối quan hệ dựa
trên dữ liệu được gán nhãn (labeled data). Sau khi tìm hiểu cách tốt nhất để mô hình
hóa các mối quan hệ cho dữ liệu được gắn nhãn, các thuật toán được huấn luyện sẽ
được sử dụng cho các bộ dữ liệu mới. Các thuật toán học tập có giám sát phù hợp với
các tác vụ sau:

+) Phân loại nhị phân: Chia dữ liệu thành hai loại

+) Phân loại nhiều lớp: Lựa chọn giữa nhiều hơn hai loại câu trả lời.

+) Mô hình hồi quy: Dự đoán các giá trị liên tục

5
+) Kết hợp: Kết hợp các dự đoán của nhiều mô hình học máy để tạo ra dự đoán
chính xác.

 Học không giám sát (unsupervised learning).


 Trong học không giám sát, máy tính không được cung cấp dữ liệu được dán
nhãn mà thay vào đó chỉ được cung cấp dữ liệu mà các thuật toán tìm cách mô tả dữ
liệu và cấu trúc của chúng. Các thuật toán học tập không giám sát tốt cho các tác vụ
sau:

+) Phân cụm: Tách tập dữ liệu thành các nhóm dựa trên sự giống nhau.

+) Phát hiện bất thường: Xác định các điểm dữ liệu bất thường trong tập dữ liệu

+) Khai thác liên kết: Xác định các tập hợp các mục trong tập dữ liệu thường
xuyên xảy ra cùng nhau.

+) Giảm kích thước:  Giảm số lượng biến trong tập dữ liệu


 Học bán giám sát (Semi-supervised learning)
Cách tiếp cận này đối với học máy liên quan đến sự kết hợp của hai loại
trước đó. Các nhà khoa học dữ liệu có thể cung cấp một thuật toán chủ yếu là
dữ liệu đào tạo được gắn nhãn, nhưng mô hình có thể tự do khám phá dữ liệu và
phát triển sự hiểu biết của riêng mình về tập dữ liệu. Một số lĩnh vực sử dụng
phương pháp học bán giám sát bao gồm:

+) Dịch máy: Dạy thuật toán dịch ngôn ngữ dựa trên ít hơn một từ điển từ đầy
đủ.

+) Phát hiện gian lận: Xác định các trường hợp gian lận khi bạn chỉ có một vài
ví dụ tích cực.

+) Dán nhãn dữ liệu: Các thuật toán được đào tạo trên tập dữ liệu nhỏ có thể
học cách áp dụng nhãn dữ liệu cho các tập lớn hơn một cách tự động.

 Học tăng cường (Reinforcement learning)


Các nhà khoa học dữ liệu thường sử dụng học tăng cường để dạy máy
hoàn thành một quy trình gồm nhiều bước trong đó có các quy tắc được xác

6
định rõ ràng. Các nhà khoa học dữ liệu lập trình một thuật toán để hoàn thành
một nhiệm vụ và cung cấp cho nó những tín hiệu tích cực hoặc tiêu cực khi nó
tìm ra cách hoàn thành một nhiệm vụ. Nhưng phần lớn, thuật toán tự quyết định
các bước cần thực hiện trong quá trình thực hiện. Học tập củng cố thường được
sử dụng trong các lĩnh vực như:

+) Robot: Robot có thể học cách thực hiện các nhiệm vụ trong thế giới vật chất
bằng cách sử dụng kỹ thuật này.

+) Trò chơi video: Học tập củng cố đã được sử dụng để dạy bot chơi một số trò
chơi điện tử.

+) Quản lý nguồn lực: Với nguồn lực hữu hạn và một mục tiêu xác định, việc
học củng cố có thể giúp doanh nghiệp lập kế hoạch phân bổ nguồn lực

2.1.4 Ứng dụng của học máy

Có rất nhiều ứng dụng thực tế khác nhau của học máy. Hai lĩnh vực ứng dụng lớn nhất
của học máy là khai phá dữ liệu (data mining) và nhận dạng mẫu (pattern
recognition).

Khai phá dữ liệu (data mining) là ứng dụng kỹ thuật học máy vào các cơ sở dữ liệu
hoặc các tập dữ liệu lớn để phát hiện quy luật hay tri thức trong dữ liệu đó hoặc để dự
đoán các thông tin quan tâm trong tương lai

Nhận dạng mẫu (pattern recognition) là ứng dụng các kỹ thuật học máy để phát hiện
các mẫu có tính quy luật trong dữ liệu, thường là dữ liệu hình ảnh, âm thanh. Bài toán
nhận dạng mẫu cụ thể thường là xác định nhãn cho đầu vào cụ thể, ví dụ cho ảnh chụp
mặt người, cần xác định đó là ai.

Cần lưu ý, khai phá dữ liệu và nhận dạng mẫu có nhiều điểm trùng nhau cả trong phạm
vi nghiên cứu và ứng dụng. Điểm khác nhau chủ yếu liên quan tới lĩnh vực ứng dụng
và kỹ thuật sử dụng, theo đó khai phá dữ liệu liên quan tới dữ liệu thương mại trong
khi nhận dạng mẫu liên quan nhiều tới dữ liệu âm thanh, hình ảnh và được dùng nhiều
trong kỹ thuật. [2]

7
Sau đây là một số ví dụ ứng dụng cụ thể của học máy:

+) Nhận dạng ký tự: phân loại hình chụp ký tự thành các loại, mỗi loại ứng với một ký
tự tương ứng

+) Phát hiện và nhận dạng mặt người: phát hiện vùng có chứa mặt người trong ảnh,
xác định đó là mặt người nào trong số những người đã có ảnh trước đó, tức là phân
chia ảnh thành những loại tương ứng với những người khác nhau.

+) Lọc thư rác, phân loại văn bản: dựa trên nội dung thư điện tử, chia thư thành loại
“thư rác” hay “thư bình thường”; hoặc phân chia tin tức thành các thể loại khác nhau
như “xã hội”, “kinh tế”, “thể thao” …

+) Dịch tự động: dựa trên dữ liệu huấn luyện dưới dạng các văn bản song ngữ, hệ
thống dịch tự động học cách dịch từ ngôn ngữ này sang ngôn ngữ khác. Hệ thống dịch
tự động tiêu biểu dạng này là Google Translate.

+) Chẩn đoán y tế: học cách dự đoán người bệnh có mắc hay không mắc một số bệnh
nào đó dựa trên triệu chứng quan sát được.

+) Phân loại khách hàng và dự đoán sở thích: sắp xếp khách hàng vào một số loại, từ
đây dự đoán sở thích tiêu dùng của khách hàng.

+) Dự đoán chỉ số thị trường: căn cứ giá trị một số tham số hiện thời và trong lịch sử,
đưa ra dự đoán, chẳng hạn dự đoán giá chứng khoán, giá vàng.v.v.

+) Các hệ khuyến nghị, hay hệ tư vấn lựa chọn: cung cấp một danh sách ngắn các loại
hàng hóa, phim, video, tin tức v.v. mà người dùng nhiều khả năng quan tâm. Ví dụ
ứng dụng loại này là phần khuyến nghị trên Youtube hay trên trang mua bán trực
tuyến Amazon.

+) Ứng dụng lái xe tự động: dựa trên các mẫu học chứa thông tin về các tình huống
trên đường, hệ thống học máy cho phép tự ra quyết định điều khiển xe, và do vậy
không cần người lái. Hiện Google đã có kế hoạch thương mại hóa xe ôtô tự động lái
như vậy.

8
Trong đồ án này, các thuật toán hồi quy sẽ được sử dụng để giải quyết bài toán
đặt ra. Các thuật toán hồi quy là nhóm các thuật toán thuộc phân loại học có giám sát
(supervised learning). Các thuật toán sẽ nghiên cứu trong đề tài này lần lượt là Thuật
toán Naïve Bayes và thuật toán SVM (Support Vector Machine). Nội dung chi tiết các
thuật toán này sẽ được đề cập trong các phần tiếp theo.

2.1.5 Thuật toán Naïve Bayes

2.1.5.1 Giới thiệu

Bộ phân lớp Bayes là một giải thuật thuộc lớp giải thuật thống kê, nó có thể dự đoán
xác suất của một phần tử dữ liệu thuộc vào một lớp là bao nhiêu. Phân lớp Bayes được
dựa trên định lý Bayes (định lý được đặt theo tên tác giả của nó là Thomas Bayes)

2.1.5.2 Định lý Naïve Bayes

Phần trong phần này, chúng ta cùng tìm hiểu về một chút lý thuyết của thuật toán
Naïve Bayes.

Gọi A, B là hai biến cố. Định lý Bayes cho phép tính xác suất xảy ra của một sự kiện
ngẫu nhiên A khi biết sự kiện liên quan B đã xảy ra. Xác suất này được ký hiệu là P(A|
B), và đọc là “xác suất của A nếu có B”. Đại lượng này được gọi xác suất có điều kiện
hay xác suất hậu nghiệm vì nó được rút ra từ giá trị được cho của B hoặc phụ thuộc
vào giá trị đó.

Theo định lý Bayes, xác suất xảy ra A khi biết B sẽ phụ thuộc vào 3 yếu tố:

* Xác suất xảy ra A của riêng nó, không quan tâm đến B. Kí hiệu là P (A) và đọc là
xác suất của A. Đây được gọi là xác suất biên duyên hay xác suất tiên nghiệm, nó là
“tiên nghiệm” theo nghĩa rằng nó không quan tâm đến bất kỳ thông tin nào về B.

* Xác suất xảy ra B của riêng nó, không quan tâm đến A. Kí hiệu là P (B) và đọc là
“xác suất của B”. Đại lượng này còn gọi là hằng số chuẩn hóa (normalising constant),
vì nó luôn giống nhau, không phụ thuộc vào sự kiện A đang muốn biết.

9
* Xác suất xảy ra B khi biết A xảy ra. Kí hiệu là P (B|A) và đọc là “xác suất của B nếu
có A”. Đại lượng này gọi là khả năng (likelihood) xảy ra B khi biết A đã xảy ra. Chú ý
không nhầm lẫn giữa khả năng xảy ra B khi biết A và xác suất xảy ra A khi biết B

Tóm lại định lý Bayes sẽ giúp ta tính ra xác suất xảy ra của một giả thuyết bằng cách
thu thập các bằng chứng nhất quán hoặc không nhất quán với một giả thuyết nào đó.
Khi các bằng chứng tích lũy, mức độ tin tưởng vào một giả thuyết thay đổi. Khi có đủ
bằng chứng, mức độ tin tưởng này thường trở nên rất cao hoặc rất thấp, tức là xác suất
xảy ra giả thuyết sẽ thay đổi thì các bằng chứng liên quan đến nó thay đổi. [3]

Công thức của định luật Bayes được phát biểu như sau:

P ( A|B ¿=P ( B| A ¿ P( A) ¿
P(B)

Trong đó:

- P (A|B) là xác suất xảy ra của một sự kiện ngẫu nhiên A khi biết sự kiện liên quan B
đã xảy ra.

- P (B|A) là xác suất xảy ra B khi biết A xảy ra

- P (A) là xác suất xảy ra của riêng A mà không quan tâm đến B.

- P (B) là xác suất xảy ra của riêng B mà không quan tâm đến A.

2.1.5.3 Phân lớp với Naïve Bayes

Bộ phân lớp Naive bayes hay bộ phân lớp Bayes (simple bayes classifier) hoạt động
như sau:

1. Gọi D là tập dữ liệu huấn luyện, trong đó mỗi phần tử dữ liệu X được biểu diễn
bằng một vector chứa n giá trị thuộc tính A1, A2, ..., An = {x1,x2,...,xn}

2. Giả sử có m lớp C1, C2, .., Cm. Cho một phần tử dữ liệu X, bộ phân lớp sẽ gán
nhãn cho X là lớp có xác suất hậu nghiệm lớn nhất. Cụ thể, bộ phân lớp Bayes
sẽ dự đoán X thuộc vào lớp Ci nếu và chỉ nếu:

10
P(Ci|X) > P(Cj|X) (1<= i, j <=m, i != j)
Giá trị này sẽ tính dựa trên định lý Bayes.

3. Để tìm xác suất lớn nhất, ta nhận thấy các giá trị P(X) là giống nhau với mọi
lớp nên không cần tính. Do đó ta chỉ cần tìm giá trị lớn nhất của P (X|Ci) *
P(Ci). Chú ý rằng P (Ci) được ước lượng bằng |Di|/|D|, trong đó Di là tập các
phần tử dữ liệu thuộc lớp Ci. Nếu xác suất tiền nghiệm P (Ci) cũng không xác
định được thì ta coi chúng bằng nhau P (C1) = P (C2) = ... = P (Cm), khi đó ta chỉ
cần tìm giá trị P(X|Ci) lớn nhất.

4. Khi số lượng các thuộc tính mô tả dữ liệu là lớn thì chi phí tính toàn P (X|Ci) là
rất lớn, dó đó có thể giảm độ phức tạp của thuật toán Naive Bayes giả thiết các
thuộc tính độc lập nhau. Khi đó ta có thể tính:
P (X|Ci) = P (x1|Ci)...P (xn|Ci)

Để hiểu chi tiết thêm về thuật toán Naïve Bayes, chúng ta cùng tìm hiểu thông qua
một ví dụ cụ thể.

Phân các bệnh nhân thành 2 lớp ung thư và không ung thư. Giả sử xác suất để một
người bị ung thư là 0.008 tức là P (cancer) = 0.008; và P (nocancer) = 0.992. Xác
suất để bệnh nhân ung thư có kết quả xét nghiệm dương tính là 0.98 và xác suất để
bệnh nhân không ung thư có kết quả dương tính là 0.03 tức là P (+/cancer) = 0.98,
P (+/nocancer) = 0.03. Bây giờ giả sử một bệnh nhân có kết quả xét nghiệm dương
tính.

Ta có: P (+/cancer)P (cancer) = 0.98 * 0.008 = 0.0078 P (+/nocancer)P (nocancer)


= 0.03 * 0.992 = 0.0298 Như vậy, P (+/nocancer)P (nocancer) >>
P(+/cancer)P(cancer). Do đó ta xét đoán rằng, bệnh nhân là không ung thư.

Trên đây, em đã trình bày về cơ sở lý thuyết của thuật toán Naïve Bayes, cùng với
đó là áp dụng vào một ví dụ cụ thể. Dưới đây em sẽ trình bày về những ưu nhược
điểm của thuật toán này.

2.1.5.4 Ưu nhược điểm

- Ưu điểm

11
 Giả định độc lập: hoạt động tốt cho nhiều bài toán/miền dữ liệu và ứng dụng.
Đơn giản nhưng đủ tốt để giải quyết nhiều bài toán như phân lớp văn bản, lọc
spam,..

 Cho phép kết hợp tri thức tiền nghiệm (prior knowledge) và dữ liệu quan sát
được .
Tốt khi có sự chênh lệch số lượng giữa các lớp phân loại.

 Huấn luyện mô hình (ước lượng tham số) dễ và nhanh.

- Nhược điểm

 Giả định độc lập (ưu điểm cũng chính là nhược điểm)
hầu hết các trường hợp thực tế trong đó có các thuộc tính trong các đối tượng
thường phụ thuộc lẫn nhau.

 Vấn đề zero

 Mô hình không được huấn luyện bằng phương pháp tối ưu mạnh và chặt chẽ.
Tham số của mô hình là các ước lượng xác suất điều kiện đơn lẻ.
Không tính đến sự tương tác giữa các ước lượng này.

2.1.6 Thuật toán SVM (Support Vector Machine)

2.1.6.1 Khái niệm

SVM (Support Vector Machine) là một thuật toán học máy có giám sát được sử dụng
rất phổ biến ngày nay trong các bài toán phân lớp (classification) hay hồi quy
(Regression).

SVM được đề xuất bởi Vladimir N. Vapnik và các đồng nghiệp của ông vào năm 1963
tại Nga và sau đó trở nên phổ biến trong những năm 90 nhờ ứng dụng giải quyết các
bài toán phi tuyến tính (nonlinear) bằng phương pháp Kernel Trick.

12
2.1.6.2 Ý tưởng của thuật toán

Ý tưởng của SVM là tìm một siêu phẳng (hyper lane) để phân tách các điểm dữ liệu.
Siêu phẳng này sẽ chia không gian thành các miền khác nhau và mỗi miền sẽ chứa một
loại dữ liệu [4]

Hình 2.2 Minh họa siêu phẳng trong SVM

Siêu phẳng được biểu diễn bằng hàm số < W.X > = b (W và X là các vector < W.X> là
tích vô) Hay WT = b (WT là ma trận chuyển vị)

13
Hình 2.3 Vấn đề chọn siêu phẳng trong SVM

Vấn đề chọn siêu mặt phẳng tối ưu:

Giả sử chúng ta phải phân loại tập dữ liệu các lớp dương (màu xanh) nhãn là 1 và các
dữ liệu lớp âm (màu đỏ) nhãn là -1 (tập dữ liệu có thể phân tách tuyến tính).

Siêu phẳng phân tách hai lớp dữ liệu H 0 thỏa mãn <W.X> + b = 0. Siêu phẳng này tạo
ra hai nửa không gian dữ liệu:

Không gian các dữ liệu lớp âm Xi thỏa mãn <W.Xi> + b ≤ -1 và không gian dữ liệu lớp
dương Xj thỏa mãn < W.Xj> + b ≥ 1

14
Hình 2.4 Margin trong vấn đề chọn siêu phẳng

Tiếp theo ta chọn hai siêu phẳng lề H 1 đi qua điểm thuộc lớp âm và H2 đi qua điểm
thuộc lớp dương đều song song với H0

+ H1: <W.X> + b = -1

+ H2: <W.X> + b = 1

Khoảng cách từ H1 đến H0 là d_

Khoảng cách từ H2 đến H0 là d+

m = d_ + d+ được gọi là mức lề

15
Siêu phẳng tối ưu mà chúng ta cần chọn là siêu phẳng phân tách có lề lớn nhất. Lý
thuyết học máy đã chỉ ra rằng một siêu phẳng như vậy sẽ cực tiểu hóa giới hạn lỗi mắc
phải.

2.1.6.3 Ưu nhược điểm

- Ưu điểm

 Xử lý trên không gian số chiều cao: SVM là một công cụ tính toán hiệu quả
trong không gian chiều cao, trong đó đặc biệt áp dụng cho các bài toán phân
loại văn bản và phân tích quan điểm nơi chiều có thể cực kỳ lớn.
 Tiết kiệm bộ nhớ: Do chỉ có một tập hợp con của các điểm được sử dụng
trong quá trình huấn luyện và ra quyết định thực tế cho các điểm dữ liệu mới
nên chỉ có những điểm cần thiết mới được lưu trữ trong bộ nhớ khi ra quyết
định.
 Tính linh hoạt - phân lớp thường là phi tuyến tính. Khả năng áp dụng Kernel
mới cho phép linh động giữa các phương pháp tuyến tính và phi tuyến tính
từ đó khiến cho hiệu suất phân loại lớn hơn.
- Nhược điểm

 Bài toán số chiều cao: Trong trường hợp số lượng thuộc tính (p) của tập dữ liệu
lớn hơn rất nhiều so với số lượng dữ liệu (n) thì SVM cho kết quả khá tồi.

 Chưa thể hiện rõ tính xác suất: Việc phân lớp của SVM chỉ là việc cố gắng tách
các đối tượng vào hai lớp được phân tách bởi siêu phẳng SVM. Điều này chưa
giải thích được xác suất xuất hiện của một thành viên trong một nhóm là như
thế nào. Tuy nhiên hiệu quả của việc phân lớp có thể được xác định dựa vào
khái niệm margin từ điểm dữ liệu mới đến siêu phẳng phân lớp mà chúng ta đã
bàn luận ở trên. [5]

2.1.7 Chuẩn hóa dữ liệu

2.1.7.1 Giới thiệu chuẩn hóa dữ liệu

Tương tự như việc tinh chỉnh dữ liệu, việc chuẩn hóa dữ liệu cũng là một bước vô
cùng quan trọng trong việc giải quyết một vấn đề học máy. Lý do không chỉ bởi vì các

16
thông tin thu được từ dữ liệu ra sao mà còn vì các phương pháp phân tích dữ liệu khác
nhau tập trung vào các khía cạnh khác nhau của dữ liệu. Ví dụ, một phương pháp phân
cụm tập trung vào việc phân tích sự tương tự của các điểm dữ liệu, trong khi phương
pháp phân tích các thành phần chính PCA lại tập trung vào việc chỉ ra độ rộng của các
thành phần chính. Nếu ta chuẩn hóa và thay đổi các thuộc tính của dữ liệu thì có thể nó
làm tăng tính hiệu quả của phương pháp phân cụm nhưng lại che mờ đi kết quả của
phương pháp phân tích PCA. [6]

Một số phương pháp chuẩn hóa dữ liệu

 Co giãn dữ liệu (Scaling data)


Co giãn dữ liệu là một phương pháp chuẩn hóa phạm vị của các đặc trưng dữ
liệu và được thực hiện trong suốt quá trình tiền xử lý dữ liệu
Vì phạm vi của các dữ liệu thô là rất rộng, trong khi đối với một số thuật toán
học máy, các hàm mục tiêu của chúng sẽ không hoạt động đúng khi dữ liệu
không được chuẩn hóa. Ví dụ là một mô hình phân lớp tính toán khoảng cách
Euclide giữa hai điểm dữ liệu thể hiện cho kích thước con người gồm chiều cao
tính theo cm và cân nặng tính theo kg. Rõ ràng chúng ta không thể áp dụng trực
tiếp lý thuyết Euclide để tính khoảng cách giữa hai người vì hai số liệu về chiều
cao và cân nặng là hoàn toàn khác nhau về bản chất. Trong trường hợp này,
việc co giãn các đặc trưng về cùng một thước đo cụ thể là rất hữu ích.
 Chuẩn hóa min-max (rescaling)
Chuẩn hóa min –max là phương pháp đơn giản nhất trong việc co giãn phạm vi
của đặc trưng bằng việc co giãn chúng về phạm vi [0,1] hoặc [-1,1]. Công thức
chung được cho như sau:
x−min ⁡( x)
x'=
( x )−min ⁡( x)
Trong đó:
+) x là giá trị ban đầu
+) x’ là giá trị sau khi chuẩn hóa
+) min (x) là giá trị nhỏ nhất của đặc trưng 
+) max (x) là giá trị lớn nhất của đặc trưng

17
 Co giãn trung bình (mean normalization)
Tương tự như phương pháp chuẩn hóa min-max (rescaling), phương pháp co
giãn xoay quanh trung bình có giá trị nằm trong khoảng [-0.5, 0.5] và được cho
bởi công thức:
x−average(x )
x '=
( x )−min ⁡(x)
Trong đó:
+) x là giá trị ban đầu
+) average (x) là trung bình của vectơ đặc trưng đó
+) min (x) là giá trị nhỏ nhất của đặc trưng 
 Chính quy hóa (standardisation)
Phương pháp này được sử dụng rộng rãi trong việc chuẩn hóa dữ liệu của nhiều
thuật toán học máy (SVM, logistic regression và ANNs).
 Vectơ đơn vị
Một lựa chọn khác để co giãn các thành phần của các vectơ đặc trưng là biến
đổi sao cho vectơ đặc trưng sau khi biến đổi có độ dài bằng 1. Thông thường
người ta sẽ lấy giá trị của mỗi đặc trưng chia cho độ dài.
Euclidean của vectơ đặc trưng:
x
x'=
¿|x|∨¿ ¿

 …

2.1.7.2 Chính quy hóa (standardisation)

Trong lĩnh vực học máy, chúng ta có thể sẽ phải xử lý một lượng lớn các kiểu
dữ liệu khác nhau, ví dụ như dữ liệu dạng tín hiệu âm thanh, các điểm ảnh trong một
bức ảnh, … và những dữ liệu này có thể là các dữ liệu nhiều chiều. Việc chính quy hóa
dữ liệu giúp cho giá trị của mỗi đặc trưng có trung bình bằng 0 và phương sai bằng 1.
Phương pháp này được sử dụng rộng rãi trong việc chuẩn hóa dữ liệu của nhiều thuật
toán học máy (SVM, logistic regression và ANNs).

Để tính toán chính quy hóa dữ liệu, ta phải xác định trung bình và độ lệch
chuẩn cho phân phối của mỗi đặc trưng. Tiếp theo ta lấy mỗi giá trị của đặc trưng trừ

18
đi giá trị trung bình rồi chia cho độ lệch chuẩn của đặc trưng đó như công thức dưới
đây:

x−average(x )
x '=
std (x )

Trong đó:

 x  là vectơ đặc trưng ban đầu,


 average (x) là trung bình của vectơ đặc trưng đó
 std (x) là độ lệch chuẩn của nó

Khi đối mặt với một vấn đề mà bạn muốn giải quyết nó bằng Học Máy, bạn cần
tìm ra những đặc trưng trong dữ liệu của bạn là gì, chúng gồm những loại nào và làm
sao để tìm ra những đặc trưng hữu ích cho quá trình huấn luyện. Khi thực hiện những
công việc này nghĩa là bạn đang làm bước thu thập dữ liệu trong quá trình phân tích dữ
liệu.

2.1.8 Phương pháp đánh giá hiệu năng học máy

 Hold-out

- Toàn bộ tập dữ liệu (data) sẽ được chia thành 2 tập con datatrain và datatest
không giao nhau (|datatrain| >>|datatest|).
- Tập huấn luyện datatrain: để huấn luyện hệ thống
- Tập kiểm thử datatest: để đánh giá hiệu năng của hệ thống sau khi đã được huấn
luyện Yêu cầu:
- Dữ liệu thuộc tập kiểm thử datatest không được sử dụng trong quá trình huấn
luyện hệ thống.
- Dữ liệu thuộc tập huấn luyện datatrain không được sử dụng trong quá trình
đánh giá hệ thống sau khi huấn luyện. Ví dụ: Ta có thể chọn |datatrain| = (2/3). |
data| và |data test | = (1/3).|data|
- => Cách đánh giá này phù hợp khi ta bộ dữ liệu (data) có kích thước lớn.

 Stratified sampling

19
 Được sử dụng khi các tập ví dụ có kích thước nhỏ hoặc không cân xứng
(unbalanced datasets). Ví dụ: có ít, hoặc không có các ví dụ với một số lớp Mục
tiêu: Phân bố lớp (Class distribution) trong tập huấn luyện và tập kiểm thử phải
xấp xỉ như trong tập toàn bộ các ví dụ (data)

- Stratified sampling là một phương pháp để cân xứng về phân bố lớp


- Đảm bảo tỉ lệ phân bố lớp trong tập huấn luyện và tập kiểm thử sẽ là xấp xỉ
nhau

 => Phương pháp này không áp dụng được cho bài toán học máy dự đoán/hồi
quy (vì giá trị đầu ra của hệ thống là một giá trị số, không phải là một nhãn lớp)
 Repeated hold-out

Đây là phương pháp sẽ áp dụng phương pháp đánh giá Hold-out nhiều lần, để sinh
ra các tập huấn luyện và thử nghiệm khác nhau. Trong mỗi lần lặp, một tỉ lệ nhất
định của tập dữ liệu (data) được chọn ngẫu nhiên nhằm tạo nên tập huấn luyện (có
thể kết hợp với phương pháp Stratified sampling). Đối với các giá trị lỗi (hoặc giá
trị với các tiêu chí đánh giá khác) ghi nhận trong các bước lặp này được lấy trung
bình công để xác định lỗi tổng thể. => Tuy nhiên phương pháp này chưa được tốt

- Mỗi bước lặp ta lại có một tập kiểm thử khác nhau
- Có một số dữ liệu sẽ được dùng nhiều lần (trùng lặp) trong các tập kiểm thử

 Cross validation (k-fold, leave-one-out)

- Tập dữ liệu (data) được chia thành k tập con không giao nhau (gọi là “fold”) có
kích thước xấp xỉ nhau.

- Mỗi lần lặp, một tập con trong k tập sẽ được dùng để làm tập kiểm thử, (k-1) tập
còn lại sẽ được sử dụng làm tập huấn luyện.

- k giá trị lỗi (mỗi giá trị tương ứng với mỗi “fold”) sẽ được tính trung bình cộng
để thu được giá trị lỗi tổng thể.
Ví dụ: ta có thể chia data thành 10 hoặc 5 folds (k = 10 hoặc k = 5)

Thông thường mỗi tập con (fold) được lấy mẫu phân tầng (xấp xỉ phân bố lớp)
trước khi áp dụng quá trình đánh giá Cross validation
=> Phù hợp khi ta có tập dữ liệu data vừa và nhỏ

2.1.9 Phương pháp đánh giá

- Biểu diễn kết quả bằng ma trận nhầm lẫn (Confusion Matrix)

20
Confusion Matrix ma trận nhầm lẫn hay ma trận lỗi là một bố cục bảng cụ thể cho
phép hình dung hiệu suất của một thuật toán. Ma trận nhầm lẫn là một trong những
kỹ thuật đo lường hiệu suất phổ biến nhất và được sử dụng rộng rãi cho các mô
hình phân loại. Nhìn thuật ngữ của nó thì trông có vẻ khó hiểu nhưng thực tế nó lại
rất dễ hiểu [7]

Xét ví dụ thực tế : Vào một ngày khám bệnh tại 1 tại bệnh viện A có 100 bệnh
nhân đến khám một loại bệnh, giả sử biết trước trong 100 bệnh nhân có 60 người
mắc bệnh, 40 người không có bệnh. Sau khi thăm khám, bệnh viện đưa ra kết quả:

+ Trong 60 người bệnh thật thì có 45 người chẩn đoán có bệnh, 15 người chẩn
đoán không mắc bệnh.

+ Trong 40 người không mắc bệnh thì có 30 người chẩn đoán không mắc bệnh, 10
người chẩn đoán là mắc bệnh.

Bảng 2.1 Ví dụ về ma trận nhầm lẫn

Dự đoán Thực tế Dương tính Âm tính

Dương tính TP (45) FP (10)

Âm tính FN (15) TN (30)

Từ ma trận cơ bản này, ta sẽ có một số thuật ngữ sau:

21
● Condition positive (P): Tổng số ca dương tính thực tế.
● Condition Negative (N): Tổng số ca âm tính thực tế.
● True positive (TP): Số các ca dự đoán dương tính đúng hay dương tính thật.
● True negative (TN): Số các ca dự đoán âm tính đúng hay âm tính thật.
● False positive (FP): Số các ca dự đoán dương tính sai hay dương tính giả.
● False negative (FN): Số các ca dự đoán âm tính sai hay âm tính giả.

Với các thuật ngữ trên, ta có các chỉ số đánh giá sau:

● Độ chính xác – Accuracy:

TP+ TN TP+TN 45+30


Độ chính xác= = =
P+ N TP+ FP+TN + FN 100
● Sensitivity, Recall, Hit Rate, Or True Positive Rate (TPR): Độ nhạy - Tỷ lệ
dương tính thực:

TP TP 45
Độ nhạy= = =
P TP+ FN 45+15

● Precision Or Positive Predictive Value (PPV): Tỉ lệ dương tính đoán đúng

TP 45
Tỉ lệ dương tính đoán đúng= =
TP+ FP 45+10

● Negative Predictive Value (NPV): Tỉ lệ âm tính đoán đúng

TN 30
Tỉ lệ âmtính đoán đúng= =
TN + FN 30+15

● Miss Rate Or False Negative Rate (FNR): Tỉ lệ dương tính giả

FN FN 15
Tỉ lệ dương tính giả= = =
P TP+ FN 45+ 15

● Fall-Out or False Positive Rate (FPR): Tỉ lệ âm tính giả

22
FP FP 10
Tỉ lệ âmtính giả= = =
N TN + FP 30+10

● False Discovery Rate(FDR): Tỉ lệ đoán dương tính sai

FP 10
Tỉ lệ đoán dương tính sai= =
FP+TP 45+10

● False Omission Rate (FOR): Tỉ lệ đoán âm tính sai

FN 15
Tỉ lệ đoán âm tính sai= =
FN +TN 30+15

● F1 score - Điểm F1: Điểm F1 là một trung bình hài hòa Precision và Recall

2∗Precision∗Recall
F 1=
Precision+ Recall

- Recall

Recall cũng là một metric quan trọng, nó đo lường tỷ lệ dự báo chính xác các
trường hợp positive trên toàn bộ các mẫu thuộc nhóm positive. Công thức của độ
Recall :

TP
Recall=
TP+ FN

Precision cao đồng nghĩa với việc độ chính xác của các điểm tìm được là cao.
Recall cao đồng nghĩa với việc True Positive Rate cao, tức tỷ lệ bỏ sót các điểm
thực sự positive là thấp.

- Precision (Độ tin cậy)

Precision là một trong những metrics có thể khắc phục trường hợp thước đo Accuracy
không phản ánh đúng hiệu quả của mô hình, công thức như sau:

23
TP
Precision=
TP+ FP

Độ tin cậy được tính bằng số trường hợp dự đoán đúng chia cho tổng số trường hợp dự
đoán đúng với số trường hợp dự đoán sai

Với một cách xác định một lớp là positive, Precision được định nghĩa là tỉ lệ số
điểm true positive trong số những điểm được phân loại là positive (TP + FP). Precision
cao đồng nghĩa với việc độ chính xác của các điểm tìm được là cao. [8]

Một mô hình phân lớp tốt là mô hình có cả Precision và Recall đều cao, tức càng gần
một càng tốt. Có hai cách đo chất lượng của bộ phân lớp dựa vào Precision và Recall:
Precision-Recall curve và F-score.

Hình 2.5 Minh họa về Precision và Recall

2.2 Python với học máy

2.2.1 Giới thiệu về ngôn ngữ lập trình Python

Python là một ngôn ngữ lập trình thông dịch (interpreted), hướng đối tượng
(object-oriented), và là một ngôn ngữ bậc cao (high-level) ngữ nghĩa động (dynamic

24
semantics). Python hỗ trợ các module và gói (packages), khuyến khích chương trình
module hóa và tái sử dụng mã. Trình thông dịch Python và thư viện chuẩn mở rộng có
sẵn dưới dạng mã nguồn hoặc dạng nhị phân miễn phí cho tất cả các nền tảng chính và
có thể được phân phối tự do [9]
Python là ngôn ngữ lập trình nguồn mở được phát triển bằng mô hình dựa trên
cộng đồng. Nó có thể chạy trên môi trường Windows và Linux. Ngoài ra, bạn có thể
chuyển nó sang các nền tảng khác vì nó hỗ trợ đa nền tảng.
Python được sử dụng rộng rãi cho Khoa học máy tính trong Học thuật và Ứng
dụng trong nhiều ngành công nghiệp. Python có một số lượng lớn các thư viện phân
tích được thử nghiệm tốt bao gồm:
 Numerical computing
 Data analysis
 Statistical analysis
 Visualization Machine learning

2.2.2 Python với học máy

Python có các thư viện mạnh mẽ đáp ứng nhu cầu khoa học dữ liệu và phân tích.
Chính điều này đã làm cho nó trở thành lựa chọn phổ biến trong các ứng dụng Big
Data.

 Pandas
Pandas là thư viện mã nguồn mở mạnh mẽ nhất của Python để thao tác dữ liệu.
Nó được gọi là Thư viện phân tích dữ liệu Python. Nó được phát triển trên gói
NumPy. DataFrames được coi là cấu trúc dữ liệu được sử dụng nhiều nhất trong
Python, giúp bạn xử lý và lưu trữ dữ liệu từ các bảng bằng cách thực hiện các
thao tác trên các hàng và cột. Pandas rất hữu ích trong việc hợp nhất, định hình
lại, tổng hợp, tách và chọn dữ liệu
 Numpy
Numpy là một thư viện Python mở rộng được sử dụng cho các tính toán khoa
học.
Numpy thúc đẩy việc bạn sử dụng các hàm phức tạp, đối tượng mảng N-chiều,
các công cụ để tích hợp mã C / C ++ và Fortran, các khái niệm toán học như đại

25
số tuyến tính, khả năng số ngẫu nhiên, v.v. Bạn có thể sử dụng nó như một
vùng chứa đa chiều để xử lý dữ liệu chung của mình. Nó cho phép bạn tải dữ
liệu sang Python
 Matplotlib
Đây là một thư viện vẽ đồ thị phổ biến của Python được các Nhà khoa học dữ
liệu sử dụng rộng rãi để thiết kế nhiều số liệu ở nhiều định dạng tùy thuộc vào
khả năng tương thích trên các nền tảng được tôn trọng của họ. Ví dụ: với
Matplotlib , bạn có thể tạo các biểu đồ phân tán, biểu đồ, biểu đồ thanh, v.v. của
riêng mình. Nó cung cấp một bản vẽ 2D chất lượng tốt và một bản đồ 3D cơ
bản với mức sử dụng hạn chế.
 Scikit-Learn
Scikit-Learn là một tập hợp các công cụ để thực hiện các tác vụ liên quan đến
khai thác và phân tích dữ liệu. Nền tảng của nó được xây dựng dựa trên SciPy,
NumPy và Matplotlib. Nó bao gồm các mô hình phân loại, phân tích hồi quy,
nhận dạng hình ảnh, các phương pháp giảm dữ liệu, lựa chọn và điều chỉnh mô
hình, và nhiều thứ khác. [10]
 …

26
CHƯƠNG 3 PHÂN TÍCH VÀ GIẢI QUYẾT BÀI TOÁN

3.1 Bối cảnh bài toán

Theo WHO, năm 2008 thế giới có 12,6 triệu người mắc ung thư, trong đó có 7,5 triệu
người tử vong. Năm 2015, có khoảng 90,5 triệu người bị ung thư. Mỗi năm có 14,1
triệu mới mắc, trong đó, tử vong 8,8 triệu 15,7 %). Ở Mỹ và các nước phát triển Tử
vong do ung thư chiếm khoảng 25% và hàng năm có khoảng 0,5% dân số được chẩn
đoán ung thư. [11]

Hiện nay, toàn cầu có 23 triệu người đang mắc ung thư. Mỗi năm có hơn 14 triệu
người mắc mới và 8,2 triệu người tử vong.

Trong các loại ung thư, ung thư phổi chiếm tỉ lệ cao nhất (12,4%), sau đó là ung thư
dạ dày, vú, đại trực tràng, gan, tiền liệt tuyến, cổ tử cung. Riêng Ung thư phổi: Nam
giới, tỉ lệ mắc cao nhất ở đông Âu (53,5/100.000) và ở Đông Nam Á (50,5/100.000)
Nữ giới, tỉ lệ mắc cao nhất ở Bắc Mỹ (33,8/100.000) và bắc Âu (23,7/100.000)

Việt nam cũng là một trong số nước có tỷ lệ mắc ung thư cao trên thế giới (thuộc
nhóm 2)

Việc tìm hiểu về tình hình ung thư, thực trạng chẩn đoán và điều trị, các nguyên nhân
gây ung thư để tìm ra các giải pháp hạn chế ung thư ở Việt nam.
Ung thư vú là loại ung thư thường gặp nhất và là nguyên nhân phổ biến thứ hai gây tử
vong do ung thư ở phụ nữ. Ung thư vú ít khi xảy ra ở nam giới.
Để hiểu bệnh ung thư vú, cần tìm hiểu cấu trúc giải phẫu của vú. Hầu hết các vú
bao gồm mô mỡ, và trong đó là dây chằng, mô liên kết, mạch bạch huyết và các hạch,
mạch máu. Trong một vú nữ có 12-20 phần bên trong nó được gọi là thùy, từng tạo
thành tiểu thùy nhỏ sản xuất sữa. Các thùy và tiểu thùy được nối với nhau bằng ống
dẫn, mang sữa tới núm vú.
Loại phổ biến nhất của ung thư vú là ung thư ống dẫn, được gọi là ung thư biểu
mô ống động mạch, chiếm hơn 80% của tất cả các bệnh ung thư vú. Ung thư biểu mô
tiểu thùy, chỉ chiếm hơn 10% các trường hợp. Phần còn lại của bệnh ung thư vú có đặc

27
điểm của cả ung thư biểu mô ống động mạch và ung thư biểu mô tiểu thùy, hoặc có
nguồn gốc không rõ.
Từ tình hình thực tiễn trên, em nhận thấy việc ứng dụng các thuật toán học máy vào
chẩn đoán ung thư đang ngày càng trở nên cần thiết hơn. Đặt biệt là chẩn đoán cho
bệnh ung thư vú – một trong những căn bệnh ung thư phổ biến nhất hiện nay. Việc dự
đoán trước tình trạng những khối u là ác tính hay lành tính đóng vai trò rất quan trọng
trong việc điều trị sớm bệnh ung thư vú. Xuất phát từ những vấn đề thực tiễn trên, em
đã bắt tay vào tìm hiểu và giải quyết các vấn đề của bài toán.

3.2 Thu thập và xử lý dữ liệu

3.2.1 Tổng quan về dữ liệu

Dữ liệu được sử dụng trong đồ án này được thu thập từ kho lưu trữ học máy của
Đại học California- Irvine (UCI). Đó là một nguồn mở. Bộ dữ liệu này là bộ dữ liệu
chẩn đoán ung thư vú Wisconsin (WDBC) được tặng vào ngày 1 tháng 11 năm 1995
và nó bao gồm 569 trường hợp trong đó 357 trường hợp là lành tính và 212 trường hợp
là trường hợp ác tính. Nó có 32 thuộc tính bao gồm hai nhãn thuộc tính lớp (chẩn
đoán: B = lành tính, M = ác tính), số ID và 30 thuộc tính định giá lại. Những thuộc
tính này được tính toán từ một hình ảnh số hóa của một thủ tục khát vọng kim tốt
(FNA) của một khối lượng vú và được sử dụng để mô tả các đặc điểm của hạt nhân tế
bào. Chi tiết các trường dữ liệu của bộ dữ liệu này được miêu tả chi tiết trong bảng
dưới đây.

Bảng 3.2 Bảng chi tiết dữ liệu

Tên trường Mô tả

id Số id

diagnosis Chẩn đoán (M = ác tính, B = lành tính)

radius Bán kính (giá trị trung bình của khoảng cách từ tâm đến
các điểm trên chu vi tế bào)

28
texture Kết cấu (độ lệch tiêu chuẩn của các giá trị thang xám tế
bào)

perimeter Chu vi tế bào

area Diện tích tế bào

smoothness Độ nhẵn (sự thay đổi cục bộ trong độ dài bán kính tế bào)

compactness Độ chặt (chu vi ^ 2 / area - 1,0)

concavity Độ lõm (mức độ nghiêm trọng của các phần lõm của
đường viền tế bào)

concave points Các điểm lõm (số lượng các phần lõm của đường viền tế
bào)

symmetry Đối xứng

fractal dimension Kích thước đường biên ("xấp xỉ đường bờ biển" - 1)

radius_se Bán kính lỗi tiêu chuẩn cho độ lệch chuẩn tham số tham
gia tế bào

texture_se Kết cấu lỗi tiêu chuẩn cho độ lệch chuẩn tham số tham
gia tế bào

perimeter_se Chu vi lỗi tiêu chuẩn cho độ lệch chuẩn tham số tham gia
tế bào

29
area_se Diện tích lỗi tiêu chuẩn cho độ lệch chuẩn tham số tham
gia tế bào

smoothness_se Độ nhẵn lỗi tiêu chuẩn cho độ lệch chuẩn tham số tham
gia tế bào

compactness_se Độ chặt lỗi tiêu chuẩn cho độ lệch chuẩn tham số tham
gia tế bào

concavity_se Độ lõm lỗi tiêu chuẩn cho độ lệch chuẩn tham số tham gia
tế bào

concave points_se Các điểm lõm lỗi tiêu chuẩn cho độ lệch chuẩn tham số
tham gia tế bào

symmetry_se Đối xứng lỗi tiêu chuẩn cho độ lệch chuẩn tham số tham
gia tế bào

fractal_dimension_se Kích thước đường biên lỗi tiêu chuẩn cho độ lệch chuẩn
tham số tham gia tế bào

radius_worst Bán kính xấu nhất

texture_worst Kết cấu xấu nhất

perimeter_worst Chu vi xấu nhất

area_worst Diện tích xấu nhất

smoothness_worst Độ nhẵn xấu nhất

30
compactness_worst Độ chặt xấu nhất

concavity_worst Độ lõm xấu nhất

concave points_worst Các điểm lõm xấu nhất

symmetry_worst Đối xứng xấu nhất

fractal_dimension_worst Kích thước đường biên xấu nhất

Với hai lớp dự đoán của bài toán là : M = ác tính, B = lành tính có độ phân bổ là 357
bản ghi cho vào lớp B và 212 cho vào lớp M. Chi tiết được miêu tả trong hình dưới
đây.

Hình 3.6 Phân bổ của dữ liệu vào 2 lớp

31
3.2.1 Tiền xử lý dữ liệu

Tiền xử lý dữ liệu là một bước không thể thiếu trong Machine Learning
vì như đã biết, dữ liệu là một phần rất quan trọng, ảnh hưởng trực tiếp tới việc
huấn luyện mô hình. Do vậy, tiền xử lý dữ liệu trước khi đưa nó vào mô hình là
rất quan trọng, giúp loại bỏ hoặc bù đắp những dữ liệu còn thiếu. Cùng với đó
là xử lý các dữ liệu sai ở chưa đúng để mô hình huấn luyện có kết quả tốt nhất.
[12]

Trong mô tả dữ liệu ở phần trên, tập dữ liệu sử dụng trong đề tài có 32


trường dữ liệu. Trong đó có 31 trường dữ liệu và một trường là nhãn của dữ
liệu. Bước đầu tiên trong xử lý dữ liệu là tách nhãn ra khỏi các trường dữ liệu
khác. Trong bộ dữ liệu này thì trường nhãn là cột diagnosis.

Ngoài ra, trường dữ liệu ID không mang giá trị thông tin để phục vụ quá
trình huấn luyện vì vậy trường id sẽ bị loại bỏ. Trong các trường có dữ liệu
thiếu hay không. Trong quá trình kiểm tra em nhận thấy dùng dữ liệu không có
trường dữ liệu nào thiếu. Vì vậy bước này sẽ bỏ qua.

Tương tự như việc tinh chỉnh dữ liệu, việc chuẩn hóa dữ liệu cũng là một bước
vô cùng quan trọng trong việc giải quyết một vấn đề học máy. Lý do không chỉ bởi vì
các thông tin thu được từ dữ liệu ra sao mà còn vì các phương pháp phân tích dữ liệu
khác nhau tập trung vào các khía cạnh khác nhau của dữ liệu. Ví dụ, một phương pháp
phân cụm tập trung vào việc phân tích sự tương tự của các điểm dữ liệu, trong khi
phương pháp phân tích các thành phần chính PCA lại tập trung vào việc chỉ ra độ rộng
của các thành phần chính. Nếu ta chuẩn hóa và thay đổi các thuộc tính của dữ liệu thì
có thể nó làm tăng tính hiệu quả của phương pháp phân cụm nhưng lại che mờ đi kết
quả của phương pháp phân tích PCA.

Khi đối mặt với một vấn đề mà bạn muốn giải quyết nó bằng Học Máy, bạn cần
tìm ra những đặc trưng trong dữ liệu của bạn là gì, chúng gồm những loại nào và làm
sao để tìm ra những đặc trưng hữu ích cho quá trình huấn luyện. Khi thực hiện những
công việc này nghĩa là bạn đang làm bước thu thập dữ liệu trong quá trình phân tích dữ
liệu.

32
Tiếp theo, bạn đã biết cách để thực hiện các phép toán cơ bản để làm sạch dữ
liệu của bạn, ví dụ như dữ liệu nan (not a number), xóa đi dữ liệu dư thừa và điền vào
dữ liệu bị khuyết. Các đầu việc này nằm trong bước tinh chỉnh dữ liệu của quá trình
phân tích dữ liệu.

Cuối cùng, bạn đã biết cách mã hóa các đặc trưng dữ liệu một cách đúng đắn
trong một khía cạnh phù hợp với học máy. Đôi khi có thể các bạn sẽ muốn tiền xử lý
dữ liệu trong suốt quá trình thu thập, điều này thực tế rơi vào bước biến đổi dữ liệu
(transforming data). Nhưng nó không thành vấn đề, vì không có một luồng xử lý cứng
nhắc nào cho việc chuẩn bị dữ liệu trước khi đưa vào huấn luyện.

3.2.2 Chia dữ liệu

Trong machine learning cũng vậy, chúng ta cần kiểm thử để dự đoán khả năng hoạt
động hiệu quả của mô hình trên thực tế. Có rất nhiều cách để kiểm thử và đánh giá
hiệu năng của mô hình.

Một cách hợp lý hơn đó là chúng ta sử dụng một tập dữ liệu kiểm thử (testing set) độc
lập đối với tập dữ liệu huấn luyện (training set) để đánh giá và ước lượng hiệu quả của
mô hình. Thông thường training set và testing set được tách ra ngay từ dữ liệu quan sát
được cung cấp (chẳng hạn lấy 80% dữ liệu quan sát được cung cấp để huấn luyện và
20% dữ liệu quan sát còn lại không liên quan đến 80% trước để đánh giá) [13]

 Training Set (Tập huấn luyện)

Tập huấn luyện (training set) là tập dữ liệu được sử dụng để huấn luyện mô hình. Các
thuật toán học máy sẽ học các mô hình từ tập huấn luyện này. Việc học sẽ khác nhau
tùy thuộc vào thuật toán và mô hình sử dụng.

Các thuật toán nói chung sẽ tìm cách tối ưu sai số dự đoán trên tập huấn luyện này đến
mức đủ tốt. Trong trường hợp overfitting sai số dự đoán của mô hình trên tập huấn
luyện có thể rất thấp, thậm chí = 0%.

 Testing Set (Tập kiểm thử)

33
Mục tiêu của machine learning là tạo ra những mô hình có khả năng tổng quát hóa để
dự đoán tốt trên cả dữ liệu chưa thấy bao giờ (nằm ngoài tập huấn luyện), do đó, để
biết một thuật toán hay mô hình có tốt hay không thì sau khi được huấn luyện, mô hình
cần được đánh giá hiệu quả thông qua bộ dữ liệu kiểm thử (testing set). Bộ dữ liệu này
được sử dụng để tính độ chính xác hoặc sai số của mô hình dự đoán đã được huấn
luyện. Chúng ta biết nhãn thực của mọi điểm trong tập hợp dữ liệu kiểm thử này,
nhưng chúng ta sẽ tạm thời giả vờ như không biết và đưa các giá trị đầu vào của tập
vào mô hình dự đoán để nhận kết quả dự đoán đầu ra. Sau đó chúng ta có thể nhìn vào
các nhãn thực và so sánh nó với kết quả dự đoán của các đầu vào tương ứng này và
xem liệu mô hình có dự đoán đúng hay không. Việc tính tổng trung bình của toàn bộ
các lỗi này chúng ta có thể tính toán được lỗi dự đoán trên tập kiểm thử.

 Tập dữ liệu kiểm chứng (Vadidation Set)

Với bài toán này của em, sau khi thử nghiệm các tỷ lệ chia dữ liệu khác nhau và mang
lại các kết quả khác nhau, em đã chia dữ liệu thành 2 tập với tỷ lệ tập huấn luyện là
70% và tập thử nghiệm là 30%.

3.2.3 Tìm tham số tối ưu

Hình 3.1 TÌm tham số tốt nhất cho học máy

34
Với tập huấn luyện mà chúng ta đã có ở bước trước, chúng ta sẽ trích một phần đế tìm
ra tham số tối ưu cho hai thuật toán SVM và Naïve Bayes. Ở phần nay, em sử dụng
một phương pháp đánh giá hiệu năng Repeated Stratified KFold với 30% tập huấn
luyện. Sau đó, với mỗi thuật toán, chúng ta sẽ đánh giá hiệu năng với tưng tham số
 Với SVM tìm tham số tối ưu cho 2 tham số gamma và C.
- C: Tham số điều chỉnh (Regularization parameter) em sẽ thử nghiệm với lần
lượt với các giá trị là 0.1, 1.0, 10, 100.
- Gamma: Hệ số nhân cho ‘rbf’, ‘poly’ và ‘sigmoid’. Với tam số này, em sẽ thử
nghiệm với lần lượt với các giá trị là 0.1, 1.0, 10, 100.
Kết quả cho thấy, với tham số C, gamma với giá trị là 1.0 và 0.1 cho kết quả tốt
nhất.
 Với Naïve Bayes em sẽ tối ưu tham số var-smothing. Trong đồ án này, em đã
thử nghiệm với các tham số là: 1.e+00, 1.e-01, 1.e-02, 1.e-03, 1.e-04, 1.e-05,
1.e-06, 1.e-07, 1.e-08, 1.e-09. Và kết quả em chọn được giá trị băng 0.1 cho kết
quả tốt nhất.
3.2.4 Huấn luyện

Sau khi dữ liệu đã được tiền xử lý dữ liệu thì ta bắt đầu quy trình huấn luyện với 2
thuật toán Naïve Bayes và SVM.

Quá trình huấn luyện được chia thành 3 bước chính:

 Xử lý dữ liệu

Bước đầu tiên trong phần xử lý dữ liệu, đó là đọc dữ liệu từ nguồn dữ liệu,
nguồn dữ liệu ở đây là một tệp có định dạng csv được lưu trong bộ nhớ máy
tính. Bộ dữ liệu này là bộ dữ liệu chẩn đoán ung thư vú Wisconsin (WDBC)
được tặng vào ngày 1 tháng 11 năm 1995 và nó bao gồm 569 trường hợp trong
đó 357 trường hợp là lành tính và 212 trường hợp là trường hợp ác tính. Sau đó,
với dữ liệu này được chia thành hai tập là tập huấn luyện và tập kiểm thử. Tập
huấn luyện sẽ được sử dụng trong bước huấn luyện mô hình, còn tập kiểm thử
sẽ được sử dụng trong bước kiểm thử.

 Huấn luyện mô hình

Sau khi xử lý dữ liệu xong, thì chúng ta bắt đầu quá trình huấn luyện. Với tập
dữ liệu huấn luyện, sẽ được đưa vào để huấn luyện. Dữ liệu huấn luyện này lần

35
lượt sẽ là các dữ liệu được xây dựng bằng thuật toán Naïve Bayes và thuật toán
SVM (Support Vector Machine)

 Kiểm thử mô hình

Ở phần này, chúng ta sẽ làm việc với tập dữ liệu kiểm thử. Tập dữ liệu kiểm thử
sẽ được đưa vào một mô hình đã được huấn luyện từ bước trước đó. Các trọng
số hay thông tin của các mô hình này sẽ được tải từ thư mục mà chúng ta đã lưu
trữ ở bước huấn luyện mô hình. Sau khi đưa qua các mô hình đó, mỗi mô hình
sẽ cho chúng ta những kết quả đầu ra khác. Và với mỗi kết quả đầu ra, chúng ta
sẽ tiến hành tính toán và đánh giá hiệu quả của từng mô hình đã huấn luyện

Hình 3.7 Mô hình huấn luyện tổng quát

3.2.4.1 Huấn luyện với mô hình Naïve Bayes

Trong phần trên, chúng ta đã tìm hiểu về cách hoạt động huấn luyện tổng quan. Như
đã nói ở trên, thành phần mô hình sẽ lần lượt là các thuật toán Naïve Bayes và thuật
toán SVM (Support Vector Machine). Trong phần này, chúng ta sẽ tìm hiểu về sử
dụng thuật toán Naïve Bayes.

36
Và chúng ta sẽ huấn luyện với tham số var_smoothing = 0.1 đã tìm ở bước trước.

Cách hoạt động của huấn luyện khi sử dụng thuật toán Naïve Bayes cũng hoàn toàn
tương tự với cách hoạt động của huấn luyện tổng quát. Với dữ liệu huấn luyện sẽ được
đưa vào thuật toán Naïve Bayes, sau đó kết quả của mô hình này sẽ được đánh giá
thông qua các thuật toán đánh giá với tập huấn luyện. Chi tiết cách hoạt động của huấn
luyện sử dụng thuật toán Naïve Bayes được mô tả trong hình đây.

Hình 3.8 Mô hình huấn luyện với thuật toán Naive Bayes

3.2.4.2 Huấn luyện với mô hình SVM (Support Vector Machine)

Trong phần bên trên, chúng ta đã tìm hiểu về cách hoạt động của huấn luyện sử dụng
thuật toán Naïve Bayes. Cũng tương tự như vậy, ở phần này chúng ta sẽ tìm hiểu về
cách hoạt động của huấn luyện sử dụng thuật toán SVM (Support Vector Machine).
Với tham số C=1.0 và gamma = 0.1 đã tìm ở bước trước. Với dữ liệu huấn luyện sẽ
được đưa vào thuật toán SVM, sau đó kết quả của mô hình này sẽ được đánh giá thông
qua các thuật toán đánh giá với tập huấn luyện. Chi tiết cách hoạt động của huấn luyện

37
sử dụng thuật toán SVM (Support Vector Machine) và sẽ được mô tả chi tiết trong
hình sau.

Hình 3.9 Mô hình huấn luyện với thuật toán SVM

38
CHƯƠNG 4 Kết quả thực nghiệm

Như đã nói ở phần trước bộ dữ liệu được chia thành hai tập đó là tập huấn luyện và tập
thử nghiệm. Với 569 bản ghi dữ liệu được chia thành 398 bản ghi để huấn luyện và
171 bạn ghi để thực nghiệm. Chi tiết được mô tả trong hình 13

Hình 4.10 Chia dữ liệu

Sau khi huấn luyện thì các mô hình đã được huấn luyện sẽ được thử nghiệm với tập
huấn luyện. Kết quả huấn luyện được mô tả trong ma trận nhầm lẫn dưới đây:

+) Ma trận nhầm lẫn với thuật toán Naïve Bayes

[ 1019 547 ]
+) Ma trận nhầm lẫn với thuật toán SVM

[ 1042 614 ]

39
Nhìn vào ma trận nhầm lẫn với thuật toán Naïve Bayes thì có 99 bản ghi dự đoán
dương tính đúng. Trong khi có 57 ghi dự đoán âm tính đúng. Còn lại có 9 bản ghi dự
đoán dương tính sai và có 6 bản ghi dự đoán âm tính sai.

Còn trong ma trận nhầm lẫn với thuật toán SVM thì có 107 bản ghi dự đoán dương
tính đúng và 60 bản ghi dự đoán âm tính đúng. Còn lại có một bản ghi dự đoán dương
tính sai và ba bản ghi dự đoán tâm tính sai.

Như vậy nhờ hai ma trận nhầm lẫn này chúng ta có thể kết luận với thuật toán Naive
Bayes có 156 bản ghi dự đoán được cho vào đúng lớp mong muốn và 15 bản ghi dự
đoán vào lớp sai với mong muốn. Còn với thuật toán SVM thì cho 167 bản ghi dự
đoán đúng vào lớp mong muốn và 4 bản ghi dự đoán vào lớp sai mong muốn. Và
chúng ta dễ thấy thuật toán SVM cho kết quả dự đoán tốt hơn thuật toán Naive Bayes.

Tương tự như vậy dưới đây sẽ đánh giá hai thuật toán này với Precision và Recall cho
từng lớp dự đoán. Đầu tiên là kết quả chẩn đoán u lành tính B dựa theo việc đánh giá
bằng Precision và Recall dựa trên hai thuật toán Naïve Bayes và SVM 

+) Thuật toán Naïve Bayes:

TP 99
Recall= = =0.94
TP+ FN 99+6

TP 99
Precision= = =0.92
TP+ FP 99+ 9

+) Thuật toán SVM :

TP 107
Recall= = =0.99
TP+ FN 107 +1

TP 107
Precision= = =0.97
TP+ FP 107+3

40
Bảng 4.3 Bảng kết quả chẩn đoán u lành tính B dựa theo việc đánh giá bằng Precision và
Recall

Thuật toán Precision Recall

Naïve Bayes 0.94 0.92

SVM 0.97 0.99

Kết quả cho thấy với thuật toán SVM cho kết quả Precision và Recall với lớp chẩn
đoán u lành tính B cao hơn thuật toán Naïve Bayes (0.97 so với 0.94 và 0.99 so với
0.92)

Bảng dưới là kết quả chẩn đoán u ác tính M dựa theo việc đánh giá bằng Precision và
Recall dựa trên hai thuật toán Naïve Bayes và SVM 

Bảng 4.4 Bảng kết quả chẩn đoán u ác tính M dựa theo việc đánh giá bằng Precision và
Recall

Thuật toán Precision Recall

Naïve Bayes 0.86 0.90

SVM 0.98 0.95

Kết quả cho thấy với thuật toán SVM cho kết quả Precision và Recall với lớp chẩn
đoán ác tính B cao hơn thuật toán Naïve Bayes (0.98 so với 0.86 và 0.95 so với 0.90).

+) Độ chính xác:

- Thuật toán Naïve Bayes:

41
TP+TN 99+ 57
Độ chính xác= = =0.912
TP+ FP+TN + FN 99+6+ 57+6

-Thuật toán SVM :

TP+TN 107+60
Độ chính xác= = =0.977
TP+ FP+TN + FN 107+1+60+3

Kết quả đánh giá dựa trên độ chính xác với hai mô hình Naïve Bayes và SVM cho độ
chính xác lần lượt là 0. 912 và 0.977. Kết quả được ghi chi tiết ở bảng dưới đây.

Bảng 4.5 Bảng kết quả đánh giá dựa theo độ chính xác

Thuật toán Accuracy

Naïve Bayes 0.906

SVM 0.977

Từ bảng 4.3 cho thấy kết quả huấn luyện với thuật toán SVM cho độ chính xác cao
hơn khi huấn luyện với thuật toán Naive Bayes (0.977 so với 0.912).

Sau khi lần lượt đánh giá với Precision và Recall và độ chính xác thì tất cả đều cho ta
thấy thuật toán SVM cho kết quả thực nghiệm cao hơn thuật toán Naïve Bayes. Do đó
kết quả mô hình huấn luyện của thuật toán SVM sẽ được chọn là mô hình để dự đoán.

42
KẾT LUẬN

Đề tài là đề tài trong lĩnh vực tin sinh học. Một lĩnh vực có vai trò lớn nhằm
phục vụ cho lĩnh vực y khoa – là lĩnh vực cấp thiết trong cuộc sống. Bài toán đưa ra là
sử dụng hai thuật toán là thuật toán Naïve Bayes và thuật toán SVM (Support Vector
Machine) nhằm phân loại ung thư vú. Đây là một bài toán có ứng dụng cao trong cuộc
sống. Kết quả huấn luyện thực nghiệm với Support Vector Machine cho độ chính xác
lên tới 0.977. Do đó mô hình được đề xuất trong đề tài có tính khả thi cao và có thể
ứng dụng cho các bài toán thực tế. Ngoài ra, khi thực hiện đề tài này, em đã học được
cách ứng dụng triển khai các thuật toán Machine Learning vào các bài toán thực tế.
Đồng thời có hiểu biết sâu sắc hơn về các thuật toán nghiên cứu là thuật toán Naïve
Bayes và thuật toán SVM (Support Vector Machine).

Tuy nhiên, đề tài cũng còn tồn tại nhiều những hạn chế. Dữ liệu được sử dụng
trong đề tài này lấy từ bộ dữ liệu từ Wisconsin (WDBC) để huấn luyện. Bộ dữ liệu này
có trường dữ liệu lớn, và yêu cầu nếu đưa vào thực tế khó đáp ứng đầy đủ. Ngoài ra,
bài toán chưa được ứng dụng cho các dự liệu thực tế tại các nhóm bệnh nhân khác
nhau.
Mô hình đã được huấn luyện trong đề tài này chưa được ứng dụng để giải quyết
các bài toán này trong các bệnh viện và cơ sở y tế.
Trong tương lai, em hi vọng đề tài này và các đề tài trong lĩnh vực tin sinh học
khác sẽ được đưa vào thực tế và để giải quyết các bài toán trong các cơ sở y tế và bệnh
viện. Để bài toán tốt hơn và có tính ứng dụng hơn cũng cần bổ sung thêm các dữ liệu.
Cũng cần bổ sung thêm các kiến thức về y học để có thể hiểu biết về các thuộc tính
liên quan đến vấn đề ung thư vú từ đó thêm và giảm bớt những trường dữ liệu để phục
vụ huấn luyện nhằm có kết quả huấn luyện tốt hơn và có tính thực tiễn hơn. Ngoài ra
cũng cần bổ sung thêm các kiến thức về các thuật toán học máy khác để ứng dụng cho
bài toán này.

43
44
TÀI LIỆU THAM KHẢO

[1] "Wikipedia", [Online], Available: https://vi.wikipedia.org/wiki/H%E1%BB


%8Dc_m%C3%A1y.
[2] "m2tech", [Online], Available : https://m2tech.buyit.vn/hoc-may-machine-
learning-la-gi-ung-dung-cua-hoc-may/.
[3] N.T.HOP, [Online], Available : https://viblo.asia/p/thuat-toan-phan-lop-naive-
bayes-924lJWPm5PM.
[4] "Wordpress", [Online], Available :
https://neralnetwork.wordpress.com/2018/05/11/thuat-toan-support-vector-
machine-svm/.
[5] "Viblo", [Online], Available : https://viblo.asia/p/support-vector-machine-trong-
hoc-may-mot-cai-nhin-don-gian-hon-XQZkxoQmewA.
[6] "vimentor.com", [Online], Available : https://www.vimentor.com/vi/lesson/tien-
xu-ly-du-lieu-trong-linh-vuc-hoc-may-phan-3.
[7] "Viblo", [Online], Available : https://viblo.asia/p/confusion-matrix-ma-tran-
nham-lan-ma-tran-loi-V3m5WQB7ZO7.
[8] "hoctructuyen123", [Online], Available : http://hoctructuyen123.net/cac-phuong-
phap-danh-gia-mot-mo-hinh-phan-lop-du-lieu.
[9] "Openplanning.net", [Online], Available : https://openplanning.net/11385/gioi-
thieu-ve-python.
[10] tecktrending.com, [Online], Available : https://tecktrending.com/thu-vien-python-
cho-khoa-hoc-du-lieu/.
[11] Benhvien103, [Online], Available : http://www.benhvien103.vn/thuc-trang-va-
cap-nhat-ung-thu-tai-viet-nam/.
[12] "ichi.pro", [Online], Available : https://ichi.pro/vi/tien-xu-ly-du-lieu-voi-python-
62761617448240.
[13] "tek4.vn", [Online], Available : https://tek4.vn/khoa-hoc/machine-learning-co-
ban/training-set-va-testing-set.
[14] D. Graffox, "IEEE Citation Reference," Sep. 2009. [Online]. Available:
http://www.ieee.org/documents/ieeecitationref.pdf.
[15] Apr. 2011. [Online]. Available:
http://libinfo.uark.edu/reference/citingyoursources.asp.
[16] [Online]. Available: http://www.ijssst.info/info/IEEE-Citation-StyleGuide.pdf.
[Accessed 2 5 2011].

45
[17] J. Barzun and H. Graff, The Modern Researcher, 5th ed. ed., New York: Harcourt
Brace Jovanovich Inc., 1992.
[18] N. Wells, 2007. [Online]. Available: http://www.nissawells.com/samples/w-
manual.pdf.
[19] P. J. Denning, "Editorial: Plagiarism in the Web," Communications of the ACM,
vol. 98, no. 12, p. 29, Dec. 1995.
[20] B. Martin, "Plagiarism: a misplaced emphasis," Journal of Information Ethics,
vol. 3, no. 2, pp. 36-47, 1994.
[21] B. Belkhouche et al, "Plagiarism detection in software designs," in Proc. of the
42nd Ann. Southeast Regional Conf., 2004.
[22] T. Doe, Dec. 2011. [Online]. Available:
http://grad.uark.edu/dean/thesisguide.php.
[23] Cornell University Library PSEC Documentation Committee, Feb. 2010.
[Online]. Available: http://www.library.cornell.edu/resrch/citmanage/apa.
[24] "Wordpress", [Online], Available : .

46
PHỤ LỤC

47

You might also like