Học máy Machine Learning Học máy Machine Learning 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ệ
Trang 1ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
ĐINH VĂN HÒA
TÌM HIỂU PHƯƠNG PHÁP HỌC MÁY VÀ ỨNG DỤNG TRONG BÀI TOÁN DỰ ĐOÁN MỨC ĐỘ UNG THƯ PHỔI
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌCNGÀNH CÔNG NGHỆ THÔNG TIN
THÁI NGUYÊN, NĂM 2023
Trang 2ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
NGÀNH CÔNG NGHỆ THÔNG TIN
Giáo viên hướng dẫn:
Đinh Văn Hòa VB2 CNTT K18I
TS Ngô Hữu Huy
THÁI NGUYÊN, NĂM 2023
Trang 3LỜI CAM ĐOAN
Tôi xin cam đoan đồ án này do chính tôi thực hiện, dưới sự hướng dẫn khoahọc của TS Ngô Hữu Huy Các kết quả lý thuyết được trình bày trong đồ án này là
sự tổng hợp từ các kết quả đã được công bố và có trích dẫn đầy đủ Các kết quả củachương trình thực nghiệm trong đồ án này được tác giả thực hiện là hoàn toàn trungthực, nếu sai tôi hoàn toàn chịu trách nhiệm
Thái Nguyên, ngày …… tháng …… năm 2023
Sinh viên
Đinh Văn Hòa
Trang 4và giúp đỡ em trong suốt quá trình học tập của mình.
Em xin gửi lời cảm ơn tới bạn bè, đồng nghiệp và gia đình đã động viên,khích lệ, tạo điều kiện giúp đỡ tôi trong suốt quá trình học tập, thực hiện và hoànthành đồ án này
Xin chân thành cảm ơn!
Thái Nguyên, ngày …… tháng …… năm 2023
Sinh viên
Đinh Văn Hòa
Trang 5MỤC LỤC
LỜI CAM ĐOAN i
LỜI CẢM ƠN ii
MỤC LỤC 1
DANH SÁCH CÁC BẢNG 4
DANH SÁCH CÁC HÌNH 5
MỞ ĐẦU 6
CHƯƠNG 1 TỔNG QUAN VỀ HỌC MÁY 7
1.1 Khái niệm học máy, học sâu 7
1.1.1 Học máy (Machine Learning) 7
1.1.2 Học sâu (Deep Learning) 7
1.2 Ứng dụng học máy 8
1.2.1 Xử lý ảnh 8
1.2.2 Phân tích văn bản 8
1.2.3 Khai phá dữ liệu 9
1.2.4 Trò chơi điện tử và Robot 9
1.3 Nguyên lý làm việc của Học máy (Machine learning) 10
1.3.1 Một số ví dụ thực tế 11
1.3.2 Huấn luyện mô hình 11
1.4 Phân loại thuật toán Học máy (Machine learning) 12
1.4.1 Học có giám sát – Supervised learning 12
1.4.2 Học không giám sát – Unsupervised learning 13
1.4.3 Học bán giám sát – Semi-Supervised learning 14
1.4.4 Học củng cố – Reinforcement learning 14
1.5 Các thuật toán Học máy (Machine learning) 15
Trang 61.5.1 Support Vector Machines 16
1.5.2 Mô hình xác suất (Probabilistic Models) 16
1.5.3 Học sâu (Deep learning) 16
1.6 Lưu ý quan trọng trong Học máy (Machine learning) 16
1.6.1 Thuật toán học máy nên sử dụng 17
1.6.2 Feature engineering 18
1.6.3 Dữ liệu huấn luyện (Training data) 20
1.6.4 Dữ liệu kiểm thử và các độ đo 20
CHƯƠNG 2 CÔNG CỤ KHAI PHÁ DỮ LIỆU ORANGE DATA MINING 22
2.1 Giới thiệu về Data Mining 22
2.1.1 Data mining 22
2.1.2 Một số tính năng chính của Data Mining 22
2.2 Các bước trong Data Mining 22
2.3 Các công cụ khai phá dữ liệu 24
2.3.1 RapidMiner 24
2.3.2 Weka 24
2.3.3 KNime 25
2.3.4 Apache Mahout 25
2.3.5 Oracle DataMining 25
2.3.6 TeraData 25
2.3.7 Orange Data Mining 25
2.4 Công cụ khai phá dữ liệu Orange Data Mining 26
2.4.1 Giới thiệu về Orange Data Mining 26
2.4.2 Thông tin về Data mining Orange 27
2.4.3 Widget Orange 27
2.4.4 Script Orange 28
Trang 7CHƯƠNG 3 BÀI TOÁN CHUẨN ĐOÁN MỨC ĐỘ UNG THƯ PHỔI 35
3.1 Mô tả bài toán 35
3.2 Thu thập cơ sở dữ liệu 36
3.3 Mô hình phân loại 38
3.4 Thực hiện chuẩn đoán trên Orange Data Mining 39
KẾT LUẬN 46
TÀI LIỆU THAM KHẢO 47
Trang 8DANH SÁCH CÁC BẢNG
Bảng 3.1 Minh họa 13 số tính năng trước trong cơ sở dữ liệu 37Bảng 3.2 Minh họa 12 số tính năng sau trong cơ sở dữ liệu 37
Trang 9DANH SÁCH CÁC HÌNH
Hình 1.1 Học máy (Machine learning) 10
Hình 1.2 Ví dụ về phân cụm 13
Hình 1.3 Học bán giám sát (Semi - Suppervised learning) 14
Hình 1.4 AlphaGo chiến thắng cờ thủ số 1 thế giới 15
Hình 1.5 Các thuật tốn Học máy (Machine learning) 17
Hình 2.1 Các bước trong Data Mining 23
Hình 2.2 Các cơng cụ khai phá dữ liệu 24
Hình 2.3 Giao diện chính của phần mềm Orange Data Mining 29
Hình 2.4 Các chức năng trong nhĩm Data 30
Hình 2.5 Các chức năng trong nhĩm Visualize 31
Hình 2.6 Các chức năng trong nhĩm Model 32
Hình 2.7 Các chức năng trong nhĩm Evaluate 33
Hình 2.8 Các chức năng trong nhĩm Unsupervised 34
Hình 3.1 Tỷ lệ mắc ung thư tồn cầu năm 2018 36
Hình 3.2 Phân phối của tính năng mục tiêu 38
Hình 3.3 Mơ hình bài tốn 39
Hình 3.4 Load dữ liệu vào hệ thống 40
Hình 3.5 Phân bố dữ liệu của tuổi 40
Hình 3.6 Phân bố dữ liệu của trường giới tính 41
Hình 3.7 Phân bố dữ liệu của trường mục tiêu “Mức độ” 41
Hình 3.8 Xác định trường mục tiêu “Mức độ” 42
Hình 3.10 Kết quả của mơ hình kNN 43
Hình 3.11 Kết quả của mơ hình Random Forest 43
Hình 3.12 Kết quả của mơ hình Logistic Regression 44
Hình 3.13 Kết quả của mơ hình Nạve Bayes 44
Hình 3.14 Kết quả của mơ hình Tree 45
Trang 10MỞ ĐẦU
Ngày nay, công nghệ thông tin phát triển đồng nghĩa với việc phát triển cácphần mềm ứng dụng Phần mềm khai phá dữ liệu là một công cụ phân tích dùng đểphân tích dữ liệu Nó cho phép người sử dụng phân tích dữ liệu theo nhiều góc nhìnkhác nhau, phân loại dữ liệu theo những quan điểm riêng biệt và tổng kết các mốiquan hệ đã được bóc tách
Hiện nay, kỹ thuật khai phá dữ liệu đang được áp dụng một cách rộng rãitrong nhiều lĩnh vực kinh doanh và đời sống khác nhau, như: Thương mại; Thôngtin sản xuất; Thông tin khoa học; CSDL sinh học; Khoa học địa lý; Trong y tế,marketing, ngân hàng, viễn thông, du lịch, internet, Trong đó, công cụ khai phá
dữ liệu đóng một vai trò quan trọng Vì vậy, em chọn nghiên cứu về đề tài: “Tìm hiểu phương pháp học máy và ứng dụng trong bài toán dự đoán mức độ ung thư phổi ”.
Mặc dù đã cố gắng hết sức nhưng do thời gian ngắn nên đề tài không tránhkhỏi nhiều thiếu sót, rất mong được sự quan tâm và góp ý thêm của thầy cô và tất cảcác bạn
Để có thể hoàn thành đề tài này, tôi xin gửi lời cảm ơn sâu sắc giáo viênhướng dẫn đã nhiệt tình hướng dẫn, chỉ bảo và cung cấp cho tôi nhiều kiến thứcthực tế rất bổ ích trong suốt quá trình làm đề tài Nhờ sự giúp đỡ tận tình của thầynên tôi mới hoàn thành được đề tài này
Em xin chân thành cảm ơn!
Trang 11CHƯƠNG 1 TỔNG QUAN VỀ HỌC MÁY
1.1 Khái niệm học máy, học sâu
1.1.1 Học máy (Machine Learning)
Học máy (Machine Learning) 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ể
1.1.2 Học sâu (Deep Learning)
Học sâu (Deep Learning) là một nhánh máy học sử dụng nhiều lớp Neuralnetwork để đưa ra một mô hình toán học trên dữ liệu có sẵn Học sâu hay DeepLearning thường được nhắc đến cùng với Dữ liệu lớn (Big Data) và Trí tuệ nhân tạo(AI) Đã có nhiều ứng dụng trong thực tế , đang phát triển mạnh theo sự phát triểncủa tốc độ máy tính đặc biệt là khả năng tính toán trên GPU và sự tăng nhanh của
dữ liệu cùng với các framework (TensorFlow hay Pytorch) làm việc xây dựngmodel trở nên dễ dàng hơn
Học sâu là một phần của một họ các phương pháp học máy rộng hơn dựatrên đại diện học của dữ liệu Một quan sát (ví dụ như, một hình ảnh) có thể đượcbiểu diễn bằng nhiều cách như một vector của các giá trị cường độ cho mỗi điểmảnh, hoặc một cách trừu tượng hơn như là một tập hợp các cạnh, các khu vực hìnhdạng cụ thể… Một vài đại diện làm khiến việc học các nhiệm vụ dễ dàng hơn (ví
dụ, nhận dạng khuôn mặt hoặc biểu hiện cảm xúc trên khuôn mặt) từ các ví dụ Mộttrong những hứa hẹn của học sâu là thay thế các tính năng thủ công bằng các thuậttoán hiệu quả đối với học không có giám sát hoặc nửa giám sát và tính năng phâncấp
Nhiều kiến trúc học sâu khác nhau như mạng neuron sâu, mã mạng neurontích chập sâu, mạng niềm tin sâu và mạng neuron tái phát đã được áp dụng cho cáclĩnh vực như thị giác máy tính, tự động nhận dạng giọng nói, xử lý ngôn ngữ tự
Trang 12nhiên, nhận dạng âm thanh ngôn ngữ và tin sinh học, chúng đã được chứng minh làtạo ra các kết quả rất tốt đối với nhiều nhiệm vụ khác nhau.
Ngoài ra, học sâu đã trở thành một từ ngữ thời thượng, hay một thương hiệucủa mạng neuron
1.2 Ứng dụng học máy
1.2.1 Xử lý ảnh
Bài toán xử lý ảnh (Image Processing) giải quyết các vấn đề phân tích thôngtin từ hình ảnh hay thực hiện một số phép biến đổi Một số ví dụ là:
- Gắn thẻ hình ảnh (Image Tagging), giống như Facebook, một thuật toán tự
động phát hiện khuôn mặt của bạn và bạn bè trên những bức ảnh Về cơ bản, thuậttoán này học từ những bức ảnh mà bạn tự gắn thẻ cho mình trước đó
- Nhận dạng ký tự (Optical Character Recognition), là một thuật toán
chuyển dữ liệu trên giấy tờ, văn bản thành dữ liệu số hóa Thuật toán phải học cáchnhận biết ảnh chụp của một ký tự là ký tự nào
- Ô tô tự lái (Self-driving cars), một phần cơ chế sử dụng ở đây là xử lý ảnh.
Một thuật toán machine learning giúp phát hiện các mép đường, biển báo hay cácchướng ngại vật bằng cách xem xét từng khung hình video từ camera
1.2.2 Phân tích văn bản
Phân tích văn bản(Text analysis) là công việc trích xuất hoặc phân lọi thôngtin từ văn bản Các văn bản ở đây có thể là các facebook posts, emails, các đoạnchats, tài liệu, … Một số ví dụ phổ biến là:
- Lọc spam(Spam filtering), là một trong những ứng dụng phân loại văn bản
được biết và sử dụng nhiều nhất Ở đây, phân loại văn bản là xác định chủ đề chomột văn bản Bộ lọc spam sẽ học cách phân loại một email có phải spam không dựatrên nội dung và tiêu đề của email
- Phân tích ngữ nghĩa(Sentiment Analysis), học cách phân loại một ý kiến là
tích cực, trung tính hay tiêu cực dựa trên nội dung văn bản của người viết
Trang 13- Khai thác thông tin(Information Extraction), từ một văn bản, học cách để
trích xuất các thông tin hữu ích Chẳng hạn như trích xuất địa chỉ, tên người, từkhóa, …
1.2.3 Khai phá dữ liệu
Khai phá dữ liệu(Data mining) là quá trình khám phá ra các thông tin có giátrị hoặc đưa ra các dự đoán từ dữ liệu Định nghĩa này có vẻ bao quát, nhưng bạnhãy nghĩ về việc tìm kiếm thông tin hữu ích từ một bảng dữ liệu rất lớn Mỗi bảnghi sẽ là một đối tượng cần phải học, và mỗi cột là một đặc trưng Chúng ta có thể
dự đoán giá trị của một cột của bản ghi mới dựa trên các bản ghi đã học Hoặc làphân nhóm các bản ghi của bản Sau đây là những ứng dụng của khai phá dữ liệu:
- Phát hiện bất thường(Anomaly detection), phát hiện các ngoại lệ, ví dụ
như phát hiện gian lận thẻ tín dụng Bạn có thể phát hiện một giao dịch là khả nghidựa trên các giao dịch thông thường của người dùng đó
- Phát hiện các quy luật(Association rules), ví dụ, trong một siêu thị hay
một trang thương mại điện tử Bạn có thể khám phá ra khách hàng thường mua cácmón hàng nào cùng nhau Dễ hiểu hơn, khách hàng của bạn khi mua món hàng Athường mua kèm món hàng nào? Các thông tin này rất hữu ích cho việc tiếp thị sảnphẩm
- Gom nhóm(Grouping), ví dụ, trong các nền tảng SaaS, người dùng được
phân nhóm theo hành vi hoặc thông tin hồ sơ của họ
- Dự đoán(Predictions), các cột giá trị(của một bản ghi mới trong database).
Ví dụ, bạn có thể dự đoán giá của căn hộ dựa trên các dữ liệu về giá các căn hộ bạn
đã có
1.2.4 Trò chơi điện tử và Robot
Trò chơi điện tử (Video games) và robot (Robotics) là lĩnh vực lớn có sự gópmặt của machine learning Nếu ta có một nhân vật cần di chuyển và tránh cácchướng ngại vật trong game Machine learning có thể học và giải quyết công việc
Trang 14này thay bạn Một kỹ thuật phổ biến được áp dụng trong trường hợp này là Họctăng cường(Reinforcement learning) Ở đó, máy sẽ học tăng cường với mục tiêu làgiải quyết nhiệm vụ trên Học tăng cường là tiêu cực nếu nó va phải chướng ngạivật, là tích cực nếu nó chạm tới đích.
Một thành tựu gần đây nhất là cỗ máy Alpha Go của Google DeepMind đãđánh bại kỳ thủ cờ vậy số 1 thế giới Trong khi cờ vây là một trò chơi có không giantrạng thái cực kỳ lớn
1.3 Nguyên lý làm việc của Học máy (Machine learning)
A computer program is said to learn to perform a task T from experience E,
if its performance at task T, as measured by a performance metric P , improves with experience E over time
Có thể dịch như sau “Một chương trình máy tính được cho là học để thựchiện một nhiệm vụ T từ kinh nghiệm E, nếu hiệu suất thực hiện công việc T của
nó được đo bởi chỉ số hiệu suất P và được cải thiện bởi kinh nghiệm E theo thờigian.”
Hình 1.1 Học máy (Machine learning).
Ví dụ: Một cỗ máy thực hiện chơi cờ (nhiệm vụ T), có thể học từ dữ liệu cácván cờ trước đó hoặc chơi với một chuyên gia (kinh nghiệm E) Khả năng chơi của
cỗ máy là tỉ lệ số ván mà nó chiến thắng khi chơi với con người (hiệu suất P)
Trang 151.3.1 Một số ví dụ thực tế
Hãy cùng hình dung trong một vài ví dụ khác:
- Ví dụ 1: Một hệ thống nhận vào một hình ảnh, nó phải xác định xem trong
đó có khuôn mặt của một người hay không Điều này thấy rõ nhất ở chức năng tựđộng gắn thẻ khuôn mặt của Facebook
- Ví dụ 2: Hệ thống nhận vào các reviews về một sản phẩm đồ ăn cần xácđịnh các reviews đó có nội dung tích cực hay tiêu cực
- Ví dụ 3: Một hệ thống nhận vào hình ảnh/ thông tin của một người Đánhgiá số điểm đo khả năng người đó sẽ trả một khoản vay tín dụng
Trong Ví dụ 1, nhiệm vụ phát hiện khuôn mặt của một người trong bức ảnh.Kinh nghiệm có thể là một tập hợp các ảnh có khuôn mặt của người đó và một tậpảnh khác không có Hiệu suất sẽ được tính bằng tỉ lệ đoán chính xác trên một tậpảnh mới
Trong Ví dụ 2, nhiệm vụ của bài toán là là gán nhãn cho mỗi review Kinhnghiệm ở đây có thể là tập hợp các review và nhãn tương ứng của nó Hiệu suấtđược đo bằng tỉ lệ dự đoán nhãn chính xác trên các review mới
Trong Ví dụ 3, bài toán cần giải quyết là đánh giá điểm tin cậy của ngườidùng để thực hiện cho vay tín dụng Kinh nghiệm có thể học được từ các tập hìnhảnh/ thông tin của những người vay tín dụng trước đi kèm thông tin họ có chi trảkhoản vay tín dụng đó không Hiệu suất của mô hình sẽ được đo bằng tỉ lệ dự đoánđúng trên tập khách hàng mới
1.3.2 Huấn luyện mô hình
Làm sao thuật toán có thể thể đưa ra đầu ra mong muốn từ tập dữ liệu đầuvào? Bạn cần một quá trình huấn luyện sử dụng các dữ liệu huấn luyện Nó chính làkinh nghiệm E ở định nghĩa trên
Trang 16Một tập dữ liệu huấn luyện bao gồm nhiều mẫu huấn luyện Mỗi mẫu huấnluyện sẽ là một thể hiện của bài toán (có đầu vào và lời giải) Machine learning sẽhọc từ các thể hiện đó để tìm ra lời giải phù hợp với từng đầu vào mới Nó giốngnhư là bạn dạy 1 đứa trẻ cách ném 1 quả bóng; bạn sẽ ném quả bóng vài lần cho đứatrẻ quan sát; Sau đó đứa trẻ sẽ bắt đầu học để tự ném quả bóng.
Các ví dụ trong tập huấn luyện thường có một tập thuộc tính/ đặc trưng cốđịnh Đó là những thể hiện để mô tả về đối tượng đó Như trong Ví dụ 1, đặc trưng
có thể là tần suất các màu của mỗi bức ảnh Trong Ví dụ 2, các đặc trưng mộtreview sẽ là các từ tạo nên review đó Còn Ví dụ 3, các đặc trưng có thể là tuổi tác,công việc, mức lương của mỗi người,…
Lựa chọn các đặc trưng thích hợp là một nhiệm vụ quan trọng trong Machinelearning Chúng ta sẽ tiếp tục làm rõ điều này ở phần phía sau mục này
1.4 Phân loại thuật toán Học máy (Machine learning)
Các thuật toán dựa trên phương pháp học trong machine learning bao gồm:Học có giám sát (Supervised learning), học không giám sát (Unsupervised learning),học bán giám sát (Semi-Supervised learning) và học củng cố
1.4.1 Học có giám sát – Supervised learning
- Ý tưởng chính của Supervised learning là ghi nhớ và tổng quát hoá một sốquy tắc từ các quan sát được gán nhãn, máy tính có thể tự gán nhãn cho các quan sátmới Diễn tả theo toán học tức là khi chúng ta có một tập hợp biến đầu vào X ={x1, x , , x } và một tập hợp nhãn tương ứng Y = {y , y , y } Các tập dữ liệu2 N 1 2 N
này gọi là dữ liệu huấn luyện, từ tập dữ liệu huấn luyện này, cần tạo ra một hàm sốánh xạ mỗi phần tử của tập X sang một phần tử của tập Y tương ứng: y ~ f(x ), vớii i
mọi i = 1, 2, , N
- Trong Supervised learning, các quan sát bắt buộc phải được gá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 vì không phải lúcnào việc gán nhãn cho các quan sát cũng dễ dàng và chính xác
Trang 17- Có hai bài toán chính trong học có giám sát là phân lớp (Classification) vàhồi quy (Regression).
1.4.2 Học không giám sát – Unsupervised learning
- Thuật toán này chỉ có dữ liệu đầu vào mà không biết được dữ liệu đầu ra(hay label), tức là chúng ta chỉ có dữ liệu vào X mà không biết label Y tương ứng
- Các bài toán học không giám sát bao gồm:
+ Clustering - Bài toán phân nhóm: toàn bộ dữ liệu đầu vào X được phân
thành các nhóm nhỏ dựa trên sự liên quan giữa các dữ liệu trong mỗi nhóm Ví dụ:phân nhóm khách hàng dựa trên hành vi mua hàng; phân nhóm thu nhập dựa trênmức thu nhập của mỗi người, …
Hình 1.2 Ví dụ về phân cụm.
+ Association: là bài toán khi chúng ta muốn tìm ra một quy luật dựa trên các
dữ liệu đầu vào cho trước (dữ liệu này phải đủ lớn) Ví dụ: các khách hàng nammua quần áo thường có xu hướng mua thêm thắt lưng hoặc ví da, những khán giả đãxem phim Spider Man thường có xu hướng xem thêm phim Iron Man, Chúng tadựa vào những quy luật đó để tạo ra một hệ thống gợi ý (Recommendation System)phục vụ nhu cầu của khách hàng
Trang 181.4.3 Học bán giám sát – Semi-Supervised learning
Học bán giám sát tức là khi chúng ta có một lượng lớn dữ liệu nhưng chỉ mộtphần trong số đó được gán nhãn (label) Thực tế có rất nhiều bài toán trong machinelearning sử dụng phương pháp học này vì việc thu thập dữ liệu có gán nhãn tốn rấtnhiều thời gian và chi phí, nhiều loại dữ liệu cần phải có chuyên gia mới có thể gánnhãn được (điển hình là các hình ảnh trong y tế)
Hình 1.3 Học bán giám sát (Semi - Suppervised learning)
1.4.4 Học củng cố – Reinforcement learning
Học củng cố là bài toán tự động xác định hành vi dựa trên ngữ cảnh Hiệntại, thuật toán này được áp dụng vào lý thuyết trò chơi, một ví dụ điển hình đó làAlphaGo nổi tiếng với việc chơi cờ vây thắng cả người giỏi nhất (tất nhiên trong cỗmáy AlphaGo được tích hợp rất nhiều thuật toán học máy khác)
Trang 19Hình 1.4 AlphaGo chiến thắng cờ thủ số 1 thế giới.
1.5 Các thuật toán Học máy (Machine learning)
Để thực hiện chuyển đổi từ input thành output mong muốn, chúng ta có thể
sử dụng các mô hình khác nhau Machine learning không phải là một loại thuật toánduy nhất; Có thể bạn đã nghe tới Support vector machine(SVM), Naive Bayes, Câyquyết định (Decision Trees) hay Học sâu (Deep learning) Các thuật toán này đều cốgắng giải quyết một bài toán: Học cách chuyển đổi mọi input thành output chínhxác của mà nó thuộc về
Những thuật toán machine learning này sử dụng các mô hình/ kỹ thuật khácnhau để thực hiện quá trình học tập và thể hiện kiến thức về những gì nó được học.Nhưng trước khi đi vào từng thuật toán, có một nguyên tắc chung: Các thuậttoán machine learning cố gắng khái quát hóa Nghĩa là, nó sẽ tìm và giải thích theocách đơn giản nhất; Nguyên tắc đó được biết đến là Occam’s razor
Mọi thuật toán machine learning đều cố gắng đưa ra những giả thiếtđơn giản nhất mà có thể đúng với hầu hết các mẫu trong tập dữ liệu huấnluyện Một số thuật toán Machine learning: Support Vector Machines, Môhình xác suất (Probabilistic Models), Học sâu (Deep learning)
Trang 201.5.1 Support Vector Machines
Support Vector Machines: Một thuật toán cố gắng xây dựng một siêu mặtphẳng trong không gian nhiều chiều để phân biệt các đối tượng ở các lớp khác nhau;Làm sao cho khoảng cách giữa 2 đối tượng khác label gần nhau nhất có khoảngcách cực đại Ý tưởng của thuật toán cực kỳ đơn giản, nhưng mô hình này lại rấtphức tạp và có hiệu quả Thực tế, ở một số bài toán, SVM là một mô hình machinelearning cho hiệu quả tốt nhất
1.5.2 Mô hình xác suất (Probabilistic Models)
Mô hình xác suất(Probabilistic Models): Các mô hình này cố gắng giải quyếtbài toán bằng phân bố xác suất Một thuật toán phổ biến nhất là phân loại NaiveBayes; Nó sử dụng lý thuyết Bayes và giả thiết các đặc trưng là độc lập Điểm mạnhcủa mô hình xác suất là đơn giản nhưng hiệu quả Đầu ra của nó không chỉ
là label mà còn đi kèm xác suất thể hiện độ chính xác cho kết quả đó
1.5.3 Học sâu (Deep learning)
Học sâu (Deep learning): Hiện đang là xu hướng trong machine learning dựatrên các mô hình mạng nơ ron nhân tạo (Artificial Neural Networks) Mạng nơ ron
có cách tiếp cận kết nối và sử dụng ý tưởng theo cách bộ não con người làm việc.Chúng bao gồm số lượng lớn các nơ ron liên kết với nhau; được tổ chức thành cáclớp(layers) Học sâu liên tục được phát triển với các cấu trúc mới sâu hơn; Nókhông chỉ cố gắng học mà còn xây dựng các cấu trúc biểu diễn các đặc trưng quantrọng một cách tự động
1.6 Lưu ý quan trọng trong Học máy (Machine learning)
Nhắc lại, Machine learning nghe có vẻ rất thần thánh Nhưng machinelearning không tự động làm tất cả mọi thứ cho bạn được Thực tế, có nhiều bước thủcông cần làm để thiết kế ra một giải pháp Tuy nhiên, chúng lại có ảnh hưởng lớntới kết quả của bài toán Một số điều cần lưu ý là:
Trang 211.6.1 Thuật toán học máy nên sử dụng
Hình 1.5 Các thuật toán Học máy (Machine learning).
a Học có giám sát hay học không giám sát?
Dữ liệu của bạn có nhãn (label) hay không? Tức là, mỗi mẫu dữ liệu huấnluyện có một đầu ra tương ứng hay không? Nếu có, bạn hãy sử dụng học có giámsát để giải bài toán Nếu không, học không giám sát là thuật toán bạn nên dùng
b Phân loại, hồi quy hay phân cụm?
Điều đó phụ thuộc chủ yếu vào câu hỏi: Bạn đang muốn giải quyết cái gì?Nếu bạn muốn gắn thẻ cho một bài báo; phân loại có thể là lựa chọn đúng đắn.Nhưng nếu bạn cần kết quả là một con số, chẳng hạn dự báo giá nhà đất, hồi quy làlựa chọn tốt nhất Nếu bạn có một trang web bán hàng và muốn gợi ý sản phẩmtương tự cho khách, lựa chọn hợp lý nhất trong trường hợp này là phân cụm
c Deep learning, SVM, Naive Bayes, Decision Trees… thuật toán nào tốt nhất?
Câu trả lời là: Không có thuật toán nào là tốt nhất cho mọi bài toán Có thểbạn thấy Deep learning và SVM đã chứng minh chúng mạnh mẽ và hiệu quả trongnhiều ứng dụng khác nhau Nhưng tùy vào từng bài toán cụ thể và phân tích dữ liệu,
Trang 22một vài thuật toán machine learning có thể làm tốt hơn các thuật toán còn lại Bạncần biết điểm mạnh của mỗi thuật toán và thử chúng để tìm được thuật toán tối ưunhất!
1.6.2 Feature engineering
Feature engineering là quá trình chúng ta thực hiện trích xuất và trích chọncác đặc trưng (thuộc tính) quan trọng từ dữ liệu thô để sử dụng làm đại diện cho cácmẫu dữ liệu huấn luyện Một tập dữ liệu huấn luyện có thể có rất nhiều thuộc tính,nhưng không phải cái nào cũng cần thiết và quan trọng Feature engineering là kỹthuật giúp loại bỏ các thuộc tính dư thừa; làm đơn giản hóa quá trình biểu diễn dữliệu nhưng không làm ảnh hưởng tới kết quả cuối cùng Nếu không có bước này,
mô hình học sẽ cực kỳ phức tạp và thậm chí còn giảm độ chính xác khi có nhữngthuộc tính nhiễu
Feature engineering là một bước quan trọng trong Machine learning (trừ khi
dữ liệu của bạn đã sạch sẽ hoặc là bài toán chưa đủ lớn)
Bạn nên chú ý: Nếu bạn không thực hiện bước này, kết quả sẽ có thể rất tệ,
cho dù bạn có dùng một thuật toán tốt nhất đi nữa Nó giống như bạn cố gắng đọctrong bóng tối vậy; bạn không thể đọc được cho dù bạn thông minh tới đâu đi nữa
a Trích xuất đặc trưng (Feature extraction)
Để nạp dữ liệu huấn luyện vào mô hình học máy, bạn cần phải đưa dữ liệuthô về cấu trúc nào đó mà thuật toán có thể “hiểu” Công việc này được gọi là tríchxuất đặc trưng Thông dụng nhất, chúng ta sẽ chuyển dữ liệu thô về dữ liệu số làvector của các đặc trưng
Trong Ví dụ 1, làm sao ta có thể truyền vào thuật toán machine learning mộthình ảnh?
Một cách đơn giản là chuyển ảnh đó thành một vector; Mỗi phần tử trongvector đó tương ứng là giá trị màu xám của từng pixel trong ảnh Khi đó, mỗi đặc
Trang 23trưng/thành phần sẽ là một giá trị số từ 0 – 255; 0 là màu đen, 255 là trắng và 1 –
Nếu chúng ta cung cấp các đặc trưng tốt hơn:
- Thuật toán sẽ có khả năng cung cấp những kết quả chính xác hơn
- Có thể sẽ cần ít dữ liệu huấn luyện hơn
- Có thể giảm đáng kể thời gian huấn luyện mô hình
b Trích chọn đặc trưng (Feature selection)
Đôi khi, các đặc trưng chúng ta cung cấp cho thuật toán machine learning cóthể vô dụng Chẳng hạn, với bài toán phân loại review, chúng ta cung cấp chiều dàicủa review, ngày tạo và người tạo review đó,… chúng có thể hữu ích hoặc không
Sẽ rất hữu ích nếu có phương pháp tự động phát hiện điều này Đó là trích chọn đặctrưng, thuật toán này sử dụng kỹ thuật đánh trọng số cho từng đặc trưng; Và chỉ lựachọn các đặc trưng có trọng số cao
Trang 24Một lưu ý nữa: Cái gì nhiều quá cũng không tốt, tránh sử dụng số lượng đặctrưng quá lớn Bạn có thể bị cám dỗ và thêm tất cả các đặc trưng có thể hữu ích.Nhưng đó không phải cách tốt, thêm đặc trưng cũng đồng nghĩa không gian bộ nhớtăng lên, làm cho dữ liệu cách xa nhau hơn Vấn đề phổ biến này được biết đến vớicái tên curse of dimensionality Khi số lượng mẫu huấn luyện tăng theo cấp sốnhân, đó thực sự là một vấn đề.
1.6.3 Dữ liệu huấn luyện (Training data)
Bạn cần truyền vào thuật toán machine learning các mẫu dữ liệu huấn luyện.Phụ thuộc vào bài toán bạn cần giải quyết, chúng ta có thể cần vài trăm, vài nghìn,triệu hoặc hàng tỷ mẫu dữ liệu huấn luyện Cân nhắc, cung cấp các mẫu huấn luyệntốt là rất quan trọng; Nếu bạn đưa vào các mẫu dữ liệu sai, cơ hội để có kết quả tốt
sẽ giảm đi
Thu thập một số lượng lớn dữ liệu liệu có chất lượng tốt để huấn luyện các
mô hình học máy thường tốn nhiều chi phí Trừ khi bạn đã có sẵn dữ liệu gán nhãnrồi Bạn có thể thực hiện công việc này thủ công bằng sức người Một số công cụ hỗtrợ tăng tốc độ gán nhãn có thể giúp bạn
Nguyên tắc chung về dữ liệu huấn luyện là: Chất lượng của dữ liệuhuấn luyện của bạn càng tốt, khả năng bạn thu được kết quả tốt sẽ cao hơn
1.6.4 Dữ liệu kiểm thử và các độ đo
Sau khi chúng ta đào tạo một thuật toán máy học, chúng ta cần kiểm tra hiệuquả của nó Đây là một bước đặc biệt quan trọng, nếu không bạn sẽ không thể biết
mô hình của mình có học được gì hay không
a Kiểm thử và độ chính xác
Ý tưởng thực hiện rất đơn giản, chúng ta sử dụng dữ liệu kiểm thử(testingdata); Dữ liệu này có cấu trúc giống với dữ liệu huấn luyện; Nhưng là một tập dữliệu không có ở trong tập dữ liệu huấn luyện Chúng ta sẽ thử từng mẫu dữ liệukiểm thử, kiểm tra mô hình hoạt động có như mong đợi không Nếu là bài toán học
Trang 25có giám sát, chúng ta quan sát những mẫu mô hình cho ra kết quả đúng Nếu độchính xác trả ra là 90% trên tập kiểm thử, chúng ta kết luận mô hình này có độchính xác là 90%.
Điều quan trọng phải nhớ rằng dữ liệu huấn luyện và kiểm thử phải tách biệt.Đây là cách duy nhất để kiểm tra hiệu suất của mô hình học máy Bạn có thể có kếtquả tốt trên tập dữ liệu huấn luyện, nhưng có kết quả tệ trên tập kiểm thử; Vấn đềnày được gọi là overfiting; Mô hình học máy quá khớp với dữ liệu huấn luyện và cómột kết quả dự đoán tệ Cách thường dùng để tránh overfiting là sử dụng ít số lượngđặc trưng hơn; đơn giản hóa mô hình; sử dụng tập huấn luyện lớn hơn và khônggian dữ liệu bao quát hơn
b Một số độ đo khác
Độ chính xác là độ đo cơ bản nhất, bạn có thể sử dụng độ đo khác nhưPrecission vs Recall; Nó sẽ nói cho bạn thuật toán hoạt động tốt như nào trên từngnhãn Confusion matrices là một công cụ tuyệt vời để xem thuật toán phân loại dựđoán ‘nhập nhằng’ trong trường hợp nào
Đối với bài toán hồi quy và phân cụm, bạn cần có các độ đo khác để kiểm trathuật toán của bạn có hoạt động tốt hay không
Trang 26CHƯƠNG 2 CÔNG CỤ KHAI PHÁ DỮ LIỆU ORANGE
Quá trình khai phá dữ liệu là một quá trình phức tạp bao gồm kho dữ liệuchuyên sâu cũng như các công nghệ tính toán Hơn nữa, Data Mining không chỉgiới hạn trong việc trích xuất dữ liệu mà còn được sử dụng để chuyển đổi, làm sạch,tích hợp dữ liệu và phân tích mẫu
Có nhiều tham số quan trọng khác nhau trong Data Mining, chẳng hạn nhưquy tắc kết hợp, phân loại, phân cụm và dự báo
2.1.2 Một số tính năng chính của Data Mining
- Dự đoán các mẫu dựa trên xu hướng trong dữ liệu
- Tính toán dự đoán kết quả
- Tạo thông tin phản hồi để phân tích
- Tập trung vào cơ sở dữ liệu lớn hơn
- Phân cụm dữ liệu trực quan
2.2 Các bước trong Data Mining
Các bước quan trọng khi Data Mining bao gồm:
Bước 1: Làm sạch dữ liệu – Trong bước này, dữ liệu được làm sạch sao chokhông có tạp âm hay bất thường trong dữ liệu