BỘ GIÁO DỤC VÀ ĐÀO TO
TRƯỜNG ĐẠI HỌC PHẠM KỸ THUT
THÀNH PHỐ HỒ CHÍ MINH
GIÁO TRÌNH
MACHINE LEARNING
TS. Nguyễn Mạnh Hùng
TP. HCM, Ngày 6 tháng 8 năm 2024
Mục lục
1 GIỚI THIỆU VỀ HỌC Y 3
1.1 Đnhnghĩavhcmáy .................................... 3
1.1.1 Hccógiámsát.................................... 4
1.1.2 Hckhônggiámsát ................................. 5
1.1.3 Hctăngcưng.................................... 5
1.2 Quy trình phát triển hình học y . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2.1 Quy trình KDD: Khám phá kiến trúc sở dữ liệu . . . . . . . . . . . . . . . . . 6
1.2.2 QuytrìnhSEMMA.................................. 10
1.3 Hướng dẫn cài đặt python và các thư viện hỗ trợ . . . . . . . . . . . . . . . . . . . . . . . 12
1.3.1 GiithiuPython................................... 12
1.3.2 GiithiuSKlearn .................................. 12
1.3.3 Giới thiệu Jupyter Notebook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.3.4 Các thư viện bản cần dùng . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.4 Hướng dẫn huấn luyện hình bản . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.4.1 Khosáttpdliu ................................. 18
1.4.2 Chuẩn bị tập huấn luyện (training) tập kiểm tra (testing) . . . . . . . . . . . . . 20
1.4.3 Khảo sát đặc tính của dữ liệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.4.4 y dựng hình phân loại . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.4.5 Thực hiện dự đoán cho một mẫu mới . . . . . . . . . . . . . . . . . . . . . . . . 24
1.4.6 Đánh giá độ chính xác của hình trên dữ liệu đánh giá hiện tại . . . . . . . . . . 25
1.5 Tómtt ............................................ 26
2 TIỀN XỬ LÝ DỮ LIỆU 29
2.1 THƯVINNUMPY ..................................... 29
2.1.1 GiithiuvNumpy................................. 29
2.1.2 NumPy ndarray: Đối tượng mảng đa chiều. . . . . . . . . . . . . . . . . . . . . . 31
2.1.3 Các phép toán số học với mảng NumPy. . . . . . . . . . . . . . . . . . . . . . . . 36
2.1.4 Truy vấn phần tử trong mảng. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.1.5 Hàm phổ quát (Universal function) . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.1.6 Lptrìnhhưngmng................................. 47
2.1.7 Nhập và xuất dữ liệu với mảng. . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
2.1.8 Các phép toán đại số tuyến tính . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
2.2 THƯVINPANDAS..................................... 57
2.2.1 Giới thiệu thư viện Pandas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
2.2.2 Các cấu trúc dữ liệu của Pandas . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
2.2.3 Các phương thức/ hàm thường dùng của Pandas . . . . . . . . . . . . . . . . . . . 69
2.2.4 Xlýdliutrùnglp................................. 89
2.2.5 Thống trên các tập dữ liệu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
2.2.6 Xlýdliubmt. ................................. 95
1
MỤC LỤC
3 HỌC GIÁM SÁT 103
3.1 Khái niệm v tính phổ quát, tính kém phù hợp và quá phù hợp của hình học y . . . . 104
3.1.1 Đnhnghĩa ...................................... 104
3.1.2 dụ v hiện tượng quá phù hợp-kém phù hợp trong bài toán phân loại . . . . . . 105
3.1.3 Vídvbàitoánhiquy............................... 112
3.2 Hiquytuyếntính ...................................... 116
3.2.1 Cơslýthuyết .................................... 116
3.2.2 Lập trình hồi quy tuyến tính bằng Python . . . . . . . . . . . . . . . . . . . . . . 119
3.2.3 Sử dụng hồi quy tuyến tính trong sklearn . . . . . . . . . . . . . . . . . . . . . . 121
3.2.4 L2 regularization chống quá phù hợp trong hồi quy tuyến tính . . . . . . . . . . . 122
3.2.5 L1 regulization để chống q phù hợp trong hồi quy tuyến tính . . . . . . . . . . . 126
3.3 Hiquynhphân ....................................... 129
3.3.1 Cơslýthuyết .................................... 129
3.3.2 Sử dụng hồi quy nhị phân trong sklearn . . . . . . . . . . . . . . . . . . . . . . . 133
3.4 Mngnơ-ronnhânto..................................... 136
3.4.1 Lý thuyết v Mạng nơ-ron nhân tạo . . . . . . . . . . . . . . . . . . . . . . . . . 136
3.4.2 Sử dụng Mạng nơ-ron nhân tạo trong sklearn . . . . . . . . . . . . . . . . . . . . 140
3.5 SupportVectorMachine ................................... 143
3.5.1 CơslýthuyếtvSVM ............................... 143
3.5.2 Sử dụng SVM trong sklearn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
3.6 Mngnơ-ronnhânchp(CNN)................................ 155
3.6.1 Cơslýthuyết .................................... 155
3.6.2 Ứng dụng Mạng nơ-ron nhân chập bằng Keras . . . . . . . . . . . . . . . . . . . 160
4 HỌC KHÔNG GIÁM SÁT 176
4.1 Chunhóadliu....................................... 176
4.1.1 Cơslýthuyết .................................... 176
4.1.2 Các phương pháp chuẩn hoá dữ liệu. . . . . . . . . . . . . . . . . . . . . . . . . . 177
4.1.3 Sử dụng sklearn để chuẩn hoá dữ liệu. . . . . . . . . . . . . . . . . . . . . . . . . 184
4.2 Phân tích thành phần bản (PCA) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
4.2.1 CơslýthuyếtvPCA................................ 187
4.2.2 Ứng dụng Sklearn để thực hiện PCA . . . . . . . . . . . . . . . . . . . . . . . . . 188
4.2.3 ngdngcaPCA. ................................. 192
4.2.4 Nhược điểm PCA và giải pháp sử dụng PCA phi tuyến . . . . . . . . . . . . . . . 199
4.3 Kthutnhúngdliu .................................... 201
4.3.1 ThuttoánLLE.................................... 202
4.3.2 Cách sử dụng thuật toán LLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
4.4 Phâncm ........................................... 210
4.4.1 sở lý thuyết v phân cụm K-mean . . . . . . . . . . . . . . . . . . . . . . . . 210
4.4.2 Sử dụng sklearn để thực hiện kmeans . . . . . . . . . . . . . . . . . . . . . . . . 213
4.4.3 Những lưu ý khi phân cụm với dữ liệu phức tạp . . . . . . . . . . . . . . . . . . . 215
5 LỰA CHỌN VÀ TINH CHỈNH HÌNH 223
5.1 Đánhgiáchéo......................................... 223
2
MỤC LỤC
5.1.1 Định nghĩa đánh giá chéo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
5.1.2 Sử dụng đánh giá chéo trong sklearn . . . . . . . . . . . . . . . . . . . . . . . . . 224
5.1.3 Ưu nhược điểm của việc đánh giá chéo . . . . . . . . . . . . . . . . . . . . . . . 225
5.1.4 Các chiến lược đánh giá chéo k-flod . . . . . . . . . . . . . . . . . . . . . . . . . 226
5.2 Lưới thông số và ứng dụng để lựa chọn hình . . . . . . . . . . . . . . . . . . . . . . . 231
5.2.1 Tổng quan v lưới thông số . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
5.2.2 Ảnh hưởng của lưới thông số liên quan đến hiện tượng q phù hợp . . . . . . . . 232
5.2.3 Lựa chọn hình dựa vào lưới thông số kiểm tra chéo . . . . . . . . . . . . . 234
5.3 Ứng dụng Pipeline trong học y . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
5.3.1 Kết hợp chuẩn hoá dữ liệu hình phân loại . . . . . . . . . . . . . . . . . . . 236
5.3.2 Kết hợp bằng cách sử dụng Pipeline . . . . . . . . . . . . . . . . . . . . . . . . . 237
5.3.3 SdngclassPipeline ................................ 239
5.3.4 Kết hợp pipeline và lựa chọn các đặc trưng cho hình . . . . . . . . . . . . . . 242
PHỤ LỤC 246
A.1 Chương trình con create_axes ................................ 247
A.2 Chương trình con plot_distribution .............................. 247
A.3 Chương trình con make_plot.................................. 248
A.4 Chương trình con plot_embedding............................... 249
i
Danh sách bảng
2.1 Cáchàmtomngtiêuchun................................. 34
2.2 CáckiudliuNumPy ................................... 35
2.3 Mtshàmphdngcơbn................................. 47
2.4 Các phương pháp thống mảng bản . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
2.5 Cácphéptoántphpmng ................................. 54
2.6 Các hàm đại số tuyến tính thường dùng trong numpy.linalg . ................ 57
2.7 Đầu vào dữ liệu thể cho hàm khởi tạo DataFrame .................. 68
2.8 Các phương thức và thuộc tính của đối tượng Index...................... 70
2.9 Các lựa chọn nội suy trong phương thức Reindex....................... 71
2.10 Đối số điều khiển của hàm reindex .............................. 72
2.11 Các tùy biến cho index của DataFrame . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
2.12 Tùy chọn cho phương pháp giảm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
2.13Thngkêmôtvàtómtt .................................. 93
2.14PhươngpháoxlýNA .................................... 96
2.15ĐishàmFillna....................................... 101
3.1 Ghichúkýhiutoánhc................................... 103
3.2 Một dụ v dữ liệu cho bài toán hồi quy nhị phân . . . . . . . . . . . . . . . . . . . . . 130
3.3 MtskernelK(x,z) ..................................... 149
3.4 Đối số khởi tạo của class SVC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
3.5 Phương thức huấn luyện của class SVC. . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
3.6 Các phương thức dự đoán của class SVC. . . . . . . . . . . . . . . . . . . . . . . . . . . 153
4.1 Các phương thức của lớp Kmeans. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
ii