1. Trang chủ
  2. » Luận Văn - Báo Cáo

Đề ti bi 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 bệnh nhân mắc bệnh tim

24 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 24
Dung lượng 3,68 MB

Nội dung

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 NHẬP MÔN HỌC MÁY ĐỀ TI: BI 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 BỆNH NHÂN

Trang 1

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 NHẬP MÔN HỌC MÁY

ĐỀ TI: BI 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 BỆNH NHÂN

MẮC BỆNH TIM NOTE : Chọn gì cố gắng hiểu là được khả năng cao hay hỏi về lý thuyết

nhiều hơn

PHIẾU CHẤM ĐIỂM

Sinh viên thực hiện:

Sinh viên thực hiện :

Giảng viên hướng dẫn : HONG VĂN QUÝ

Chuyên ngành : CÔNG NGHỆ THÔNG TIN

Hà Nội, tháng 5 năm 2023

Trang 3

MỤC LỤC

LỜI MỞ ĐẦU

CHƯƠNG 1 : TỔNG QUAN VỀ HỌC MÁY

1.1 Khái niệm về học máy 1

1.2 Các phương pháp học máy 2

1.2.1 Học có giám sát (Supervised Learning) 2

1.2.2 Học không giám sát(Unsupervised learning) 3

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

1.3.1 Cảnh báo giao thông (trên ứng dụng Google Maps) 4

1.3.2 Mạng xã hội Facebook 5

1.3.3Trợ lý cá nhân ảo (Virtual Personal Assistants) 5

CHƯƠNG 2: PHÂN LỚP NHỊ PHÂN VỚI MÔ HÌNH SVM

2.1 Phân lớp nhị phân 7

2.2 Mô hình SVM 8

CHƯƠ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 10

3.1.1 Bài toán dự đoán khả năng mắc bệnh tim 10

3.2 Môi trường thử nghiệm 11

3.2.1 Giới thiệu Python 11

3.2.2 Đặc điểm của Python: 11

3.2.3Cài đặt Python 11

3.3 Xây dựng bộ dữ liệu 12

3.3.1 Bộ dữ liệu dự đoán khả năng mắc bệnh tim 14

3.4 Áp dụng thuật toán vào bài toán dự đoán khả năng mắc bệnh tim 15

3.4.1 Cài đặt thuật toán 15

3 2 Kết quả 16

KẾT LUẬN

TI LIỆU THAM KHẢO

Trang 4

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ữ “machine learning” 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 dung 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ậ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 tim”

Trang 5

CHƯƠNG 1 : TỔNG QUAN VỀ HỌC MÁY 1.1 Khái niệm về học máy

 Học máy hay máy học trong tiếng Anh là Machine learning, viết tắt: ML.

 Học máy (ML) là một công nghệ phát triển từ lĩnh vực trí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ới Machine Learning mỗ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ụng machine 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à xe tự lái

Hình1.2:Machinelearningđượ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ình hóa các mối quan hệ giữa các dữ liệu Sự tăng trưởng trong dữliệulớn (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

Trang 6

1.2 Các phương pháp học máy

1.2.1 Học có giám sát (Supervised Learning)

Hình1.3:Họcmáycógiámsát

 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ấnluyện" máy tính dựa trên những quan sát có dán nhãn Học có giámsát mô phỏng việc con người học bằng cách đưa ra dự đoán của mìnhcho một câu hỏi, sau đó đối chiếu với đáp án Sau đó con người rút raphương pháp để trả lời đúng không chỉ câu hỏi đó, mà cho những câuhỏi có dạng tương tự

 Trong học có giám sát, các quan sát bắt buộc phải được dán nhãntrước Đây chính là một trong những nhược điểm của phương phápnà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átcũng dễ dàng 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 học có giám sát 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

 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(Unsupervised learning)

Trang 7

 Trong thuật toán này chúng ta không biết được dữ liệu đầu

ra hay nhãn mà chỉ có dữ liệu đầu vào Thuật toán Học không giám sátdựa vào cấu trúc của dữ liệu để thực hiện một công việ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ệclư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ệuvào X mà không biết nhãn Y 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ônggiố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 chomỗ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ụm khônggiámsát được đặt têntheo nghĩa này

Hình1.4:Họckhônggiámsát

Trang 8

 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àyGoogle 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.

1.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

Trang 9

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

Hình1.6:Đềxuấtgắnthẻ,nhậndạngcủaML

1.3.3 Trợ lý cá nhân ảo (Virtual Personal Assistants)

 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á nhâ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

Trang 10

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 trang web đào tạo trực tuyến và cả trong các ứng dụng đi lại.

Trang 11

CHƯƠNG 2: PHÂN LỚP NHỊ PHÂN VỚI MÔ HÌNH SVM

2.1 Phân lớp nhị phân

 Khái niệm : Phân lớp nhị phân(Binaryclassification) là nhiệm vụ phận loại cácphầntử của một tậphợp các đối tượng ra thành 2 nhóm dựa trên cơ sở là chúng có một thuộc tính nào đó hay không (hay còn gọi là tiêu chí) Một số nhiệm vụ phân loại nhị phân điển hình:

 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ẩmlà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đặ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ương tí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 ít khả 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

Trang 12

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tí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 trongtrườ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ấtlượng tốt thay vì đem bán chúng)

 Về mặt lý thuyết, độnhạyđặ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đặ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

âmtính Như vậy, hệ thống nà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+99 ngườ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ộcnhó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ào hai 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ủa vector

b là hệ số tự do trong không gian hai chiều thìđược gọi là đường thẳng,không gian 3 chiều là mặt phẳng

Trang 13

 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

 Precision - bao nhiêu cái đúng được lấy ra

 Recall - bao nhiêu cái được lấy ra là đúng

Trang 14

CHƯƠ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 mắc bệnh tim

3.1.1.1 Mô tả

Tổ chức Y tế Thế giới đã ước tính có 12 triệu ca tử vong trên toàn thế giới, hàng năm do các bệnh về tim mạch Một nửa số ca tử vong ở Hoa Kỳ và các nước phát triển khác là do bệnh tim mạch Tiên lượng sớm các bệnh tim mạch có thể giúp đưa ra quyết định thay đổi lối sống ở những bệnh nhân có nguy cơ cao và do đó làm giảm các biến chứng Nghiên cứu này dự định xác định chính xác các yếu tố nguy cơ / liên quan nhất của bệnh tim cũng như dự đoán nguy cơ tổng thể Mục tiêu phân loại là để dự đoán liệu bệnh nhân có nguy cơ mắc bệnh mạch vành trong tương lai (CHD) 10 năm hay không Bộ dữ liệu cung cấp thông tin của bệnh nhân Nó bao gồm hơn 4.000 bản ghi và 15 thuộc tính

 Input: Thông tin, số liệu sức khỏe của người chuẩn đoán

 Output: Người chuẩn đoán có mắc bệnh tim 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

- Huấn luyện tập dữ liệu

- Chuẩn đoán khả năng mắc bệnh của người bệnh

Trang 15

3.2 Môi trường thử nghiệm

3.2.1 Giới thiệu Python

Python là ngôn ngữ lập trình được sử dụng rất phổ biến ngày nay để phát triển nhiều loại ứng dụng phần mềm khác nhau như các chương trình chạy trên desktop, server, lập trình các ứng dụng web Ngoài ra Python cũng

là ngôn ngữ ưa thích trong ngành khoa học về dữ liệu (data science) cũng như

là ngôn ngữ phổ biến để xây dựng các chương trình trí tuệ nhân tạo trong đó bao gồm machine learning

3.2.2 Đ ặc điểm của Python:

 Python là ngôn ngữ dễ học: Ngôn ngữ Python có cú pháp đơn giản, rõ ràng, sử dụng một số lượng không nhiều các từ khoá, do đó Python được đánh giá là một ngôn ngữ lập trình thân thiện với người mới học

 Python là ngôn ngữ dễ hiểu: Mã lệnh (source code hay đơn giản là code) viết bằng ngôn ngữ Python dễ đọc và dễ hiểu Ngay cả trường hợp bạn chưa biết gì về Python bạn cũng có thể suy đoán được ý nghĩa của từng dòng lệnh trong source code

 Python có tương thích cao (highly portable): Chương trình phần mềm viết bằng ngôn ngữ Python có thể được chạy trên nhiều nền tảng hệ điều hành khác nhau bao gồm Windows, Mac OSX và Linux

Ngày đăng: 26/12/2024, 17:09

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w