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

Đề t i thuật toán hồi quy tuyến tính ứng dụng v o dự Đoán bệnh nhân bị bệnh ung thư phổid

27 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

Tiêu đề Thuật Toán Hồi Quy Tuyến Tính Ứng Dụng Vào Dự Đoán Bệnh Nhân Bị Bệnh Ung Thư Phổi
Tác giả Trần Văn Hoàn, Nguyễn Đặng Tuấn Minh, Đinh Việt Hùng
Người hướng dẫn Nguyễn Thị Thanh Tân
Trường học Trường Đại Học Điện Lực
Chuyên ngành Công Nghệ Thông Tin
Thể loại Báo Cáo Chuyên Đề
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 27
Dung lượng 2,05 MB

Nội dung

Trong bài tập lớn này, chúng em tìm hiểu và trình bày về một kỹ thuật trongkhai phá dữ liệu để phân lớp dữ liệu cũng như tổng quan về khai phá dữ liệu, với đề tài “ thuật toán hồi quy tu

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

MÔN KHAI PHÁ DỮ LIỆU

ĐỀ T I: THUẬT TOÁN HỒI QUY TUYẾN TÍNH ỨNG DỤNG V O DỰ ĐOÁN BỆNH NHÂN BỊ BỆNH UNG THƯ PHỔI

Sinh viên thực hiện : TRẦN VĂN HO N

NGUYỄN ĐẶNG TUẤN MINH ĐINH VIỆT HÙNG

Giảng viên hướng dẫn : NGUYỄN THỊ THANH TÂN

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

Trang 2

PHIẾU CHẤM ĐIỂM

Sinh viên thực hiện:

Trang 3

LỜI NÓI ĐẦU

Trong thời buổi hiện đại ngày nay, công nghệ thông tin cũng như những ứngdụng của nó không ngừng phát triển, lượng thông tin và cơ sở dữ liệu được thuthập và lưu trữ cũng tích lũy ngày một nhiều lên Con người cũng vì thế mà cần cóthông tin với tốc độ nhanh nhất để đưa ra quyết định dựa trên lượng dữ liệu khổng

lồ đã có Các phương pháp quản trị và khai thác cơ sở dữ liệu truyền thống ngàycàng không đáp ứng được thực tế, vì thế, một khuynh hướng kỹ thuật mới là Kỹthuật phát hiện tri thức và khai phá dữ liệu nhanh chóng được phát triển

Khai phá dữ liệu đã và đang được nghiên cứu, ứng dụng trong nhiều lĩnhvựckhác nhau ở các nước trên thế giới Ở Việt Nam, kỹ thuật này đang được nghiêncứu và dần đưa vào ứng dụng Khai phá dữ liệu là một bước trong quytrình pháthiện tri thức Hiện nay, mọi người không ngừng tìm tòi các kỹ thuật để thực hiệnkhai phá dữ liệu một cách nhanh nhất và có được kết quả tốt nhất

Trong bài tập lớn này, chúng em tìm hiểu và trình bày về một kỹ thuật trongkhai phá dữ liệu để phân lớp dữ liệu cũng như tổng quan về khai phá dữ liệu, với

đề tài “ thuật toán hồi quy tuyến tính ứng dụng vào dự đoán bệnh nhân bị ung thưphổi” Trong quá trình làm bài tập lớn này, chúng em xin gửi lời cảm ơn đến côgiáo Nguyễn Thị Thanh Tân Cô đã rất tận tình hướng dẫn chi tiết cho chúng em,những kiến thứcthầy cung cấp rất hữu ích Chúng em rất mong nhận được nhữnggóp ý từ cô Chúng em xin chân thành cảm ơn!

Trang 4

CHƯƠNG 1: TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU1.1 Khai phá dữ liệu là gì?

Khai phá dữ liệu ( Data mining ) là một tập hợp các kỹ thuật được sử dụng để

tự động khai thác và tìm ra các mối quan hệ lẫn nhau của dữ liệu trong một tập hợp

dữ liệu khổng lồ và phức tạp, đồng thời cũng tìm ra các mẫu tiềm ẩn trong tập dữliệu đó

1.2 Quá trình khám phá tri thức

Quá trình khám phá tri thức là một chuỗi lặp gồm các bước:

B1: Làm sạch dữ liệu (data cleaning): Loại bỏ nhiễu và các dữ liệu không cầnthiết

B2: Tích hợp dữ liệu: (data integration): quá trình hợp nhất dữ liệu thànhnhững kho dữ liệu sau khi đã làm sạch và tiền xử lý

B3: Chọn lựa dữ liệu (data selection): trích chọn dữ liệu từ những kho dữ liệu

và sau đó chuyển đổi về dạng thích hợp cho quá trình khai thác tri thức Quá trìnhnày bao gồm cả việc xử lý với dữ liệu nhiễu, dữ liệu không đầy đủ, v.v

B4: Chuyển đổi dữ liệu: Các dữ liệu được chuyển đổi sang các dạng phù hợpcho quá trình xử lý

B5: Khai phá dữ liệu (data mining): Là một trong các bước quan trọng nhất,trong đó sử d'ng những phương pháp thông minh để chắt lọc ra những mẫu dữ liệu.B6: Đánh giá mẫu (Pattern evaluation): Quá trình đánh giá các kết quả tìmđược thông qua các độ đo nào đó

B7: Biểu diễn tri thức (knowledge presentation): Quá trình này sử dụng các kỹthuật để biểu diễn và thể hiện trực quan cho người dùng

Trang 5

Hình 1.2: Quá trình khám phá tri thức

1.3 Ứng dụng của khai phá dữ liệu

Khai phá dữ liệu có nhiều ứng dụng trong thực tiễn, có thể liệt kê ra các ứngdụng như sau:

- Trong kinh doanh

- Trong tài chính và tiếp thị bán hang

- Trong thương mại

- Trong bảo hiểm

- Trong khoa học và y sinh học

- Trong điều khiển và viễn thông

1.4 Tiền xử lý dữ liệu

Quá trình xử lý dữ liệu thô/gốc (raw/original data) nhằm cải thiện chất lượngdữliệu (quality of the data) và từ đó cải thiện chất lượng của kết quả khai phá Quátrình tiền xử lý dữ liệu, đầu tiên phải nắm được dạng dữ liệu, thuộc tính, mô tả của

Trang 6

dữ liệu khai thác Sau đó tiếp hành 4 giai đoạn chính: làm sạch, tích hợp, biếnđổi,thu giảm dữ liệu.

1.4.3 Tích hợp dữ liệu

Tích hợp dữ liệu là quá trình trộn dữ liệu từ các nguồn khác nhau vào mộtkho

dữ liệu có sẵn cho quá trình khai phá dữ liệu

Trang 7

Yêu cầu chung đối với tích hợp là giảm thiếu (tránh được là tốt nhất) các dưthừa và các mâu thuẫn Giúp cải thiện mâu thuẫn của quá trình khai phá dữ liệu vànâng cao chất lượng của các kết quả tri thức thu được.

1.4.4 Biến đổi dữ liệu

Biến đổi dữ liệu là việc chuyển toàn bộ tập giá trị của một thuộc tính sangmộttập các giá trị thay thế, sao cho mỗi giá trị cũ tương ứng với một trong các giá trịmới

1.4.5 Thu giảm dữ liệu (data reduction)

Một kho dữ liệu lớn có thể chứa lượng dữ liệu lên đến terabytes sẽ làm choquátrình khai phá dữ liệu chạy rất mất thời gian, do đó nên thu giảm dữ liệu.Việc thugiảm dữ liệu sẽ thu được một biểu diễn thu gọn, mà nó vẫn sinh ra cùng (hoặc xấpxỉ) các kết quả khai phá như tập dữ liệu ban đầu

1.5 Các kỹ thuật khai phá dữ liệu

1.5.1 Kỹ thuật khai phá luật kế hợp

Trong khai phá dữ liệu, mục đích của luật kết hợp là tìm ra các mối quanhệgiữa các đối tượng trong khối lượng lớn dữ liệu Để khai phá luật kết hợp có rấtnhiều thuật toán, nhưng dùng phổ biến nhất là thuật toán Apriori Đây là thuật toánkhai phá tập phổ biến trong dữ liệu giao dịch để phát hiện các luật kết hợp dạngkhẳng định nhị phân và được sử dụng để xác định, tìm ra các luật kết hợp trong dữliệu giao dịch Ngoài ra, còn có các thuật toán FP-growth, thuật toán Partition,…

1.5.2 Kỹ thuật phân lớp

Trong kỹ thuật phân lớp gồm có các thuật toán:

Trang 8

- Phân lớp bằng cây quyết định (giải thuật ID3, J48): phân lớp dữ liệu dựatrênviệc lập nên cây quyết định, nhìn vào cây quyết định cĩ thể ra quyết định dữliệuthuộc phân lớp nào.

- Phân lớp dựa trên xác suất (Nạve Bayesian): dựa trên việc giả định cácthuộctính độc lập mạnh với nhau qua việc sử dụng định lý Bayes

- Phân lớp dựa trên khoảng cách (giải thuật K – láng giềng): làm như lánggiềnglàm, dữ liệu sẽ được phân vào lớp của k đối tượng gần với dữ liệu đĩ nhất

- Phân lớp bằng SVM: phân lớp dữ liệu dựa trên việc tìm ra một siêu phẳng“tốtnhất” để tách các lớp dữ liệu trên khơng gian nhiều chiều hơn

1.5.3 Kỹ thuật phân cụm

Phân cụm dữ liệu là cách phân bố các đối tượng dữ liệu vào các nhĩm/ cụmsaocho các đối tượng trong một cụm thì giống nhau hơn các phần tử khác cụm,gồm cĩmột số phương pháp phân cụm cơ bản như:

+ Phân cụm bằng phương pháp K-mean: tìm ra tâm của các cụm mà khoảngcáchcủa tâm đĩ đến các đối tượng, dữ liệu khác là ngắn

+ Phân cụm trên đồ thị Ngồi ra, khai phá dữ liệu cĩ rất nhiều kỹ thuật, nhưngđây là những kỹ thuật cơ bản và đơn giản trong khai phá dữ liệu mà chúng emđược tìm hiểu

1.5.4 Hồi quy tuyến tính

Phương pháp hồi quy được sử dụng để đưa ra các dự báo dựa trên các dữ liệuđang tồn tại bằng các áp dụng các cơng thức Một hàm sẽ được học ra từ bộ dữ liệuhiện cĩ bằng cách sử dụng các kỹ thuật hồi quy và tuyến tính từ việc thống kê Sau

đĩ, dữ liệu mới sẽ căn cứ vào hàm này để đưa ra những dự đốn

Trang 9

CHƯƠNG 2: THUẬT TOÁN HỒI QUY TUYẾN TÍNH

2.1 Giới thiệu

Hồi quy tuyến tính là một phương pháp thống kê để hồi quy dữ liệu với biếnphụ thuộc có giá trị liên tục trong khi các biến độc lập có thể có một trong hai giátrị liên tục hoặc là giá trị phân loại Hồi quy tuyến tính là một trong hai dạng lớncủa học có giám sát (supervised learning) dựa trên tập dữ liệu mẫu

Nói cách khác "Hồi quy tuyến tính" là một phương pháp để dự đoán biến phụthuộc (Y) dựa trên giá trị của biến độc lập (X) Nó có thể được sử dụng cho cáctrường hợp chúng ta muốn dự đoán một số lượng liên tục Ví dụ, dự đoán giaothông ở một cửa hàng bán lẻ, dự đoán thời gian người dùng dừng lại một trang nào

đó hoặc số trang đã truy cập vào một website nào đó v.v

2.2 Phân tích toán học

2.2.1 Dạng của Linear Regression

Hồi quy tuyến tính có phương trình đạng :

F(x) = w + w0 1x1 + w + … + w (1)2x2 nxnTrong đó, w1, w2, wn, w0 là các hằng số, w còn được gọi là bias hay sai số Mối0quan hệ giữa y f(x) bên trên là một mối quan hệ tuyến tính (linear) Bài toán chúng

ta đang làm là một bài toán thuộc loại regression Bài toán đi tìm các hệ số tối ưu {

w w w w1, 2, n, 0 } chính vì vậy được gọi là bài toán Linear Regression (Hồi quy tuyếntính)

Trong phương trình (1) nếu chúng ta đặt w = [w0, w1, w2, wn]T là một vecter (cột)

hệ số cần phải tối ưu và = [1, x , x , x ] (đọc là x bar trong tiếng Anh) là vector1 2 n(hàng) dữ liệu đầu vào mở rộng Số 1 ở đầu được thêm vào để phép tính đơn giản

Trang 10

hơn và thuận tiện cho việc tính toán Khi đó, phương trình (1) có thể được viết lạidưới dạng:

y ( trong đó là một vecter hàng) 2.2.2 Hàm mất mát

Máy học từ giá trị trung bình của một hàm mất mát Đây là một phương phápđánh giá độ hiệu quả của một thuật toán nào đó trên bộ dữ liệu cho trước Nếu kếtquả dự đoán chênh lệch quá nhiều so với kết quả thực tế, hàm mất mát sẽ là một sốrất lớn Điều tương tự xảy ra với tất cả các cặp (xi, y ), i = 1, 2, 3, …, N với N là sốilượng dữ liệu quan sát được Để hàm mất mát nhỏ nhất khi đó tổng sai số là nhỏnhất tương đương với việc tìm để hàm số sau đạt giá trị nhỏ nhất:w

J(w) = (2)Hàm số J(w) được gọi là hàm mất mát (loss function) của bài toán LinearRegression Chúng ta luôn mong muốn rằng sự mất mát (sai số) là nhỏ nhất, điều

đó đồng nghĩa với việc tìm vector hệ số sao cho giá trị của hàm mất mát nàyw

càng nhỏ càng tốt

Trước khi đi tìm lời giải, chúng ta đơn giản hóa phép toán trong phương trìnhhàm mất mát (2) Đặt là một vector cột chứa tất cả các output của training data; =

là ma trận dữ liệu đầu vào (mở rộng) mà mỗi hàng của nó là một điểm dữ liệu

2.2.3 Tìm nghiệm của mô hình hồi quy tuyến tính

Để tìm nghiệm cho một bài toán tối ưu chúng ta thường giải phương trình đạohàm

J(w) = bằng 0

Đạo hàm theo w của hàm mất mát là:

Trang 11

Phương trình đạo hàm bằng 0 tương đương với:

Đặt và b ( ) khi đó ta có :A.W = b

(với I là ma trận đơn vị)

là nghiệm của mô hình hồi quy tuyến tính

Trên thực tế A có thể không khả nghịch nên ta sẽ dùng ma trận giả nghịch đảonên ta có W = hay W = Đây chính là nghiệm tổng quát của hồi quy tuyến tính

2.2.4 Mức độ lỗi của mô hình hồi quy tuyến tính

Ta có công thức tính mức độ lỗi của mô hình như sau :

MSE = Với mức độ lỗi của mô hình cho ta biết mức độ học của mô hình

CHƯƠNG 3: ÁP DỤNG THUẬT TOÁN

3.1 Giới thiệu Google colab

Trang 12

3.1.1 Google colab là gì?

Google Colab là một sản phẩm từ Google Research và nó cho phép chạy cácdòng code python thông qua các trình duyệt, đặc biệt phù hợp với Data analysis,machine learning và giáo dục Colab không cần yêu cầu cài đặt hay cấu hình máytính phải cao, mọi thứ đều có thể chạy thông qua trình duyệt, bạn có thể sử dụng tàinguyên máy tính từ CPU tốc độ cao và cả GPUs và cả TPUs đều được cung cấpcho bạn

Colab cung cấp nhiều loại GPU, thường là Nvidia K80s, T4s, P4s and P100s,tuy nhiên người dùng không thể chọn loại GPU trong Colab và các loại GPU trongColab thay đổi theo thời gian Vì đây là dịch vụ miễn phí, nên Colab sẽ có nhữngthứ tự ưu tiên trong việc sử dụng tài nguyên hệ thống, cũng như giới hạn thời gianmỗi lần sử dụng, thời gian sử dụng tối đa lên tới 12 giờ

Hình 1: Cấu hình phần cứng Google colab cung cấp

3.1.2 Tại sao nên sử dụng Google colab

Các thư viện được cài đặt sẵn: Phân phối Anaconda của Jupyter Notebook cómột số dữ liệu đã được cài đặt sẵn như Numpy, Pandas, Matplotlib Ngoài ra phầnmềm Google Colab cũng cung cấp nhiều thư viện machine learning được cài đặtsẵn như Keras, Pytorch, Tensorflow nên có thể sử dụng thuận tiện hơn

Trang 13

Được lưu trên đám mây: Mọi thứ trên hệ thống sẽ được lưu trữ trong cục bộmáy khi bạn lựa chọn Jupyter Notebook làm môi trường làm việc do đó nếu bạn làngười đề cao quyền riêng tư thì đây chắc chắn là một tính năng ưa thích của bạn.Nếu người dùng muốn máy tính của mình có thể truy cập được với tất cả thiết

bị đang đăng nhập Google, thì phần mềm Google Colab là lựa chọn hàng đầu chobạn Vì tất cả Google Colab Notebook đều được lưu trong tài khoản Google Drive

nó giống như các tệp Google Docs và Google Sheets

Sử dụng GPU và TPU miễn phí: Chúng ta không cần phải suy nghĩ nhiều, khilựa chọn Google Colab thay vì Jupyter Notebook Vì, Google Research có thể chophép bạn sử dụng GPU và TPU chuyên dụng của họ cho các dự án machinelearning cá nhân của bạn Đối với một số dự án, gia tốc GPU và TPU sẽ tạo ra sựkhác biệt rất lớn ngay cả đối với một số dự án nhỏ

3.1.3 Các tính năng của Google colab

Google Colab cung cấp một số tính năng có thể kể đến như:

Người dùng có thể tạo mục lục dựa trên các heading viết bằng ngôn ngữmarkdown qua đó bạn sẽ dễ dàng cấu trúc Notebook và làm việc của mình Bạncũng có thể thu gọn các phần nội dung khi soạn thảo một cách thuận tiện nhất

Có thể thêm hình ảnh, biểu mẫu dễ dàng với markdown giúp bạn trình bày báocáo hoặc làm dashboard cực tiện lợi Thậm chí người dùng cũng có thể ẩn các dòngcode để trông Notebook gọn gàng hơn với tính năng biểu mẫu

Kết nối dễ dàng với Google Drive hay là Google Sheets để bắt tay vào phântích dữ liệu “trên mây” hoàn toàn

Chạy Python trên Cloud hay Local Runtime cũng đều cho trải nghiệm tốt,người dùng vẫn tận dụng được tính năng tuyệt vời của Google Colab khi chạy với

Trang 14

Python trên Local Runtime Trong khi đó vẫn không bị Google tự động xóa dữ liệukhi kết thúc phiên làm việc như khi chạy trên Cloud.

Tự động lưu lịch sử chỉnh sửa thành các phiên bản mới giúp bạn dễ dàng khôiphục lại phiên bản gần nhất mỗi khi xảy ra lỗi

Cho phép tìm kiếm và chèn các đoạn dữ liệu được soạn thảo sẵn trong cácTemplate vào Notebook Tính năng này được đánh giá khá cao bởi bạn không cầnphải mở thêm nhiều file lưu trữ để tìm lại các đoạn code mẫu mình đã biết khi cần Tạo dashboard viết bằng Python và có thể chia sẻ với team dễ dàng nếu cầntương tự như Google Data Studio nhưng nó lại linh hoạt và mạnh mẽ hơn rất nhiều

3.2 Mô tả bài toán

Trong y sinh học, thường có rất nhiều yếu tố khác nhau dẫn đến một hiệntượng Ví dụ như bệnh ung thư phổi không chỉ do hút thuốc lá mà còn do nhiềuyếu tố khác như di truyền, chủng tộc, tiền sử mắc bệnh tim mạch, tuổi, giới, BMI,

ho, tức ngực,…

Vì vậy cần phải có mô hình hồi quy tuyến tính đa biến Trong đề tài tài nàychúng em chỉ lưu ý đến các biến số như: Giới tính, tuổi, hút thuốc, khó thở, ho, đaungực

3.3 Mô tả dữ liệu

Bộ dữ liệu xây dựng là một bộ dữ liệu được xây dựng bởi một bệnh viện trongquá trình khảo sát ung thư phổi ở 1500 bệnh nhân khác nhau Bộ dữ liệu gồm có 7thuộc tính bao gồm: Giới tính, tuổi, tình trạng hút thuốc, khó thở, ho, đau tức ngực,ung thư phổi

Bộ dữ liệu sẽ chia thành 2 phần trong đó 80% dữ liệu được làm bộ dữ liệu huấnluyện mô hình, 20% còn lại làm bộ dữ liệu thử nghiệm độ chính xác của mô hình

Trang 15

Dữ liệu về ung thư phổi được đặt làm biến mục tiêu, những bộ dữ liệu còn lại baogồm ( Giới tính, tuổi, tình trạng hút thuốc, khó thở, ho, đau tức ngực, ung thư phổi) làm biến giải thích.

3.4 Áp dụng thuật toán và bài toán

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

from sklearn.model_selection import train_test_split

#Xây dựng hàm tìm hệ số hồi quy

def HoiQuyTT(X_train, Y_train):

Trang 16

#Trả về hệ số hồi quy

W = np.dot(At, b)

return W

#Xây dựng hàm dự đoán với tập dữ liệu test

def KiemTra(W, X_test):

_X_test = np.concatenate((np.ones((X_test.shape[0], 1)), X_test), axis=1) Y_pred = np.dot(_X_test, W)

return Y_pred

#Xây dựng hàm kiểm tra mức độ sai của mô hình

def SaiSoMoHinh(Y_pred, Y_test):

return np.average((Y_pred - Y_test)**2)

3.4.2 Thực nghiệm với thư viện scikit-learn của python

3.4.2.1 Giới thiệu thư viện scikit-learn

Scikit-learn (viết tắt là sklearn) là một thư viện mã nguồn mở dành cho họcmáy một ngành trong trí tuệ nhân tạo, rất mạnh mẽ và thông dụng với cộng đồnPython, được thiết kế trên nền NumPy và SciPy Scikit-learn chứa hầu hết cácthuật toán machine learning hiện đại nhất, đi kèm với documentations, luôn đượccập nhật Trong sklearn có class sklearn.linear_model.LinearRegression có cácphương thức liên quan tới hồi quy tuyến tính

3.4.2.2 Các phương pháp và các biến của class LinearRegession

Ngày đăng: 22/01/2025, 15:09

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

TÀI LIỆU LIÊN QUAN