Hình 2.12: Biểu đồ minh họa số bệnh nhân sử dụng thuốc theo giới tính.... LỜI MỞ ĐẦU Việc phân loại thuốc là một việc rất cần thiết mà các nhà thuốc cũng như các bệnh viện đều phải thực
Trang 1
TRƯỜNG ĐẠI HỌC ĐIỆN LỰC
Zz DAI HOC DIEN LUC
ELECTRIC POWER UNIVERSITY
KHOA CONG NGHE THONG TIN BAO CAO CHUYEN DE HOC PHAN MON
HOC MAY NANG CAO
SỬ DỤNG CÁC THUẬT TOÁN TRONG MÔ HÌNH HỌC MAY VAO VIEC KIEM TRA PHAN LOẠI THUỐC
Giáng viên hướng dẫn : NGUYÊN HÀ NAM
TRẢN QUANG ANH PHAM XUAN BACH
Hà nội, thủng 12 năm 2024
Trang 2PHIEU CHAM DIEM
Sinh viên thực hiện:
Hoàng Bích Diệp
Giảng viên châm 2:
Trang 3
II C00 i8no:aadađdđdaiaadadiiiiảdaảaăậaa.Ỷ£Ỷ£Ỷ 4
IS 9:-Áàa:aaii 4 ISico in nh .aAa 5
VN W2 0 0 NT rẻ: 13
PP §: 1.0.0.0 V.IaddđdidiaaiadadaddaidiẳddẢadaadẢŸÁỀẢẢÝỶÝỶÝẢ 14
2.2.2.6 Biến loại thuốc
2.3 Phân chia dữ liệu thuộc tính chính và thuộc tính điều kiện 22 2S S11 11151 8115551525555 x5 16 2.3.1 Biến tuơi vs loại thuốc (age-drug) - ác 2122122121211 121202222 rre 16 2.3.2 Biến giới tính vs loại thuốc (sex-drug) s2 221 11221121112112122 21221 rreg 17 2.3.3 Biến huyết áp vs loại thuốc(bp-drug) s2 2 2222211 1121121122212121222 1e 19 2.3.4 Tỉ lệ chuyển hĩa natri và kali vs loại thuốc (na_to_ka-drug) - 22 s2 22 se se 21 2.3.5 Biến cholesterol vs loại thuốc(cholesterol-drug) s- 2s 2221222121121 2 1E 1c 22 2.3.6 Tỉ lệ natri và kali vs huyết áp và loại thuốc (Na_to_K BP — Drug) 55c: 23 2.4 Phân chia dữ liệu thành train và test bằng train_ test split 5 S2 221222 2 sxxe 24 2.5 Hoc (phan lop, phan Cwm) 24 2.5.1 Tao chire nang mdi: Na to K Bigger Than 15 dé phan loai thuốc Y - 5s: 24
Trang 4"h9 na 26 2.5.4 Random ÍOrest - 1 2.1 211 11211121111121 112110112111 01111 011101111111 11 HH HH HE khe 27 2.5.5 Tính tỉ lệ thành công dữ liệu train và f€Sf 12 S HS SH HH 011011110111 11 tre 28
2.5.6 Biểu diễn bằng đồ họa „vẽ mô hình 52 222 E1 1121111121121 2n 30
I;400D0.aaaaaađúđdđỶÝÝ 32 TAI LIEU THAM KHẢO 2 2 2S 2n 5 2151211512151 2n 2n 2n re 33
Trang 5DANH MỤC HÌNH ẢNH
Hình 1.1: Mô tả ý tưởng thuật toán trên đồ thị tọa độ quan sát
5 Hình 2.1: Các thư viện sử dụng trong bai Hinh 2.2: Cac dt liéu duoc truyén vao 0 co co QC Q Lnn nnn nn kg nh ni 8 Hình 23: Tong quá các dit liệu được truyền vào bai Hình 24: Biểu đề biểu điển tuổi các bệnh nhân đã đến thăm phòng Hinh 25 Biểu đồ biểu diễn giới tính của các bệnh Hinh 26: Biêu đô biêu dién bien huyệt áp các bệnh nhân Hình 2 7: Biểu đề biểu diễn "biến cholesterol của bệnh nhân
Hành 2.8: Biểu đồ biểu điễn diễn d lệ trao đổi chất của các bệnh nhân
tình 29 Biểu đồ biểu diễn diễn thuốc số lượng dùng
tình 210: Biểu đồ biểu diễn điễn tần suất dùng thuốc theo tuôi
th 211: Danh sách số bệnh nhân sử dụng thuốc theo giới tính
Hình 2.12: Biểu đồ minh họa số bệnh nhân sử dụng thuốc theo giới tính
tinh 2.13: Danh sách số bệnh nhân sử dụng thuốc theo nồng độ huyết áp
tình 2.14: Biểu đỗ minh họa số bệnh nhân sử dụng thuốc theo nồng độ huyết áp
tinh 2.15: Biểu đồ minh họa số bệnh nhân sử dụng thuốc phân theo tỉ lệ na to ka
21 Hình 2.16: Danh sách lượng bệnh nhân sử dung thuéc theo néng d6 cholesterol 22
Hình 2.17: Biểu đồ minh họa lượng bệnh nhân sử dụng thuốc theo nồng độ cholesterol si 22
Hình 2.18: Biểu đề minh ‘hoa ti lệ trao đổi natr_ sang x kali | vol ¡ huyết ái áp của : nhóm từngloạithuốc 23 Hinh 2.19: Phan ‘chia dữ liệu train, test đồng thời chuyển dữ liệu thành die ligu 2 CIB ooo ccc cece cee cee cee cue cen see see vee cu tenstestesetcrvertevstesatttevertevseeris enter 24
Trang 6Hình 2.20: Số lượng bệnh nhân vừa có ions cholesterol cao vừa có tỉ lệ lệ chuyên hoa natri sang kali cao hon 15 ¬ 24 Hinh 2.21: Danh sach thuốc có người i ding c có ti lệ chuyên hóa nati $ sang @ kali c cao o hon 15
so VỚI tỐng số người đÙng 2ò 22222 vn nh nh nh nh Hà nhờn 25
Hình 2.22: Biểu đồ minh hoa thuốc có người dụng có tí lệ chuyên hóa natri sang kali cao hơn l5 so với tông số người dùng
28
Hình 2.27: Đánh giá độ chính xác dự đoán của RF trên 2 dữ liệu train va test sau khi lam THOT Đa 28 Hình 2.2§: Đánh a độ chính xác dữ liệu cho 2 đữ liệu train và test sau khi phân
Trang 7LỜI MỞ ĐẦU
Việc phân loại thuốc là một việc rất cần thiết mà các nhà thuốc cũng như các bệnh viện đều phải thực hiện hàng ngày để đảm bảo chắc chắn số lượng thuốc cũng như loại thuốc cần thiết cung cấp cho người bệnh nhưng việc này thường yêu cầu mất rất nhiều thời gian và sự chính xác cũng như kinh nghiệm trong nghè đề có thê phân loại một cách hiệu quả vì vậy yêu cầu cần đến một hệ thống giúp đỡ được sĩ trong công việc này càng ngày cảng cao hơn
Để giải quyết thách thức này, chúng em đã nghiên cứu và ứng dụng đã áp dụng kỹ thuật phân tích khác nhau nhằm tôi ưu hóa việc phân loại này Qua việc kết hợp các thuật toán khác nhau, ta có thể xây dựng mô hình phân loại hiệu quả và linh hoạt Điều này không chỉ giúp việc phân loại trở nên nhanh chóng hơn tiết kiệm thời gian một cách hiệu quả mà còn tránh việc gây ra sai sót nhiều hơn so với khi làm bằng thủ công
Qua những phân tích trên, chúng em quyết định chọn đề tài: “Sử dụng các phương thức khác nhau đề phân loại thuốc” để làm báo cáo chuyên đề cuối môn
Chúng em xin chân thành gửi lời cảm ơn tới các thầy cô giáo trong Trường Đại học Điện Lực nói chung và các thầy cô giáo trong Khoa Công nghệ thông tin nói riêng đã tận tình giảng dạy, truyền đạt cho chủng em những kiến thức cũng như kinh nghiệm quý báu trong suốt quá trình học Đặc biệt, em gửi lời cảm ơn đến thầy Nguyễn Hà Nam đã tận tình theo sát giúp đỡ, trực tiếp chỉ bảo, hướng dẫn trong suốt quá trình nghiên cứu và học tập của chúng em
Trang 8CHƯƠNG T1: GIỚI THIỆU CÁC THUẬT TOÁN ĐƯỢC ÁP DỤNG
1.1 Train Test Split
Train test split (Train test split) la một kỹ thuật phố biến được sử dụng trong máy học đề tách dữ liệu thành các bộ đào tạo và kiểm tra Quá trình này rất quan trọng trong quá trình
mô hình hóa dữ liệu, vì nó cho phép chúng ta đánh giá hiệu suất của mô hình trên đữ liệu không nhìn thấy Nó cũng giúp ngăn chặn quá mức, xảy ra khi một mô hình thực hiện tốt trên dữ liệu đào tạo nhưng không tổng quát hóa cho đữ liệu mới
1.2 KNN
- Viết tắt của K-Nearest Neighbors, là một trong những thuật toán học máy đơn giản nhất nhưng vô cùng hiệu quá Nó thuộc loại thuật toán học có giảm sát, nghĩa là no hoc tu dir liệu đã được gán nhãn đề dự đoán nhãn cho dữ liệu mới
1.3 Random Forest
- Là một phương pháp thống kê mô hình hoa bang may (machine learning statistic) ding
để phục vụ các mục đích phân loại, tính hồi quy và các nhiệm vụ khác bằng cách xây dựng nhiều cây quyết định (Decision tree) Random Forest cho thấy hiệu quả hơn so với thuật toán phân loại thường được sử dụng vì có khả năng tìm ra thuộc tính nào quan trọng hơn so với những thuộc tính khác Trên thực tế, nó còn có thể chỉ ra rằng một số thuộc tính là không có tác dụng trong cây quyết định
1.4 SVM Classiier
- Là một thuật toán giám sát, nó có thê sử dụng cho cả việc phân loại hoặc đệ quy Tuy nhiên nó được sử dụng chủ yếu cho việc phân loại Trong thuật toán này, chúng ta vẽ đồi thị đữ liệu là các điểm trong n chiều (ở đây n là số lượng các tính năng bạn có) với giá trị của mỗi tính năng sẽ là một phần liên kết Sau đó chúng ta thực hiện tìm "đường bay" phân chia các lớp Đường bay - nó chỉ hiểu đơn giản là 1 đường thằng có thể phân chia
các lớp ra thành hai phần riêng biệt.
Trang 9
x Hình 1.1: Mô tả ý tưởng thuật toán trên đồ thị tọa độ quan sát
Support Vectors hiéu mét cach don gian la cac đối tượng trên đồ thị tọa độ quan sát, Support Vector Machine là một biên giới dé chia hai lớp tốt nhất
1.6 Label Encoding
Mã hóa nhãn là một hình thức xử lý trước dữ liệu được sử dụng trong khai thác đữ liệu và học máy Đó là một quá trình chuyển đôi các nhãn phi số thành các giá trị số Quá trình này còn được gọi là chuyền đổi đữ liệu phân loại thành dữ liệu số và rất hữu ích cho một loạt các tác vụ thao tác đữ liệu như phân loại và phân cụm Nó cũng có thê được sử dụng
đề chuân hóa đữ liệu để sử dụng trong mạng lưới thần kinh nhân tạo
Mã hóa nhãn thường được sử dụng khi mã hóa các biến đầu vào phân loại dé tao dau ra dang số Điều này được thực hiện bằng cách gán cho mỗi danh mục từ biến đầu vào nhãn
số nguyên riêng của nó Quy trình mã hóa đi từ nhãn số thấp nhất đến nhãn số cao nhất với nhãn thấp nhất đại điện cho đanh mục cơ sở hoặc thường xuyên nhất Kích thước của nhãn số không phản ánh sự so sánh định tính giữa các danh mục khác nhau mà hoàn toàn
mã hóa thông tin danh mục thành một giá trị 36 Day là lý do tại sao nhiều người thực hành coi mã hóa nhãn là một dạng mã hóa gây tôn thất tối thiêu
Trang 10Mã hóa nhãn cũng có thê cải thiện hiệu suất thời gian chạy tông thể bằng nhiều thuật toán
so với mã hóa một lần Vì có ít giá trị tiêu đề hơn cho cột đữ liệu có chiều rộng đơn nên
mã hóa nhãn nhanh hơn và ít tốn bộ nhớ hơn so với mã hóa một nóng Ngoài ra, một số thuật toán có thể không mang lại kết quả thuận lợi khi sử dụng mã hóa một lần, trong khi
mã hóa nhãn cho phép thuật toán không bị ảnh hưởng và sử dụng nhãn đề thê hiện các danh mục
1.7 Mô hình hồi quy tuyến tính (Linear Regression)
Hồi quy tuyến tính là một thuật toán học máy cơ bản được sử dụng đề mô hình hóa mối quan hệ giữa một biến đầu vào (hoặc nhiều biến đầu vào) và một biến đầu ra liên tục
Chúng ta xem xét mô hình hồi quy tuyến tính đa biến, phương trình của nó có đạng:
Trang 11CHƯƠNG 2: ỨNG DỤNG VÀO GIẢI QUYÉT BÀI TOÁN
2.1 Giới thiệu bài toán
Tp dữ liệu là file mở rộng CSV Trong tệp dữ liệu này có 6 cột và 2000 hàng gồm:
Age: Tuổi của từng bệnh nhân
Sex: Giới tính của từng bệnh nhân ý
* BP : Chí số huyết áp của bệnh nhân
* Cholesterol: Chi s6 cholesterol trong máu
Na to_k: Chí số nồng độ tỉ lệ chuyên hóa natri sang kali trong máu của bệnh nhân
° Drug: Loai thuốc mà bệnh nhân được bác sĩ khuyên dùng
2.2 Giải quyết bài toán
2.2.1 Nhập xuất dữ liệu dataset
Chúng ta sé str dung 1 s6 thu viện cần thiết đề xử lí và phân tích trực quan đữ liệu:
Trang 12v Œ UntrledOipynb-Colaboratoy X +
« 3 Ơ Sh lab hgoogl (QcBIiMC \
qa BCBR ct print (os-path.join(dirname, filenare))
& Real estate
df.isna( ) su!
Age
P Cholesterol
Na_to_K
Drug dtype: int64
Trang 13
Q CB & Next steps: Generate code with ¢f | @€ View recommended plots
? BH Sear Ø2 a ©® & + © c œ ‹9 8 ~ We oe FHM sero
Hinh 2.3: Tong quat cac đữ liệu được truyền vào
2.2.2 Áp dung mé hinh vao bién déi dir ligu
Ta xây dựng mô hình machine learing hồi quy tuyến tính(Linear Regression) đề dự đoán giá bán dựa trên giá trị các cột khac Bay gid chung ta sé str dung histplot() đề vẽ các biêu
đồ của các biến sau từ đó đề phân loại các mô hình cần ứng dựng cho biến đó:
Trang 142.2.2.1 Biến tuôi bệnh nhân (AGE)
Hình 2.4: Biểu đồ biểu diễn biến tuổi các bệnh nhân đã đến thăm phòng khám
=> Ta thay được bệnh nhân chủ yếu từ L5 đến 74 tuổi
Trang 152.2.2.2 Biến giới tính (SEX)
FP jae KQcBiMG er Oo TFT LOB
Hình 2.5: Biêu đồ biêu diễn biến giới tính của các bệnh nhân
- Dữ liệu ghi nhận 36 bệnh nhân nam là 104 và bệnh nhân nữ là 96
=> Do số liệu này của phòng khám tương đối xấp xi nhau mà đây lại là một biến mang tính phân loại nên ta sẽ sử dụng Label Encoding vào báng trên nhằm tránh sai sót dữ liệu
11
Trang 162.2.2.3 Biến huyết áp của các bệnh nhân (BP)
© - Số bệnh nhân có huyết áp cao là 77 bệnh nhân
© - Số bệnh nhân có huyết áp thấp là 64 bệnh nhân
© - Số bệnh nhân có chỉ số huyết áp bình thường là 59 bệnh nhân
Trang 173 BE Search @au@ur+r Oczna AMO we FHM sero
Hình 2.7: Biểu đồ biểu dién bién cholesterol các bệnh nhân đã đến thăm phòng khám
- Qua bảng ta thấy số người có cholesterol cao là 103 bệnh nhân và 97 bệnh nhân có cholesterol thấp
=> Đây là một biến mang tính phân loại nhưng lại có số liệu khá xấp xỉ nhau giữa 2 loại nên ta sẽ sử đụng Label Encoding vào bảng trên nhằm tránh sai sót đữ liệu
13
Trang 18+ mg MyUrve = Mean Na_to_K: 16.084485
Trang 192.2.2.6 Biến loại thuốc
2 _ & Search @au@ureOocnrna ~~ MO me FH w „0O $
Hình 2.9: Biéu đồ biểu diễn biến thuốc các bệnh nhân đã đến thăm phòng khám
Theo biêu đồ ta thấy có 91 bệnh nhân dùng thuốc Y 54 bệnh nhân dùng thuốc X 23 bệnh nhân dùng thuốc A 16 bệnh nhân dùng thuốc C và 16 bệnh nhân dùng thuốc B
=> Vì biến loại thuốc là I biến cần phân tích nhưng data lại ko rõ ràng nên t sẽ sử dụng
kỹ thuật xác thực chéo K-Fold bằng Scikit-Learn trong Python để xấp xỉ một kết quả chuẩn xác nhất
Trang 202.3 Phân chia dữ liệu thuộc tính chính và thuộc tính điều kiện
2.3.1 Biến tuổi vs loại thuốc (age-drug)
pit titie( “Age == Urug™)y
2 BH Senet @au2@uet Oceana AWeo uw eHow Jno & Hinh 2.10: Biéu dé tan suat sir dụng các loại thuốc của các bệnh nhân phân theo tuổi bệnh
nhân
=> Từ biểu đồ ta thay thuốc b sử dụng cho bệnh nhân hơn 50 tuôi trở lên còn thuốc a thường được dùng cho bệnh nhân đưới 50 tuôi
1ó
Trang 212.3.2 Biến giới tính vs loại thuốc (sex-drug)
o
~ © é£ sex Drug = df.groupby(["Orug","Sex"]).size().reset_index(name = "Count”)