Tải bản đầy đủ (.docx) (44 trang)

Đồ Án 1C Thuật toán KNN Phân loại bệnh tim Python

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.21 MB, 44 trang )

BỘ CÔNG THƯƠNG
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THỰC PHẨM TP.HCM
KHOA CƠNG NGHỆ THƠNG TIN



ĐỒ ÁN MƠN HỌC
ĐỀ TÀI
TÌM HIỂU KỸ THUẬT HỌC CĨ GIÁM SÁT VỚI THUẬT
TỐN KNN VÀ ỨNG DỤNG VÀO PHÂN LOẠI BỆNH TIM

Giảng viên hướng dẫn: Trần Đình Tồn
Sinh viên thực hiện :
1. 2033172002 – Nguyễn Hữu Thắng
2. 2033181006 – Phạm Bá Đại

TP. Hồ Chí Minh – 2021


LỜI CẢM ƠN
Trước khi trình bày nội dung của đề tài, chúng em xin dành đôi lời cảm ơn chân thành
đến giáo viên hướng dẫn – thầy Trần Đình Tồn, người đã tận tình giúp đỡ, đóng góp những
ý kiến vơ cùng bổ ích và tạo mọi điều kiện tốt nhất cho chúng em trong suốt quá trình thực
hiện đồ án môn học này.
Chúng em xin gửi lời cám ơn chân thành đến quý thầy cô trong Khoa Công Nghệ Thông
Tin, Trường Đại học Công Nghiệp Thực Phẩm thành phố Hồ Chí Minh đã giảng dạy cho
chúng em những kiến thức quý báu làm tiền đề cho chúng em thực hiện tốt đề tài này.
Chúng con cũng xin gửi lời cám ơn sâu sắc đến những bậc sinh thành đã ln chăm sóc,
động viên trong suốt q trình học tập và nghiên cứu để chúng con có được kết quả như ngày
hơm nay.
TP. Hồ Chí Minh, ngày 05 tháng 05 năm 2021


Nhóm sinh viên thực hiện
Nguyễn Hữu Thắng – Phạm Bá Đại


MỤC LỤC
CHƯƠNG 1: TỔNG QUAN..............................................................................................2
1.1

ĐẶT VẤN ĐỀ......................................................................................................2

1.2

MỤC TIÊU VÀ PHẠM VI ĐỀ TÀI.....................................................................2

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

MACHINE LEARNING......................................................................................3

2.1.1.

Giới thiệu.......................................................................................................3

2.1.2.

Các khái niệm cơ bản.....................................................................................3

2.2:

GIỚI THIỆU SUPERVISED LEARNING...........................................................4


2.2.1

Đặt vấn đề......................................................................................................4

2.2.2

Mô tả thuật toán.............................................................................................5

2.2.3

Cách giải bài toán học giám sát......................................................................7

2.2.5

Cách hoạt động của thuật tốn học có giám sát............................................10

2.3

PHÂN LỚP TRONG MÁY HỌC.......................................................................12

2.3.1

Giới thiệu.....................................................................................................12

2.3.2

Q trình phân lớp dữ liệu...........................................................................13

CHƯƠNG 3: THUẬT TỐN K- NEAREST NEIGHBOR.............................................15

3.1

THUẬT TỐN K-NN........................................................................................15

3.1.1

Định nghĩa....................................................................................................15

3.1.2

Tính khoảng cách Euclide............................................................................16

3.1.3

Các bước thực hiện......................................................................................17

3.2

CHUẨN BỊ DỮ LIỆU........................................................................................17

3.2.1

Thu thập bộ dữ liệu về bệnh tim...................................................................17

3.2.2

Chuẩn hóa dữ liệu........................................................................................21

3.2.3


Trực quan hóa dữ liệu..................................................................................22

3.2.4

Chia dữ liệu..................................................................................................22

3.3

VÍ DỤ MINH HỌA............................................................................................24
1


CHƯƠNG 4: CÀI ĐẶT CHƯƠNG TRÌNH....................................................................28
4.1
4.1.1
4.2

MƠ TẢ BÀI TỐN............................................................................................28
Thơng tin về bệnh tim..................................................................................28
BỘ DỮ LIỆU......................................................................................................29

4.2.1

Bộ dữ liệu bệnh tim......................................................................................29

4.2.2

Thực thi dữ liệu trên code............................................................................30

4.2.3


Trực quan hóa bộ dữ liệu bệnh tim...............................................................32

4.2.4

Chia dữ liệu thành tập huấn luyện và tập dữ liệu test...................................37

4.3

CHƯƠNG TRÌNH..............................................................................................38

CHƯƠNG 5: KẾT LUẬN................................................................................................42
5.1

Kết quả đạt được..........................................................................................42

5.2

Hạn chế của đề tài........................................................................................42

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

2


CHƯƠNG 1: TỔNG QUAN
1.1 ĐẶT VẤN ĐỀ
Ngày nay, một nền kinh tế hội nhập và phát triển mạnh mẽ, đi cùng với nhu cầu của
đời sống xã hội là sự phát triển không ngừng của công nghệ thông tin đã mang lại cho thế
giới bao điểu kỳ diệu. Chúng ta, những con người đang sống trong xã hội hiện đại khơng

thể phủ nhận vai trị của nó và đặc biệt là lượng thơng tin cũng từ đó tăng lên với tốc độ
bùng nổ. Lượng dữ liệu khổng lồ ấy là nguồn tài nguyên vô giá nếu như chúng ta biết
cách phát hiện và khai thác những thơng tin hữu ích có trong đó. Như vậy vấn đề đặt ra
với dữ liệu của chúng ta là việc lưu trữ và khai thác chúng. Các phương pháp khai thác
truyền thống nay đã dần dần thay thế bởi các kỹ thuật mới là khai phá dữ liệu và khám
phá tri thức. Công nghệ khai phá dữ liệu ra đời cho phép chúng ta khai thác được những
thơng tin hữu dụng bằng việc trích xuất những thơng tin có mối liên hệ và liên quan nhất
định từ một kho dữ liệu lớn để từ đó giải quyết các bài tốn tìm kiếm, phân loại, dự báo...
Trí tuệ nhân tạo ln là xu hướng cơng nghệ tương lai mà các hãng cơng nghệ trên
tồn thế giới đua nhau sáng tạo. Nó là nền tảng cốt lõi của cuộc cách mạng 4.0.
Machine Learning là một lĩnh vực của trí tuệ nhân tạo được sinh ra từ khả năng nhận
diện và từ lý thuyết các máy tính có thể học mà khơng cần phải lập trình để xử lý các
nhiệm vụ cụ thể nào đó. Xu hướng phát triển công nghệ thông tin ngày càng tăng, cùng
với đó là lượng dữ liệu sinh ra ngày càng lớn.Vì vậy nhu cầu xử lý dữ liệu cũng lớn hơn,
Machine Learning đang giải quyết vấn đề này. Một trong những thuật tốn thường dùng
trong Machine Learning đó là thuật tốn K-nearest neighbor.[1]
1.2 MỤC TIÊU VÀ PHẠM VI ĐỀ TÀI
1.2.1. Mục tiêu đề tài
Nghiên cứu, tìm hiểu về học có giám sát, phân lớp trong máy học, tìm hiểu thuật tốn
KNN (K-nearest neighbor). Ứng dụng kết quả tìm hiểu vào phân lớp dữ liệu bệnh tim
thành 2 lớp (có bệnh và khơng có bệnh). Đánh giá hiệu quả của thuật tốn.
1.2.2. Phạm vi của đề tài
Đồ án được thược hiện trong phạm vi nhỏ, dùng để ứng dụng thuật toán KNN vào
phân lớp bệnh tim. Với ngôn ngữ hỗ trợ là Python.

3


CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
2.1: MACHINE LEARNING

2.1.1. Giới thiệu
Ngày nay, AI - Artificial Intelligence (Trí Tuệ Nhân Tạo), và cụ thể hơn là Machine
Learning (Học Máy hoặc Máy Học) nổi lên như một bằng chứng của cuộc cách mạng
công nghiệp lần thứ tư (1 - động cơ hơi nước, 2 - năng lượng điện, 3 - công nghệ thông
tin). Trí Tuệ Nhân Tạo đang len lỏi vào mọi lĩnh vực trong đời sống mà có thể chúng ta
khơng nhận ra. Xe tự hành của Google và Tesla, hệ thống tự tag khuôn mặt trong ảnh của
Facebook, trợ lý ảo Siri của Apple, hệ thống gợi ý sản phẩm của Amazon, hệ thống gợi ý
phim của Netflix, máy chơi cờ vây AlphaGo của Google DeepMind, …, chỉ là một vài
trong vô vàn những ứng dụng của AI/Machine Learning.
Machine Learning là một lĩnh vực của trí tuệ nhân tạo (AI) 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
các vấn đề cụ thể.
Học máy có liên quan lớn đến thống kê, vì cả hai lĩnh vực đều nghiên cứu việc phân
tích dữ liệu, nhưng khác với thống kê, học máy tập trung vào sự phức tạp của các giải
thuật trong việc thực thi tính tốn. Nhiều bài toán suy luận được xếp vào loại bài tốn
NP-khó, vì thế một phần của học máy là nghiên cứu sự phát triển các giải thuật suy luận
xấp xỉ mà có thể xử lí được.
Machine Learning hiện nay được áp dụng rộng rãi bao gồm máy truy tìm dữ liệu, máy
phân tích thị trường chứng khốn, nhận dạng tiếng nói, chữ viết và hình ảnh...
2.1.1. Các khái niệm cơ bản
 Observation ( Đầu vào )
Ký hiệu là x, input trong các bài tốn. Observation thường có dạng một vector
x=(x1,x2,...,xn), gọi là feature vector ( đặc trưng ). Mỗi xi gọi là một feature. Ví dụ bạn
muốn đốn xem hơm nay có mưa khơng dựa vào observation gồm các feature (nhiệt độ,
độ ẩm, tốc độ gió).
 Label ( Nhãn )
Ký hiệu là y, output của bài toán. Mỗi observation sẽ có một label tương ứng. Ở ví dụ
về mưa ở trên label chỉ là "mưa" hoặc "khơng mưa". Label có thể mang nhiều dạng
nhưng đều có thể chuyển đổi thành một số thực hoặc một vector. Trong chương này chủ
yếu làm việc với label là số thực.

4


 Model ( Mơ hình )
Trong chương này các bạn hiểu là nó là một hàm số f(x), nhận vào một observation x
và trả về một label y=f(x).
 Parameter ( Tham Số )
Mọi thứ của model được sử dụng để tính tốn ra output. Ví dụ model là một hàm đa
thức bậc hai: f(x)= thì parameter của nó là bộ ba (a,b,c). Tuy nhiên, còn một loại
parameter đặc biệt nữa gọi là hyperparameter. Hyperparameter là một khái niệm mang
tính tương đối và quy ước, thường chỉ các parameter có tính chất hơi mặc định. Đối với
hàm đa thức thì bậc của đa thức có thể được xem là một hyperparameter. Để ngắn gọn,
người ta thường gom tất cả parameter của một model lại thành một vector, thường được
kí hiệu là w. Trong f(x) vừa rồi thì w=(a,b,c). Kí hiệu được dùng để chỉ một model đã
được xác định tham số. Trong trường hợp cấu trúc model đã được xác định (ví dụ đã biết
được nó là đa thức bậc 2), thì có thể dùng w để chỉ model thay cho ln.[7]
2.1: GIỚI THIỆU SUPERVISED LEARNING
2.2.1. Đặt vấn đề
Ví dụ, chúng ta muốn đào tạo một cỗ máy để giúp bạn dự đoán xem bạn sẽ mất bao
lâu để lái xe từ nơi làm việc về đến nhà. Tại đây, bạn bắt đầu bằng cách tạo một tập hợp
dữ liệu được dán nhãn trước. Dữ liệu này bao gồm: Điều kiện thời tiết, thời gian trong
ngày, ngày lễ, chọn đường đi. Tất cả những chi tiết này là đầu vào của bạn. Đầu ra là
lượng thời gian cần thiết để lái xe trở về nhà vào ngày cụ thể đó. Theo bản năng, bạn biết
rằng nếu trời mưa, thì bạn sẽ mất nhiều thời gian hơn để lái xe về nhà. Nhưng máy thì sẽ
cần dữ liệu và số liệu thống kê.
Bây giờ chúng ta hãy xem làm thế nào bạn có thể phát triển một mơ hình học tập có
giám sát của ví dụ này để giúp người dùng xác định thời gian đi làm. Điều đầu tiên bạn
cần tạo là một bộ huấn luyện. Tập huấn luyện này sẽ chứa tổng thời gian đi lại và các yếu
tố tương ứng như thời tiết, thời gian, v.v. Dựa trên tập huấn luyện này, máy của bạn có
thể thấy có mối quan hệ trực tiếp giữa lượng mưa và thời gian bạn sẽ về nhà.

Vì vậy, nó càng khẳng định rằng trời càng mưa, bạn sẽ lái xe càng lâu để trở về nhà.
Nó cũng có thể thấy kết nối giữa thời gian bạn nghỉ làm và thời gian bạn sẽ đi trên
đường. Bạn càng gần 6 giờ tối. bạn càng mất nhiều thời gian để về nhà. Máy của bạn có
thể tìm thấy một số mối quan hệ với dữ liệu được dán nhãn của bạn.

5


Đây là sự khởi đầu của mơ hình dữ liệu của bạn. Nó bắt đầu tác động như cách mưa
ảnh hưởng đến cách mọi người lái xe. Nó cũng bắt đầu cho thấy rằng nhiều người đi du
lịch trong một thời gian cụ thể trong ngày...
2.2.2. Mơ tả thuật tốn
Supervised learning là một hướng tiếp cận của máy học machine learning để làm cho
máy tính có khả năng "học". Trong hướng tiếp cận này, người ta "huấn luyện" máy tính
dựa trên những quan sát có dán nhãn (label data). Ta có thể hình dung những quan sát
(observation) này như là những câu hỏi, và nhãn (label) của chúng là những câu trả lời.
Là một kĩ thuật của ngành học máy để xây dựng một hàm (function) từ dữ liệu huấn
luyện. Dữ liệu huấn luyện bao gồm các cặp gồm đối tượng đầu vào (thường dạng vec-tơ),
và đầu ra mong muốn. Đầu ra của một hàm có thể là một giá trị liên tục (gọi là hồi quy),
hay có thể là dự đoán một nhãn phân loại cho một đối tượng đầu vào (gọi là phân loại).
Nhiệm vụ của chương trình học có giám sát là dự đốn giá trị của hàm cho một đối tượng
bất kì là đầu vào hợp lệ, sau khi đã xem xét một số ví dụ huấn luyện (nghĩa là, các cặp
đầu vào và đầu ra tương ứng). Để đạt được điều này, chương trình học phải tổng quát hóa
từ các dữ liệu sẵn có để dự đốn được những tình huống chưa gặp phải theo một cách
"hợp lí".
Học có giám sát có thể tạo ra 2 loại mơ hình. Phổ biến nhất, học có giám sát tạo ra
một mơ hình tồn cục (global model) để ánh xạ đối tượng đầu vào đến đầu ra mong
muốn. Tuy nhiên, trong một số trường hợp, việc ánh xạ được thực hiện dưới dạng một tập
các mơ hình cục bộ (như trong phương pháp lập luận theo tình huống case-based
reasoning hay giải thuật láng giềng gần nhất).


6


Ý tưởng của supervised learning là: bằng việc ghi nhớ và tổng quát hóa một số quy
tắc từ một tập câu hỏi có đáp án trước, máy tính sẽ có thể trả lời được những câu hỏi dù
chưa từng gặp phải, nhưng có mối liên quan. Ví dụ ta dạy máy tính "1 + 1 = 2" và hy
vọng nó sẽ học được phép tính cộng x + 1 và trả lời được là "2 + 1 = 3".
Trong supervised learning, các quan sát bắt buộc phải được dán nhãn trước. Đây
chính là một trong những nhược điểm của phương pháp này, bởi vì khơng phải lúc nào
việc dán nhãn chính xác cho quan sát cũng dễ dàng. Ví dụ như trong dịch thuật (machine
translation), từ một câu của ngôn ngữ gốc có thể dịch thành rất nhiều phiên bản khác
nhau trong ngôn ngữ cần dịch sang. Tuy nhiên, việc quan sát được dán nhãn cũng lại
chính là ưu điểm của supervised learning bởi vì một khi đã thu thập được một bộ dữ liệu
lớn được dán nhãn chuẩn xác, thì việc huấn luyện trở nên dễ dàng hơn rất nhiều so với
khi dữ liệu không được dán nhãn.
Trong chương này, chúng ta sẽ đưa supervised learning về một phương trình tốn học
đơn giản, thậm chí có thể giải được bằng kiến thức phổ thông. Tuy nhiên, ta sẽ chỉ ra
những điểm bất cập khi sử dụng các phương pháp thơng thường để tìm lời giải và đưa ra
một số cách để hạn chế những bất cập đó. Tổng hợp những phương pháp này, ta xây dựng
được một thuật toán supervised learning tổng quát.
Một cách toán học, Supervised learning là khi chúng ra có một tập hợp biến đầu
vào X={x1,x2,…,xN} và một tập hợp nhãn tương ứng Y={y1,y2,…,yN}, trong đó xi, yi là
các vector. Các cặp dữ liệu biết trước (xi,yi) ∈ X×Y được gọi là tập training data (dữ liệu
huấn luyện). Từ tập training data này, chúng ta cần tạo ra một hàm số ánh xạ mỗi phần tử
từ tập X sang một phần tử (xấp xỉ) tương ứng của tập Y:
yi ≈ f(xi), ∀i=1, 2,…, N
7



Mục đích là xấp xỉ hàm số f thật tốt để khi có một dữ liệu x mới, chúng ta có thể tính
được nhãn tương ứng của nó y=f(x).
2.2.3. Cách giải bài tốn học giám sát
Để có thể giải quyết một bài tốn nào đó của học có giám sát người ta phải xem xét
nhiều bước khác nhau:
 Bước 1: Xác định loại của các ví dụ huấn luyện
Trước khi làm bất cứ điều gì, người kĩ sư nên quyết định loại dữ liệu nào sẽ được sử
dụng làm ví dụ. Chẳng hạn, đó có thể là một kí tự viết tay đơn lẻ, toàn bộ một từ viết tay,
hay tồn bộ một dịng chữ viết tay.
 Bước 2: Thu thập tập huấn luyện
Tập huấn luyện cần đặc trưng cho thực tế sử dụng của hàm chức năng. Vì thế, một tập
các đối tượng đầu vào được thu thập và đầu ra tương ứng được thu thập, hoặc từ các
chuyên gia hoặc từ việc đo đạc tính tốn.
 Bước 3: Xác định việc biễu diễn các đặc trưng đầu vào cho hàm chức năng cần
tìm
Sự chính xác của hàm chức năng phụ thuộc lớn vào cách các đối tượng đầu vào được
biểu diễn. Thông thường, đối tượng đầu vào được chuyển đổi thành một vec-tơ đặc trưng,
chứa một số các đặc trưng nhằm mơ tả cho đối tượng đó. Số lượng các đặc trưng không
nên quá lớn, do sự bùng nổ tổ hợp (curse of dimensionality); nhưng phải đủ lớn để dự
đốn chính xác đầu ra.
 Bước 4: Xác định cấu trúc của hàm chức năng cần tìm và giải thuật học tương ứng
Ví dụ, người kĩ sư có thể lựa chọn sử dụng mạng nơ-ron nhân tạo hay cây quyết định.
 Bước 5: Hoàn thiện thiết kế
Người kĩ sư sẽ chạy giải thuật học từ tập huấn luyện thu thập được. Các tham số của
giải thuật học có thể được điều chỉnh bằng cách tối ưu hóa hiệu năng trên một tập con
(gọi là tập kiểm chứng -validation set) của tập huấn luyện, hay thông qua kiểm chứng
chéo (cross-validation). Sau khi học và điều chỉnh tham số, hiệu năng của giải thuật có
thể được đo đạc trên một tập kiểm tra độc lập với tập huấn luyện.
2.2.4. Lựa chọn thuật tốn
Có sẵn một loạt các thuật tốn học có giám sát, mỗi thuật tốn đều có điểm mạnh và

điểm yếu. Khơng có thuật tốn học tập duy nhất nào hoạt động tốt nhất trên tất cả các vấn
đề học tập có giám sát. Có bốn vấn đề chính cần xem xét trong học tập có giám sát:
 Sự cân bằng giữa phương sai
Một vấn đề đầu tiên là sự cân bằng giữa độ chệch và phương sai. Hãy tưởng tượng
rằng chúng ta có sẵn một số bộ dữ liệu đào tạo khác nhau, nhưng tốt như nhau. Một thuật
8


toán học tập được thiên vị cho một đầu vào cụ thể. Nếu, khi được đào tạo về mỗi tập dữ
liệu này, thì sẽ khơng chính xác về mặt hệ thống khi dự đốn đầu ra chính xác cho. Một
thuật tốn học tập có phương sai cao cho một đầu vào cụ thể nếu nó dự đốn các giá trị
đầu ra khác nhau khi được huấn luyện trên các tập huấn luyện khác nhau. Lỗi dự đoán
của bộ phân loại đã học có liên quan đến tổng của độ chệch và phương sai của thuật tốn
học. Nói chung, có sự cân bằng giữa thành kiến và phương sai. Thuật toán học có độ
chệch thấp phải "linh hoạt" để nó có thể phù hợp với dữ liệu. Nhưng nếu thuật toán học
tập quá linh hoạt, nó sẽ phù hợp với từng tập dữ liệu đào tạo khác nhau và do đó có
phương sai cao. Một khía cạnh chính của nhiều phương pháp học có giám sát là chúng có
thể điều chỉnh sự cân bằng giữa độ lệch và phương sai (tự động hoặc bằng cách cung cấp
tham số thiên vị / phương sai mà người dùng có thể điều chỉnh).
 Độ phức tạp của hàm và số lượng dữ liệu đào tạo
Vấn đề thứ hai là số lượng dữ liệu huấn luyện có sẵn liên quan đến độ phức tạp của
hàm "true" (hàm phân loại hoặc hàm hồi quy). Nếu hàm true là đơn giản, thì một thuật
tốn học "khơng linh hoạt" với độ chệch cao và phương sai thấp sẽ có thể học nó từ một
lượng nhỏ dữ liệu. Nhưng nếu hàm true có độ phức tạp cao (ví dụ: vì nó liên quan đến
các tương tác phức tạp giữa nhiều tính năng đầu vào khác nhau và hoạt động khác nhau ở
các phần khác nhau của không gian đầu vào), thì hàm sẽ chỉ có thể học từ một lượng rất
lớn dữ liệu huấn luyện và sử dụng thuật toán học tập "linh hoạt" với độ chệch thấp và
phương sai cao. Có một ranh giới rõ ràng giữa đầu vào và đầu ra mong muốn.
 Kích thước của khơng gian đầu vào
Vấn đề thứ ba là kích thước của không gian đầu vào. Nếu các vectơ đặc trưng đầu vào

có thứ ngun rất cao, thì vấn đề học tập có thể khó khăn ngay cả khi hàm thực chỉ phụ
thuộc vào một số lượng nhỏ các đặc trưng đó. Điều này là do nhiều thứ nguyên "bổ sung"
có thể gây nhầm lẫn cho thuật tốn học và khiến nó có phương sai cao. Do đó, chiều đầu
vào cao thường yêu cầu điều chỉnh bộ phân loại để có phương sai thấp và độ chệch
cao. Trong thực tế, nếu kỹ sư có thể xóa thủ cơng các tính năng khơng liên quan khỏi dữ
liệu đầu vào, điều này có khả năng cải thiện độ chính xác của hàm đã học. Ngồi ra, có
nhiều thuật tốn để lựa chọn tính năng nhằm xác định các tính năng có liên quan và loại
bỏ những tính năng khơng liên quan. Đây là một ví dụ về chiến lược tổng quát hơn của
giảm kích thước, tìm cách ánh xạ dữ liệu đầu vào vào một khơng gian có chiều thấp hơn
trước khi chạy thuật tốn học có giám sát.
 Nhiễu trong các giá trị đầu ra

9


Vấn đề thứ tư là mức độ nhiễu trong các giá trị đầu ra mong muốn (các biến mục
tiêu giám sát ). Nếu các giá trị đầu ra mong muốn thường khơng chính xác (do lỗi con
người hoặc lỗi cảm biến), thì thuật tốn học khơng nên cố gắng tìm một hàm khớp chính
xác với các ví dụ đào tạo. Cố gắng điều chỉnh dữ liệu một cách quá cẩn thận dẫn đến việc
trang bị quá nhiều . Bạn có thể trang bị q mức ngay cả khi khơng có lỗi đo lường
(nhiễu ngẫu nhiên) nếu hàm bạn đang cố gắng học q phức tạp đối với mơ hình học tập
của bạn. Trong tình huống như vậy, một phần của hàm mục tiêu khơng thể được mơ hình
hóa sẽ "làm hỏng" dữ liệu đào tạo của bạn - hiện tượng này được gọi là nhiễu xác
định. Khi một trong hai loại nhiễu xuất hiện, tốt hơn nên sử dụng công cụ ước lượng
phương sai có độ chệch cao hơn, phương sai thấp hơn.
Trong thực tế, có một số cách tiếp cận để giảm nhiễu trong các giá trị đầu ra, chẳng
hạn như dừng sớm để ngăn chặn việc trang bị quá mức cũng như phát hiện và loại bỏ các
ví dụ đào tạo nhiễu trước khi đào tạo thuật toán học có giám sát. Có một số thuật tốn xác
định các ví dụ đào tạo ồn ào và loại bỏ các ví dụ đào tạo ồn ào bị nghi ngờ trước khi đào
tạo đã làm giảm sai số tổng quát hóa với ý nghĩa thống kê.

 Các yếu tố khác
Khi xem xét một ứng dụng mới, kỹ sư có thể so sánh nhiều thuật toán học tập và thực
nghiệm xác định xem cái nào hoạt động tốt nhất đối với vấn đề đang gặp phải (xem xác
nhận chéo). Việc điều chỉnh hiệu suất của một thuật tốn học tập có thể rất tốn thời gian.
Với các nguồn tài nguyên cố định, thường tốt hơn là dành nhiều thời gian thu thập dữ liệu
đào tạo bổ sung và các tính năng nhiều thông tin hơn là dành thêm thời gian để điều
chỉnh các thuật toán học tập. Các yếu tố khác cần xem xét khi lựa chọn và áp dụng thuật
toán học tập bao gồm:


Tính khơng đồng nhất của dữ liệu. Nếu vectơ đặc trưng bao gồm các đặc trưng của
nhiều loại khác nhau (rời rạc, có thứ tự rời rạc, số đếm, giá trị liên tục), thì một số
thuật tốn dễ áp dụng hơn các thuật toán khác. Nhiều thuật toán, bao gồm máy
vectơ hỗ trợ , hồi quy tuyến tính , hồi quy logistic , mạng nơ-ron và các phương
pháp lân cận gần nhất , yêu cầu các tính năng đầu vào phải là số và được chia tỷ lệ
thành các phạm vi tương tự (ví dụ: đến khoảng [-1,1]). Các phương thức sử dụng
một hàm khoảng cách, chẳng hạn như các phương thức lân cận gần nhất và các
máy vectơ hỗ trợ với nhân Gaussian , đặc biệt nhạy cảm với điều này. Lợi thế của
cây quyết định là chúng dễ dàng xử lý dữ liệu không đồng nhất.



Dự phịng trong dữ liệu. Nếu các tính năng đầu vào chứa thơng tin dư thừa (ví dụ:
các tính năng có tương quan cao), một số thuật tốn học tập (ví dụ: hồi quy tuyến
10


tính , hồi quy logistic và các phương pháp dựa trên khoảng cách ) sẽ hoạt động
kém do không ổn định về số. Những vấn đề này thường có thể được giải quyết
bằng cách áp đặt một số hình thức chính quy hóa .



Sự hiện diện của các tương tác và khơng tuyến tính. Nếu mỗi tính năng đóng góp
độc lập vào kết quả đầu ra thì các thuật tốn dựa trên các hàm tuyến tính (ví dụ:
hồi quy tuyến tính , hồi quy logistic , máy vectơ hỗ trợ , Bayes ngây thơ ) và các
hàm khoảng cách (ví dụ: phương pháp lân cận gần nhất , máy vectơ hỗ trợ với hạt
nhân Gaussian ) thường hoạt động tốt. Tuy nhiên, nếu có những tương tác phức
tạp giữa các tính năng, thì các thuật tốn như cây quyết định và mạng nơ-ronhoạt
động tốt hơn, vì chúng được thiết kế đặc biệt để khám phá những tương tác này.
Phương pháp tuyến tính cũng có thể được áp dụng, nhưng kỹ sư phải chỉ định thủ
công các tương tác khi sử dụng chúng.

2.2.5. Phân loại thuật toán
 Classification (Phân loại)
Một bài toán được gọi là classification nếu các label của input data được chia thành
một số hữu hạn nhóm. Ví dụ: Gmail xác định xem một email có phải là spam hay khơng;
các hãng tín dụng xác định xem một khách hàng có khả năng thanh tốn nợ hay khơng.
Ba ví dụ phía trên được chia vào loại này.
 Regression (Hồi quy)
Nếu label khơng được chia thành các nhóm mà là một giá trị thực cụ thể. Ví dụ: một
căn nhà rộng x , có y phịng ngủ và cách trung tâm thành phố z km sẽ có giá là bao
nhiêu?
2.2.6. Cách hoạt động của thuật tốn học có giám sát
Đưa ra một tập hợp N các ví dụ đào tạo của biểu mẫu như vậy mà là vectơ đặc trưng
của -thí dụ và là nhãn của nó (tức là lớp), một thuật tốn học tìm kiếm một hàm với X là
không gian đầu vào và Y là không gian đầu ra. Chức năng là một phần tử của một số
không gian của các chức năng có thể có G, thường được gọi là khơng gian giả thuyết .
Đơi khi nó là thuận tiện để đại diện sử dụng một chức năng tính điểm như vậy mà được
định nghĩa là trả về y giá trị cho điểm cao nhất: . Để cho F biểu thị khơng gian của các
hàm tính điểm.

Mặc dù G và F có thể là bất kỳ khơng gian nào của các hàm, nhiều thuật toán học tập
là các mơ hình xác suất trong đó có dạng mơ hình xác suất có điều kiện , hoặc là có
dạng một mơ hình xác suất chung . Ví dụ, Naive Bayes và phân tích phân biệt tuyến tính
là mơ hình xác suất chung, trong khi hồi quy logistic là mô hình xác suất có điều kiện.

11


Có hai cách tiếp cận cơ bản để lựa chọn : giảm thiểu rủi ro theo kinh nghiệm và giảm
thiểu rủi ro cấu trúc. Giảm thiểu rủi ro theo kinh nghiệm tìm kiếm chức năng phù hợp
nhất với dữ liệu đào tạo. Giảm thiểu rủi ro cấu trúc bao gồm chức năng phạt kiểm soát sự
cân bằng độ lệch / phương sai.
Trong cả hai trường hợp, giả định rằng tập huấn luyện bao gồm một mẫu các cặp độc
lập và được phân phối giống nhau Để đo lường mức độ phù hợp của một hàm với dữ liệu
đào tạo, một hàm mất được định nghĩa. Ví dụ về đào tạo mất khả năng dự đoán giá trị là
). Các nguy cơ risk chức năng được định nghĩa là tổn thất dự kiến của . Điều này có thể
được ước tính từ dữ liệu đào tạo như:

 Giảm thiểu rủi ro theo kinh nghiệm
Trong giảm thiểu rủi ro theo kinh nghiệm, thuật tốn học tập có giám sát tìm kiếm
chức năng điều đó giảm thiểu . Do đó, một thuật tốn học tập có giám sát có thể được
xây dựng bằng cách áp dụng một thuật tốn tối ưu hóa để tìm .
Khi nào là một phân phối xác suất có điều kiện và hàm mất mát là khả năng nhật ký
âm: , thì việc giảm thiểu rủi ro theo kinh nghiệm tương đương với ước tính khả năng xảy
ra tối đa .
Khi nào chứa nhiều hàm ứng cử viên hoặc tập huấn luyện không đủ lớn, giảm thiểu
rủi ro theo kinh nghiệm dẫn đến phương sai cao và tính tổng qt kém. Thuật tốn học
tập có thể ghi nhớ các ví dụ đào tạo mà khơng cần khái qt hóa tốt. Điều này được gọi
là overfitting.
 Giảm thiểu rủi ro kết cấu

Giảm thiểu rủi ro cấu trúc tìm cách ngăn chặn việc trang bị quá mức bằng cách kết
hợp hình phạt chính quy vào việc tối ưu hóa. Hình phạt chính quy hóa có thể được xem
như việc thực hiện một dạng Occam's razor thích các chức năng đơn giản hơn những loại
phức tạp hơn. Nhiều loại hình phạt đã được áp dụng tương ứng với các định nghĩa khác
nhau về mức độ phức tạp. Ví dụ, hãy xem xét trường hợp hàm là một hàm tuyến tính có
dạng:
Một hình phạt quy định phổ biến là , là định mức Euclid bình phương của các trọng
số, cịn được gọi là định mức. Các định mức khác bao gồm định mức, , và "chuẩn" , là
số khác . Hình phạt sẽ được ký hiệu là . Vấn đề tối ưu hóa việc học có giám sát là tìm ra
hàm điều đó giảm thiểu:

12


Thơng số kiểm sốt sự cân bằng phương sai lệch. Khi nào , điều này cho phép giảm
thiểu rủi ro theo kinh nghiệm với độ chệch thấp và phương sai cao. Khi nào lớn, thuật
tốn học tập sẽ có độ chệch cao và phương sai thấp. Giá trị của có thể được chọn theo
kinh nghiệm thông qua xác nhận chéo .
Hình phạt phức tạp có cách giải thích theo kiểu Bayes là xác suất trước của log âm
của , , trong trường hợp là xác suất sau của .
2.1. PHÂN LỚP TRONG MÁY HỌC
2.3.1. Giới thiệu
Bài toán phân lớp (classification) và bài toán gom cụm (cluster) là hai bài toán lớn
trong lĩnh vực Machine Learnig (ML). Bài toán phân lớp là quá trình phân lớp một đối
tượng dữ liệu vào một hay nhiều lớp đã cho trước nhờ một mô hình phân lớp (model).
Mơ hình này được xây dựng dựa trên một tập dữ liệu được xây dựng trước đó có gán
nhãn (hay cịn gọi là tập huấn luyện). Q trình phân lớp là quá trình gán nhãn cho đối
tượng dữ liệu.

Hình 2.1: Chấm xám thuộc lớp xanh hay vàng?

Như vậy, nhiệm vụ của bài toán phân lớp là cần tìm 1 mơ hình phần lớp để khi có dữ
liệu mới thì có thể xác định được dữ liệu đó thuộc vào phân lớp nào.
Có nhiều bài tốn phân lớp dữ liệu như phân lớp nhị phân (binary classification),
phân lớp đa lớp (multiclass classification), phân lớp đa trị.
 Bài toán phân lớp nhị phân là bài toán gán nhãn dữ liệu cho đối tượng vào 1 trong
2 lớp khác nhau dựa vào việc dữ liệu đó có hay khơng có các đặc trưng (feature)
của bộ phân lớp.
 Bài toán phân lớp đa lớp là quá trình phân lớp dữ liệu với số lượng lớp lớn hơn 2.
Như vậy với từng dữ liệu phải xem xét và phân lớp chúng vào những lớp khác
nhau chứ không phải là 2 lớp như bài toán phân lớp nhị phân. Và thực chất bài
toán phân lớp nhị phân là 1 bài toán đặt biệt của phân lớp đa lớp.
13


Ứng dụng của bài toán này được sử dụng rất nhiều và rộng rãi trong thực tế ví dụ như
bài tốn nhận dạng khn mặt, nhận diện giọng nói, phát hiện email spam, ...
Và đối với các bài toán phân lớp dữ liệu chúng ta sử dụng các thuật toán học có giám
sát (supervised learning) để xây dựng mơ hình cho bài tốn này. Sau đây chúng ta sẽ tìm
hiểu khái quát về quá trình phân lớp dữ liệu và sơ bộ về các phương pháp phân lớp sử
dụng trong bài tốn này.
2.3.2. Q trình phân lớp dữ liệu
Để xây dựng được mơ hình phân lớp và đánh giá hiệu quả của mơ hình cần phải thực
hiện các q trình sau đây:
 Bước 1: Chuẩn bị dữ liệu huấn luyện và rút trích đặc trưng
Cơng đoạn này được xem là cơng đoạn quan trọng trong các bài tốn về Machine
Learning. Vì đây là input cho việc học dể tìm ra mơ hình của bài tốn. Chúng ta phải biết
cần chọn ra những đặt trưng tốt (good feature) của dữ liệu, lược bỏ những đặc trưng
không tốt của dữ liệu, gây nhiễu (noise). Uớc lượng số chiều của dữ liệu bao nhiêu là tốt
hay nói cách khác là chọn bao nhiêu feature. Nếu số chiều quá lớn gây khó khăn cho việc
tính tốn thì phải giảm số chiều của dữ liệu nhưng vẫn giữ được độ chính xác của dữ liệu

(reduce demension).
Ở bước này chúng ta cũng chuẩn bị bộ dữ liệu để test trên mơ hình. Thơng thường sẽ
sử dụng cross-validation (kiểm tra chéo) để chia tập datasets thành 2 phần, 1 phần phục
vụ cho training (training datasets) và phần cịn lại phục vụ cho mục đích testing trên mơ
hình (testing dataset). Có 2 cách thường sử dụng trong cross-validation là splitting và kfold.
 Bước 2: Xây dựng mơ hình phân lớp (classifier model)
Mục đích của mơ hình huấn luyện là tìm ra hàm f(x) và thơng qua hàm f tìm được để
gán nhãn cho dữ liệu, bước này thường được gọi là learning hay training.
Trong đó: x: các feature hay input đầu vào của dữ liệu.
y: nhãn lớp hay output đầu ra.
Thơng thường để xây dựng mơ hình phân lớp cho bài toán này cần sử dụng các thuật
toán học giám sát (supervised learning) như k-nearest neighbors, Neural Network, SVM,
Decision tree, Naive Bayes.
 Bước 3: Kiểm tra dữ liệu với mơ hình
Sau khi đã tìm được mơ hình phân lớp ở bước 2, thì ở bước này sẽ đưa vào các dữ
liệu mới để kiểm tra trên mơ hình phân lớp.
14


 Bước 4: Đánh giá mơ hình phân lớp và chọn ra mơ hình tốt nhất
Bước cuối cùng sẽ đánh giá mơ hình bằng cách đánh giá mức độ lỗi của dữ liệu
testing và dữ liệu training thông qua mô hình tìm được. Nếu khơng đạt được kết quả
mong muốn thì phải thay đổi các tham số (turning parameters) của các thuật tốn học để
tìm ra các mơ hình tốt hơn và kiểm tra, đánh giá lại mơ hình phân lớp, và cuối cùng chọn
ra mơ hình phân lớp tốt nhất cho bài toán.

15


CHƯƠNG 3: THUẬT TOÁN K- NEAREST NEIGHBOR

3.1. THUẬT TOÁN K-NN
3.2.1. Định nghĩa
K-nearest neighbor là một trong những thuật toán Supervised-Learning đơn giản nhất
(mà hiệu quả trong một vài trường hợp) trong Machine Learning. Ý tưởng thuật tốn là
tìm ra output của dữ liệu training gần nó nhất.
Thuật tốn có 2 đầu vào, một là tập các dữ liệu đã biết trước kiểu (loại) của từng dữ
liệu (hay còn gọi là tập huấn luyện - training set), đầu vào thứ 2 là dữ liệu, chúng ta chưa
biết kiểu (loại) dữ liệu đó. Đầu ra của thuật tốn KNN là kiểu dữ liệu của đầu vào thứ 2.
Một số khái niệm tương ứng
Ngơn ngữ người
Câu hỏi
Đáp án
Ơn thi
Tập tài liệu mang vào phịng thi
Đề thi
Câu hỏi trong dề thi
Câu hỏi có đáp án sai
Câu hỏi gần giống

Ngôn ngữ Máy Học
Điểm dữ liệu
Đầu ra, nhãn
Huấn luyện
Tập dữ liệu tập huấn
Tập dữ liểu kiểm thử
Dữ liệu kiểm thử
Nhiễu
Điểm dữ liệu gần nhất

Machine Learning

Data point
Output, Label
Training
Training set
Test set
Test data point
Noise, Outlier
Nearest Neighbor

Bảng 3.1: Một số khái niệm tương ứng
Với KNN, trong bài toán Classification, label của một điểm dữ liệu mới (hay kết quả
của câu hỏi trong bài thi) được suy ra trực tiếp từ K điểm dữ liệu gần nhất trong training
set. Label của một test data có thể được quyết định bằng major voting (bầu chọn theo số
phiếu) giữa các điểm gần nhất, hoặc nó có thể được suy ra bằng cách đánh trọng số khác
nhau cho mỗi trong các điểm gần nhất đó rồi suy ra label. Chi tiết sẽ được nêu trong phần
tiếp theo.
Trong bài toán Regresssion, đầu ra của một điểm dữ liệu sẽ bằng chính đầu ra của
điểm dữ liệu đã biết gần nhất (trong trường hợp K=1), hoặc là trung bình có trọng số của
đầu ra của những điểm gần nhất, hoặc bằng một mối quan hệ dựa trên khoảng cách tới
các điểm gần nhất đó.
Một cách ngắn gọn, KNN là thuật tốn đi tìm đầu ra của một điểm dữ liệu mới bằng
cách chỉ dựa trên thông tin của K điểm dữ liệu trong training set gần nó nhất (K-lân
cận), khơng quan tâm đến việc có một vài điểm dữ liệu trong những điểm gần nhất này là
nhiễu. Hình dưới đây là một ví dụ về KNN trong classification với K = 1.

16


Hình 3.1: Bản đồ của 3NN ( Nguồn Wikipedia)
Ví dụ trên đây là bài toán Classification với 3 classes: Đỏ, Lam, Lục. Mỗi điểm dữ

liệu mới (test data point) sẽ được gán label theo màu của điểm mà nó thuộc về. Trong
hình này, có một vài vùng nhỏ xem lẫn vào các vùng lớn hơn khác màu. Ví dụ có một
điểm màu Lục ở gần góc 11 giờ nằm giữa hai vùng lớn với nhiều dữ liệu màu Đỏ và
Lam. Điểm này rất có thể là nhiễu. Dẫn đến nếu dữ liệu test rơi vào vùng này sẽ có nhiều
khả năng cho kết quả khơng chính xác.
3.2.2. Tính khoảng cách Euclide
Phương pháp phân cụm dữ liệu thực hiện dựa trên khoảng cách Euclid là khoảng cách
nhỏ nhất từ đối tượng đến phần tử trọng tâm của các cụm. Phần tử trọng tâm của cụm
được xác định bằng giá trị trung bình các phần tử trong cụm.
i = 1. . là đối tượng thứ i cần phân cụm
; j= 1. . � là phần tử trọng tâm cụm j.
Khoảng cách Euclid từ đối tượng ai đến phần tử trọng tâm nhóm j; cj được tính tốn
dựa trên cơng thức:
(2)
Trong đó:

: Khoảng cách Euclid từ đến
: Thuộc tính thứ s của đối tượng
: Thuộc tính thứ s của phần tử trọng tâm c
3.2.3. Các bước thực hiện
 Bước 1: Xác định giá trị tham số K (số láng giềng gần nhất)


Bước 2: Tính khoảng cách giữa đối tượng cần phân lớp (Query Point) với tất cả
các đối tượng trong training data (thường sử dụng khoảng các Euclidean)
17





Bước 3: Sắp xếp khoảng cách theo thứ tự tăng dần và xác định K láng giềng gần



nhất với Query Point
Bước 4: Lấy tất cả các lớp của K láng giềng gần nhất đã xác định



Bước 5: Dựa vào phần lớn lớp của láng giềng gần nhất để xác định lớp cho đối
tượng cần phân lớp Query Point.

3.2.4. Ưu điểm và nhược điểm


Ưu điểm
Độ phức tạp tính tốn của q trình



training là bằng 0.
Việc dự đốn kết quả của dữ liệu mới



rất đơn giản.
Dể sử dụng và cài đặt.




Nhược điểm
K-NN nhiễu dễ đưa ra kết quả khơng



chính xác khi K nhỏ.
K-NN là một thuật tốn mà mọi tính
tốn đều nằm ở khâu test. Trong đó
việc tính khoảng cách tới từng điểm
dữ liệu trong training set sẽ tốn rất
nhiều thời gian.

3.2. CHUẨN BỊ DỮ LIỆU
Sau khi đã xác định được bài toán và xác định được cách thức cũng như nguồn thu
thập dữ liệu, chúng ta chuyển sang bước thứ hai: quá trình chuẩn bị dữ liệu. Quá trình
này bao gồm: Thu thập dữ liệu (data gathering), tiền xử lý dữ liệu (Data Preprocessing)
và chuẩn hóa dữ liệu.
3.2.1. Thu thập bộ dữ liệu về bệnh tim
Chất lượng của các mơ hình machine learning phụ thuộc rất lớn vào số lượng và chất
lượng của dữ liệu thu thập được, do vậy quá trình thu thập dữ liệu có thể coi là một trong
số những bước quan trọng nhất trong quá trình xây dựng ứng dụng machine learning. Để
tiến hành thu thập dữ liệu, bạn cần xác định được nguồn dữ liệu được thu thập và cách
thức tổng hợp dữ liệu từ các nguồn dữ liệu này thành một bộ dữ liệu (dataset) chung. Quá
trình thu thập dữ liệu phụ thuộc vào loại dự án mà chúng ta muốn thực hiện, nếu chúng ta
muốn thực hiện một dự án ML sử dụng dữ liệu thời gian thực, thì chúng ta có thể xây
dựng một hệ thống IoT sử dụng dữ liệu cảm biến khác nhau. Tập dữ liệu có thể được thu
thập từ nhiều nguồn khác nhau như tệp, cơ sở dữ liệu, cảm biến, file nhật ký, dữ liệu đa
phương tiện và nhiều nguồn khác. Việc thu thập dữ liệu cũng là bước tốn kém nhất trong
một dự án machine learning, do đó trong nhiều trường hợp, chúng ta có thể sử dụng sẵn
các bộ dữ liệu mở miễn phí trên Internet.

Tóm lại, trong quá trình thu thập dữ liệu, chúng ta cần phải xác định được ba vấn đề:
18


 Thu thập dữ liệu từ đâu
 Thu thập những dữ liệu gì và đặc tính, cấu trúc của dữ liệu là gì
 Làm thế nào để thu thập và tập hợp dữ liệu từ các nguồn thành một bộ dữ liệu
chung
Bộ dữ liệu dưới đây được thu thập từ tập dữ liệu bệnh tim của trang UCI Machine
Learning Repository ( Tập dữ liệu
có số dịng được thể hiện trong đồ án là 303 dịng, có số cột là 14 cột chính ( trừ cột ID)
với các thuộc tính sau:
 Age là độ tuổi, giới tính (là nam hoặc nữ)
 Cp là kiểu đau ngực (Giá trị 1: đau thắt ngực điển hình; Giá trị 2: đau thắt ngực
khơng điển hình; Giá trị 3: đau khơng đau thắt ngực; Giá trị 4: khơng có triệu
chứng)
 Huyết áp lúc nghỉ ( tính bằng mmHg khi nhập viện)
 Cholesterol ( tính bằng mg/dl)
 Fps là đường huyết đo lúc đói > 120 mg/dl (Giá trị 1: True; Giá trị 0: False)
 Restecg là kết quả điện tâm đồ lúc nghỉ ( giá trị 0: bình thường; giá trị 1: có bất
thường sóng ST-T, giá trị 2: hiển thị phì đại thất trái có thể xảy ra hoặc xác định
theo tiêu chí của Estes)
 Thalach là nhịp tim tối đa đạt được
 Exang là đau thắt ngực xảy ra lúc tập thể dục ( 1= yes, 0= no)
 Oldpeak = ST trầm cảm gây ra do tập thể dục so với nghỉ ngơi
 Độ dốc là độ dốc của đoạn ST tập thể dục đỉnh cao ( Giá trị 1: dốc lên; Giá trị 2:
bằng phẳng; Giá trị 3: dốc xuống)
 Ca là số lượng các mạch chính (0-3) được tơ màu bởi Flourosopy
 Thal là trạng thái (3 = bình thường; 6 = khuyết tật cố định; 7 = khiếm khuyết có
thể phục hồi)

 Num là chuẩn đốn bệnh tim ( Có bệnh hay khơng có bệnh)

19


Hình 3.1: Dữ liệu thu thập ban đầu
Dữ liệu thu thập ngồi một số trường hợp hãn hữu có thể sử dụng trực tiếp ngay lập
tức, thì trong đa số các trường hợp chúng ta sẽ không thể đơn giản sử dụng được dữ liệu
một cách trực tiếp để thực hiện q trình phân tích vì có thể có nhiều dữ liệu bị thiếu, giá
trị cực lớn, dữ liệu không có cấu trúc như dữ liệu văn bản hay hình ảnh hoặc dữ liệu
nhiễu… Do đó, để giải quyết vấn đề này chúng ta thường cần một bước tiền xử lý dữ
liệu.
3.2.2. Tiền xử lý dữ liệu
Tiền xử lý dữ liệu là một trong những bước quan trọng nhất trong học máy giúp xây
dựng mơ hình học máy chính xác hơn. Đó là q trình làm sạch dữ liệu thơ, tức là chuyển
dữ liệu được thu thập từ thế giới thực thành tập dữ liệu sạch để chúng có thể được sử
dụng một cách hiệu quả trong quá trình xây dựng mơ hình machine learning. Các bước
được thực hiện để chuyển đổi dữ liệu thô thành một tập dữ liệu sạch được gọi là tiền xử
lý dữ liệu. Một số bước chính trong q trình tiền xử lý dữ liệu có thể bao gồm: Làm sạch
dữ liệu (Data cleaning), tích hợp dữ liệu (Data integretion), Biến đổi dữ liệu (Data
transformation) và Giảm chiều dữ liệu (Data reduction).
Do mỗi tập tin excel chứa thơng tin của bệnh tim có những tập thuộc tính khơng cần
thiết trong phân cụm dữ liệu. Việc sắp xếp vị trí các thuộc tính cần tính chưa phù hợp
cũng như các dữ liệu gây nhiễu nên nhóm áp dụng làm sạch dữ liệu và biến đổi dữ liệu để
cần loại bỏ các thuộc tính dư thừa nhằm phục vụ cho bài tốn phân loại bệnh tim được
chính xác hơn.
20


Tương tự như việc tinh chỉnh dữ liệu, nhóm đã áp dụng biến đổi dữ liệu vào bài toán,

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.
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]. Với dữ liệu ban đầu, chúng ta
khó trong việc tính tốn và độ chính xác khơng cao nên cần chuẩn hóa dữ liệu vệ đoạn
( 0,1) để dể thực hiện hơn.
Cơng thức chuẩn hóa dữ liệu: (3)
Trong đó: x: là giá trị tại vị trí tại cần tính
min: là giá trị nhỏ nhất trong hàng thuộc tính
max: là giá trị lớn nhất trong hàng thuộc tính.
Ví dụ: Tại độ tuổi của ID01: = 0.52 (đã làm trịn), tính tương tự ta có bảng kết quả
chuẩn hóa như sau:

21


3.2.3. Trực quan hóa dữ liệu
Trực quan hóa (Visualization) là kỹ thuật tạo ra những hình ảnh, biểu đồ, đồ thị để
diễn tả thông điệp, thông tin đến người dùng. Trực quan hóa nghiên cứu trình bày một
cách trực quan khối dữ liệu trừu tượng để tăng cường nhận thức của con người.
Việc sử dụng trực quan hóa để biểu diễn dữ liệu khơng phải là hiện tượng mới. Nó đã
được sử dụng trong bản đồ, bản vẽ khoa học, những sơ đồ dữ liệu từ hàng ngàn năm
trước. Đồ họa máy tính ngay từ khi ra đời đã được sử dụng để nghiên cứu các vấn đề
khoa học. Tuy nhiên, trong những ngày đầu sự thiếu năng lực đồ họa đã hạn chế lợi ích

của chúng có thể mang lại.

Hình 3.2: Scatter Plot tơ màu theo bệnh tim
22


Với những dữ liệu khác biệt, chúng ta trực quan hóa chúng như sau

Sau đó chúng ta kiểm tra lại dữ liệu đã được chuẩn hóa

Code tổng quan lại các dữ liệu

 Xem tổng quan về số người có bệnh hay không bệnh

 Kết quả cho thấy người mắc bệnh tim (ký hiệu số 0) trong tập dữ liệu này khoảng
120 người và số người không mắc bệnh là khoảng 75 người. Còn lại là số người
chưa các định.
23


×