TRƯỜNG ĐẠI HỌC ĐIỆN LỰC KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO CHUYÊN ĐỀ HỌC PHẦN HỌC MÁY NÂNG CAO ĐỀ TI: BI TOÁN PHÂN LỚP NHỊ PHÂN SỬ DỤNG KỸ THUẬT HỌC MÁY SVM ĐỂ DỰ ĐOÁN KHẢ NĂNG SỐNG SÓT
Trang 1TRƯỜNG ĐẠI HỌC ĐIỆN LỰC
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO CHUYÊN ĐỀ HỌC PHẦN
HỌC MÁY NÂNG CAO
ĐỀ TI: BI TOÁN PHÂN LỚP NHỊ PHÂN SỬ DỤNG KỸ THUẬT HỌC MÁY SVM ĐỂ DỰ ĐOÁN KHẢ NĂNG SỐNG SÓT CỦA BỆNH NHÂN SUY TIM, KHẢ NĂNG MẮC BỆNH UNG THƯ VÚ V BỆNH
Trang 3LỜI CẢM ƠN
Trong thời gian và điều kiện nhất định, mặc dù đã rất cốgắng để hoàn thành đồ án với tất cả sự nỗ lực Tuy nhiên, dobước đầu đi vào thực tế, tìm hiểu và xây dựng báo cáo trongthời gian có hạn, với lượng kiến thức còn hạn chế, nhiều bỡngỡ, nên bài làm của em không thể tránh khỏi những thiếusót Em rất mong nhận được sự quan tâm, thông cảm vànhững đóng góp quý báu của các thầy cô và các bạn để đồ ánnày ngày càng hoàn thiện hơn
Em xin gửi lời cảm ơn đến giáo viên giảng dạy bộ môn Họcmáy nâng cao
thầy Vũ Văn Định Thầy đã tận tình chỉ dạy, quan sát và giúp
đỡ em từ những ngày đầu cũng như trong quá trình nghiên cứu
và học tập.e
Em xin chân thành cảm ơn!
Trang 4MỤC LỤC
LỜI CẢM ƠN 3
LỜI MỞ ĐẦU 6
CHƯƠNG 1 : TỔNG QUAN VỀ HỌC MÁY 7
Hình 1.1 Tổng quan về học máy 7
1.1 Khái niệm về học máy 7
Hình 1.2 : Machine learningeđược sử dụng mỗi lần ta chụp ảnh 8
1.2 Các phương pháp học máy 8
1.2.1 Học có giám sát 8
Hình 1.3: Học máy có giám sát 8
1.2.2 Học không giám sát 9
Hình 1.4: Học không giám sát 9
1.2.3 Học bán giám sát 10
Hình 1.5: Học bán giám sát 10
1.2.4 Học Củng Cố 10
Hình 1.6: Ví dụ Reinforcement Learning( Học củng cố) 11
1.3 Ứng dụng của học máy 11
1.3.1 Cảnh báo giao thông (trên ứng dụng Google Maps) 11
1.3.2 Mạng xã hội Facebook 12
Trang 51.3.3 Trợ lý cá nhân ảo (Virtual Personal Assistants) 12
CHƯƠNG 2 : PHÂN LỚP NHỊ PHÂN VỚI MÔ HÌNH SVM 14
2.1ePhân lớp nhị phân 14
2.2 Mô hình SVM 15
CHƯƠNG 3 : ỨNG DỤNG CỦA MÔ HÌNH SVM TRONG PHÂN LỚP NHỊ PHÂN 17
3.1 Mô tả bài toán 17
3.1.1 Bài toán dự đoán khả năng sống sót của bệnh nhân suy tim 17
3.1.2 Bài toán dự đoán khả năng mắc bệnh ung thư vú 17
3.1.3 Bài toán dự đoán khả năng mắc bệnh tim 18
3.2 Môi trường thử nghiệm 18
3.2.1 Giới thiệu Python 18
3.2.2 Đặc điểm củaePython: 19
3.2.3 Cài đặt Python 19
3.2.4 Cài đặt bộ thư viện 19
3.3 Xây dựng bộ dữ liệu 20
3.3.1 Bộ dữ liệu dự đoán khả năng sống sót của bênh nhận suy tim 20
3.3.2 Bộ dữ liệu dự đoán khả năng mắc bệnh ung thư vú 21
3.3.4 Bộ dữ liệu dự đoán khả năng mắc bệnh tiểu đường 22
3.3.5 Bộ dữ liệu dự đoán khả năng tử vong do viêm gan 24
Hình : Dữ liệu dự đoán khả năng mắc bệnh tiểu đường 25
3.4 Áp dụng thuật toán vào bài toán dự đoán suy tim 25
3.4.1 Cài đặt thuật toán 25
3.4.2 Kết quả 26
3.5 ÁP dụng thuật toán vào bài toán dự đoán ung thư vú 29
3.5.1 Cài đặt thuật toán 29
3.5.2 Kết quả 30
3.6 Áp dụng thuật toán vào bài toán dự đoán bệnh tim 32
3.6.1 Cài đặt thuật toán 32
3.6.2 Kết quả 33
KẾT LUẬN 35
Trang 6TÀI LIỆU THAM KHẢO 36
LỜI MỞ ĐẦU
Công nghệ ngày càng phổ biến và không ai có thể phủ nhận được tầm quan trọng và những hiệu quả mà nó đem lại cho cuộc sống chúng ta Bất kỳ trong lĩnh vực nào, sự góp mặt của trí tuệ nhân tạo sẽ giúp con người làm việc và hoàn thành tốt công việc hơn Và gần đây, một thuật ngữ “machinelearning” rất được nhiều người quan tâm.Thay vì phải code phần mềm với cách thức thủ công theo một bộ hướng dẫn cụ thể nhằm hoàn thành một nhiệm vụ đề ra thì máy sẽ tự “học hỏi” bằng cách sử dụng một lượng lớn dữ liệu cùng những thuật toán cho phép nó thực hiện các tác vụ
Đây là một lĩnh vực khoa học tuy không mới, nhưng cho thấy lĩnh vực trí tuệ nhân tạo đang ngày càng phát triển và cóthể tiến xa hơn trong tương lai Đồng thời, thời điểm này nó được xem là một lĩnh vực “nóng” và dành rất nhiều mối quan tâm để phát triển nó một cách mạnh mẽ, bùng nổ hơn
Hiện nay, việc quan tâm machine learning càng ngày càng tăng lên là vì nhờ có machine learning giúp gia tăng
Trang 7dung lượng lưu trữ các loại dữ liệu sẵn, việc xử lý tính toán có chi phí thấp và hiệu quả hơn rất nhiều.
Những điều trên được hiểu là nó có thể thực hiện tự động,nhanh chóng để tạo ra những mô hình cho phép phân tích các
dữ liệu có quy mô lớn hơn và phức tạp hơn đồng thời đưa ra những kết quả một cách nhanh và chính xác hơn
Chính sự hiệu quả trong công việc và các lợi ích vượt bậc
mà nó đem lại cho chúng ta khiến machine learning ngày càng được chú trọng và quan tâm nhiều hơn.Vì vậy chúng em chọn đề tài:” Giải bài toán phân lớp nhị phân sử dụng kỹ thuậthọc máy SVM để dự đoán khả năng sống sót của bệnh nhân suy tim, khả năng mắc bệnh ung thư vú và bệnh tim”
Trang 8CHƯƠNG 1 : TỔNG QUAN VỀ HỌC MÁY
Hình 1.1 Tổng quan về học máy 1.1 Khái niệm về học máy
Học máyehayemáy họcetrong tiếng Anh làeMachine learning,
viết tắt:eML
Học máy (ML)elà một công nghệ phát triển từ lĩnh vựcetrí tuệ nhân tạo Các thuật toán ML là các chương trình máy tính có khả năng học hỏi về cách hoàn thành các nhiệm vụ và cách cải thiện hiệu suất theo thời gian
ML vẫn đòi hỏi sự đánh giá của con người trong việc tìm hiểu
dữ liệu cơ sở và lựa chọn các kĩ thuật phù hợp để phân tích dữliệu Đồng thời, trước khi sử dụng, dữ liệu phải sạch, không có sai lệch và không có dữ liệu giả
Hầu hết chúng ta đều không biết rằng chúng ta đã và đang tương tác vớieMachine Learningemỗi ngày Mỗi khi ta Google một cái gì đó, nghe một bài hát hoặc thậm chí chụp ảnh là ta đang sử dụngemachine learning Nó giúp cho các hệ thống học hỏi và cải thiện từ các tương tác của người dùng Nó cũng có mặt trong những ứng dụng “xịn xò” hơn như các hệ thống phát hiện ung thư, điều chế thuốc vàexe tự lái
Trang 9
Hình 1.2 : Machine learningeđược sử dụng mỗi lần ta chụp ảnh
Các mô hình ML yêu cầu lượng dữ liệu đủ lớn để "huấn luyện"
và đánh giá mô hình Trước đây, các thuật toán ML thiếu quyền truy cập vào một lượng lớn dữ liệu cần thiết để mô hìnhhóa các mối quan hệ giữa các dữ liệu Sự tăng trưởng trongedữliệu lớne(big data) đã cung cấp các thuật toán ML với đủ dữ liệu
để cải thiện độ chính xác của mô hình và dự đoán
1.2 Các phương pháp học máy
1.2.1 Học có giám sát
Hình 1.3: Học máy có giám sát
Trang 10 Học có giám sát là một hướng tiếp cận của Máy học để 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 Học có giám sát mô phỏng việc con người học bằngcách đưa ra dự đoán của mình cho một câu hỏi, sau đó đốichiếu với đáp án Sau đó con người rút ra phương pháp để trảlời đúng không chỉ câu hỏi đó, mà cho những câu hỏi có dạngtương tự
Trong học có giám sát, các quan sát bắt buộc phải được dánnhãn trước Đây chính là một trong những nhược điểm củaphương pháp này, bởi vì không phải lúc nào việc dán nhãnchính xác cho quan sát cũng dễ dàng Tuy nhiên, việc quansát được dán nhãn cũng lại chính là ưu điểm của học có giámsát bởi vì một khi đã thu thập được một bộ dữ liệu lớn đượcdán nhãn chuẩn xác, thì việc huấn luyện trở nên dễ dàng hơnrất nhiều so với khi dữ liệu không được dán nhãn
Ví dụ với cách học của con người khi còn nhỏ Ta đưa bảng chữ cái cho một đứa trẻ và chỉ cho chúng đây là chữ A, đây là chữ B Sau một vài lần được dạy thì trẻ có thể nhận biết được đâu là chữ A, đâu là chữ B trong một cuốn sách mà chúng chưa nhìn thấy bao giờ
1.2.2 Học không giám sát
Trong thuật toán này chúng ta không biết được dữ liệu đầu rahayenhãnemà chỉ có dữ liệu đầu vào Thuật toán Học khônggiám sát dựa vào cấu trúc của dữ liệu để thực hiện một côngviệc nào đó, ví dụ như phân nhóm hoặc giảm số chiều của dữliệu để thuận tiện trong việc lưu trữ và tính toán
Một cách toán học, Học không giám sát là khi chúng ta chỉ có
dữ liệu vàoeXemà không biếtenhãneY tương ứng
Những thuật toán loại này được gọi là Học không giám sát vìkhông giống như Học có giám sát, chúng ta không biết câu trảlời chính xác cho mỗi dữ liệu đầu vào Giống như khi ta học,không có thầy cô giáo nào chỉ cho ta biết đó là chữ A hay chữ
B Cụmekhông giám sáteđược đặt tên theo nghĩa này
Trang 11 Nằm ở đâu đó giữa học tập được giám sát và không giám sát,
vì chúng sử dụng cả dữ liệu được gắn nhãn và không dán nhãn để đào tạo - thường là một lượng nhỏ dữ liệu có nhãn vàmột lượng lớn dữ liệu không được dán nhãn.eCác hệ thống sử dụng phương pháp này có thể cải thiện đáng kể độ chính xác của việc học.eThông thường, việc học bán giám sát được chọn khi dữ liệu được dán nhãn được yêu cầu đòi hỏi tài nguyên có
kỹ năng và có liên quan để đào tạo/học hỏi từ nó.eNếu không,
dữ liệu được gắn nhãn thường không yêu cầu tài nguyên bổ sung
Trang 12Hình 1.5: Học bán
giám sát
1.2.4 Học Củng Cố
Reinforcement learning là các bài toán giúp cho một hệ
thống tự động xác định hành vi dựa trên hoàn cảnh để đạtđược lợi ích cao nhất (maximizing the performance) Hiện tại,Reinforcement learning chủ yếu được áp dụng vào Lý ThuyếtTrò Chơi (Game Theory), các thuật toán cần xác định nước đitiếp theo để đạt được điểm số cao nhất
Hình 1.6: Ví dụ Reinforcement Learning( Học củng cố)
Trang 131.3 Ứng dụng của học máy
1.3.1 Cảnh báo giao thông (trên ứng dụng Google Maps)
Hình 1.7: Cảnh báo giao thông (trên ứng dụng Google Maps)
Giờ đây, Google Maps có lẽ là ứng dụng được sử dụng với tần suất nhiều nhất mỗi khi bạn tham gia giao thông Đặc biệt khicác ứng dụng khác về di chuyển như Grab, Bee được áp dụng rộng rãi, đồng nghĩa Google Maps được sử dụng liên tục để chỉ đường cho nhà cung cấp dịch vụ hay người sử dụng dịch
vụ Những thông tin về quãng đường tối ưu, thời gian di chuyển nhanh nhấtecũng được phân tích cùng lúc trên Google Maps
Thực tế, dữ liệu lịch sử của tuyến đường đó đã được thu thập theo thời gian và một số dữ liệu có từ các nguồn khác Mọi người sử dụng bản đồ đều cung cấp vị trí, tốc độ trung bình, tuyến đường Những thông tin này Google thu thập và tổng hợp thành Dữ liệu lớn về lưu lượng truy cập, thông qua các thuật toán phân tích phức tap trên Machine Learning, những thông tin này trở nên có nghĩa, chúng giúp Google dự đoán lưu lượng sắp tới và điều chỉnh tuyến đường của bạn theo cách tối ưu nhất
Trang 141.3.2 Mạng xã hội Facebook
Một trong những ứng dụng phổ biến nhất của Machine
Learning là Đề xuất gắn thẻ bạn bè tự động trên Facebook hoặc bất kỳ nền tảng truyền thông xã hội nào khác Facebook
sử dụng tính năng nhận diện khuôn mặt và nhận dạng hình ảnh để tự động tìm thấy khuôn mặt của người phù hợp với Cơ
sở dữ liệu của họ và do đó đề nghị người dùng gắn thẻ người
đó dựa trên DeepFace
Dự án DeepFace của Facebook thực hiện nhiệm vụ nhận diện khuôn mặt và xác định đối tượng cụ thể trong ảnh Nó cũng cung cấp Thẻ Alt (Thẻ thay thế) cho hình ảnh đã được tải lên trên facebook.e
Hình 1.8: Đề xuất gắn thẻ , nhận dạng của ML
1.3.3 Trợ lý cá nhân ảo (Virtual Personal Assistants)e
Trợ lý cá nhân ảo hỗ trợ tìm kiếm thông tin hữu ích, khi được yêu cầu qua văn bản hoặc giọng nói Một số ứng dụng chính của Machine Learning ở đây là:
Nhận dạng giọng nói
Chuyển đổi lời nói thành văn bản
Xử lý ngôn ngữ tự nhiên
Chuyển đổi văn bản thành giọng nói
Tất cả những gì bạn cần làm là hỏi một câu hỏi đơn giản như Lịch trình của tôi vào ngày mai là gì? hoặc các chuyến bay có sẵn sắp tới cho chuyến công tác của tôi Để trả lời, trợ lý cá
Trang 15nhân của bạn tìm kiếm thông tin hoặc nhớ lại các truy vấn liên quan của bạn để thu thập thông tin Gần đây, trợ lý cá nhân đang được sử dụng trong Chatbots đang được triển khai trong các ứng dụng đặt hàng thực phẩm khác nhau, các trangweb đào tạo trực tuyến và cả trong các ứng dụng đi lại.
CHƯƠNG 2 : PHÂN LỚP NHỊ PHÂN VỚI MÔ HÌNH SVM
Trang 16 Kiểm tra y khoa xem một bệnh nhân có bệnh nào đó hay không (thuộc tính để phân loại là căn bệnh đó)
Quản lý chất lượng trong nhà máy, ví dụ: xác định xem một sản phẩm làm ra là đủ tốt để bán chưa, hay nên loại bỏ nó (thuộc tính để phân loại là tính đủ tốt)
Xác định xem một trang hay một bài báo có nên nằm trong tập kết quả của một truy vấn hay không (thuộc tính là độ liên quan của bài báo - thường là sự hiện diện của một số từ nào
đó trong bài báo đó)
Đánh giá bộ phân lớp nhị phân: Để đánh giá độ hiệu quả của một xét nghiệm y khoa, người ta thường sử dụng các khái niệm độ nhạy và đặc trưng Giả sử chúng ta xét nghiệm xem một vài người nào đó có bệnh hay không
Một số người có bệnh, và kết quả xét nghiệm là dương tính (positive) Họ được gọi là các dương tính đúng
Một số người có bệnh, nhưng kết quả xét nghiệm âm tính (negative) Họ được gọi là các âm tính sai
Một số không có bệnh, và kết quả xét nghiệm cũng là âm tính Họ được gọi là các âm tính đúng
Một số không có bệnh, nhưng kết quả xét nghiệm lại là dươngtính Họ được gọi là các dương tính sai
Tổng số người dương tính đúng, âm tính đúng, dương tính sai,
âm tính sai chiếm 100% tổng số người được xét nghiệm
Độ nhạy (sensitivity) là tỉ lệ của số người bị bệnh được xác định đúng là có bệnh trên tổng số người bị bệnh, nghĩa là (dương tính đúng)/(dương tính đúng + âm tính sai) Nó có thể được coi là "xác suất xét nghiệm cho kết quả dương tính khi người được xét nghiệm có bị bệnh" Độ nhạy càng cao, càng ítkhả năng bệnh không được phát hiện (hoặc, trong trường hợp quản lý chất lượng ở nhà máy, càng ít sản phẩm lỗi được đưa
ra thị trường)
Đặc trưng (specificity) là tỉ lệ của số người không bị bệnh có kết quả xét nghiệm âm tính trên tổng số người không có bệnh(thực), nghĩa là (âm tính đúng)/(âm tính đúng + dương tính sai) Nó còn được coi là xác suất xét nghiệm cho kết quả âm
Trang 17tính đối với người không có bệnh Độ đặc trưng càng cao, càng ít người mạnh khỏe được coi là bị bệnh (hoặc trong trường hợp nhà máy, càng ít tiền bị tốn phí do loại bỏ các sản phẩm chất lượng tốt thay vì đem bán chúng).
Về mặt lý thuyết, độ nhạy và đặc trưng là độc lập, tức là cả hai đều có thể đạt đến 100% Trong thực tế, chúng ta phải đánh đổi cái này để được cái kia - cái này tốt lên thì cái kia xấu đi, không thể đạt được cả hai
Một điểm cần chú ý nữa, là độ nhạy và đặc trưng là độc lập với tỉ lệ giữa số cá thể âm tính và số cá thể dương tính Tuy nhiên, giá trị của chúng thì lại phụ thuộc vào tổng số cá thể kiểm tra (population) Ví dụ: kiểm tra có kết quả: độ nhạy 99%, đặc trưng 99%
Giả sử số người kiểm tra là 2000 người, trong đó 1000 có bệnh và 1000 khỏe mạnh Như vậy, ta phát hiện đúng 990 người dương tính đúng, 990 người âm tính đúng, và 10 âm tính sai, 10 dương tính sai Cuối cùng, tỉ lệ dự đoán trúng là 99% cho cả kết quả dương tính và âm tính Như vậy, hệ thốngnày được coi là khá đáng tin cậy
Giả sử số người kiểm tra là 2000 người, trong đó chỉ có 100 là thực sự bị bệnh Giả sử ta có 99 dương tính đúng, 1 âm tính sai, 1881 âm tính đúng, và 19 dương tính sai Trong số 19+99người xét nghiệm dương tính, chỉ có 99 người thực sự có bệnh
2.2 Mô hình SVM
Khái niệm : SVM (Support Vector Machine) là 1 thuật toán học máy thuộc nhóm Supervised Learning (học có giám sát) được sử dụng trong các bài toán phân lớp dữ liệu
(classification) hay hồi qui (Regression)
SVM là 1 thuật toán phân loại nhị phân, SVM nhận dữ liệu vào
và phân loại chúng vào hai lớp khác nhau Với 1 bộ các ví dụ luyện tập thuộc hai thể loại cho trước, thuật toán luyện tập SVM xây dựng 1 mô hình SVM để phân loại các ví dụ khác vàohai thể loại đó
Phương trình tuyến tính của SVM có dạng:
Trong đó w thuộc Rn là vector hệ số ứng với các chiều củavector b là hệ số tự do trong không gian
Trang 18hai chiều thì được gọi là đường thẳng,không gian 3 chiều làmặt phẳng.
Công thức của sai số dự đoán:
Trong đó, e là sai số dự đoán, y là giá trị thực và ŷ là giá trị dự
đoán (hay còn gọi là y_pred) Hàm bình phương để tránh phương trình có thể ra kết quả âm và vì e là sai số, nên giá trị này càng nhỏ càng tốt
thử:
Trong đó TP, TN là dự đoán đúng
FP, FN là dự đoán sai
Precision - bao nhiêu cái đúng được lấy ra
Recall - bao nhiêu cái được lấy ra là đúng
Trang 19CHƯƠNG 3 : ỨNG DỤNG CỦA MÔ HÌNH SVM TRONG PHÂN
LỚP NHỊ PHÂN
3.1 Mô tả bài toán
3.1.1 Bài toán dự đoán khả năng sống sót của bệnh nhân suy tim
3.1.1.1 Mô tả
Theo thống kê, các bệnh về tim mạch (CVDs) làenguyên nhân gây tử vong số 1 trên toàn cầue, cướp điesinh mạng củaekhoảnge17,9 triệu người mỗi năme, chiếme31% tổng
số ca tử vongqtrên toàn thế giớie Những người mắc bệnh
tim mạch hoặc những người có nguy cơ tim mạch cao (do sự hiện diện của một hoặc nhiều yếu tố nguy cơ như tăng huyết
áp, tiểu đường, tăng lipid máu hoặc bệnh đã có sẵn) cần đượcephát hiệnevà quản lýesớm
Suy tim là một sự kiện phổ biến do CVDs gây ra Việc sử dụng mô hình học máy có thể giúp ích rất nhiều trong việc dự đoán tỷ lệ tử vong do suy tim
Bài toán Dự đoán khả năng sống sót của bệnh nhân suytim đưa ra tất cả các thông tin, chỉ số của người mắc bệnhsuy tim, từ đó làm căn cứ chuẩn đoán khả năng tỷ vong caohay thấp của người bệnh
- Giá trị input: Thông tin, số liệu sức khỏe của người mắcbệnh suy tim
- Giá trị output: Kết quả người mắc bệnh suy tim có tỷ lệ tửvong cao hay không
3.1.1.2 Yêu cầu bài toán
- Lấy dữ liệu về thông tin, chỉ số của người bệnh
- Trích chọn đặc trưng từ tập dữ liệu lấy được