ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG VY ĐẠI NGHĨA PHÁT HIỆN MỐI QUAN HỆ TRONG CƠ SỞ DỮ LIỆU VÀ ỨNG DỤNG TRONG Y HỌC LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH Thái Nguyên - 2015 Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.vn c ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG VY ĐẠI NGHĨA PHÁT HIỆN MỐI QUAN HỆ TRONG CƠ SỞ DỮ LIỆU VÀ ỨNG DỤNG TRONG Y HỌC Chuyên ngành: Khoa học máy tính Mã số: 60 48 01 LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS. Đỗ Trung Tuấn Thái Nguyên - 2015 Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.vn c i Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.vn c ii Lời cảm ơn Trước tiên, tôi xin được gửi lời cảm ơn đến tất cả quý thầy cô đã giảng dạy trong chương trình Cao học do Trường Đại học Công nghệ thông tin và truyền thông tổ chức, những người đã truyền đạt cho tôi những kiến thức hữu ích về khoa học máy tính làm cơ sở cho tôi thực hiện tốt luận văn này. Tôi xin chân thành cảm ơn PGS. Đỗ Trung Tuấn đã tận tình hướng dẫn cho tôi trong thời gian thực hiện luận văn. Mặc dù trong quá trình thực hiện luận văn có giai đoạn không được thuận lợi nhưng những gì Thầy đã hướng dẫn, chỉ bảo đã cho tôi nhiều kinh nghiệm trong thời gian thực hiện đề tài. Tôi cũng xin gửi lời cảm ơn đến tất cả các Thầy Cô đang làm việc tại Phòng khám đa khoa trường Cao đẳng Y tế Phú Thọ đã tận tình giúp đỡ trong việc thu thập thông tin, lấy số liệu về bệnh và thuốc làm cơ sở dữ liệu cho luận văn. Sau cùng tôi xin gửi lời biết ơn sâu sắc đến các anh chị trong lớp và gia đình đã luôn tạo điều kiện tốt nhất cho tôi trong suốt quá trình học cũng như thực hiện luận văn. Do thời gian có hạn và kinh nghiệm nghiên cứu khoa học chưa nhiều nên luận văn còn nhiều thiếu sót, rất mong nhận được ý kiến góp ý của Thầy/Cô và các anh chị học viên. Phú Thọ, tháng 7 năm 2015 Học viên Vy Đại Nghĩa Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.vn c iii Lời cam đoan Tôi cam đoan những kế t quả trong luâ ̣n văn là của viê ̣c tìm hiể u, có trích dẫn và tham chiế u đế n các nguồn tư liê ̣u tin cậy. Nội dung luận văn không sao chép từ các kế t quả của các luâ ̣n văn, luận án khác. Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.vn c iv MỤC LỤC Lời cảm ơn . i Lời cam đoan . iii MỤC LỤC . iv DANH MỤC CÁC TỪ VIẾT TẮT. vi DANH MỤC CÁC BẢNG, HÌNH VẼ .vii MỞ ĐẦU . 6 TỔNG QUAN VỀ PHÁT HIỆN MỐI QUAN HỆ GIỮA CÁC DỮ LIỆU TRONG CƠ SỞ DỮ LIỆU . Mục tiêu của việc phát hiện mối quan hê ̣ giữa các dữ liệu . Các bước chính của quá trình khai phá tri thức . Các dạng dữ liệu có thể khai phá . Các hướng tiếp cận chính trong khai phá dữ liệu . Phân loại và ứng dụng các hệ thống khai phá dữ liệu . Phân loại các hệ thống khai phá dữ liệu . Ứng dụng của khai phá dữ liệu . Kết luận chương . 13 MỘT SỐ MỐI QUAN HỆ DỮ LIỆU ĐƯỢC PHÁT HIỆN THÔNG QUA NGÔN NGỮ TRUY VẤN . Luật kết hợp . Các khái niệm cơ bản. Bài toán khai phá luật kết hợp . Khai thác tập phổ biến dựa trên ngôn ngữ truy vấn . Ngôn ngữ truy vấn . Tìm tập phổ biến bằng K-way join . 20 Số hóa bởi Trung tâm Học liệu – ĐHTN http://www. Kết quả thử nghiệm 3 phương pháp đếm độ hỗ trợ. Phân tích các cải tiến của thuật toán k-way join . Phát sinh luật kết hợp. Rút ngọn luật kết hợp. Kết luận chương . 51 ỨNG DỤNG TRONG TÍNH TOÁN THỬ NGHIỆM . Bài toán tìm luật kết hợp dạng X Y . Bài toán tìm độ hỗ trợ và độ tin cậy của luật . Bài toán đánh giá độ tin cậy của luật theo ngưỡng . Giải pháp giúp thực hiện các bài toán . Chương trình thử nghiệm . Cơ sở dữ liệu của bài toán. Kết quả khai phá dữ liệu khi thực hiện các bài toán . Kết luận chương . 68 TÀI LIỆU THAM KHẢO . 76 Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.vn c vi DANH MỤC CÁC TỪ VIẾT TẮT ADO Active X Data Object ANSI Chuẩn quốc gia Hoa Kì Client/ server Khách/ chủ confidence Độ tin cậy CSDL Cơ sở dữ liệu DB2 Tên hệ quản trị cơ sở dữ liệu của IBM DBMS Hệ quản trị cơ sở dữ liệu HQTCSDL Hệ quản trị cơ sở dữ liệu ISO Tổ chức tiêu chuẩn hóa quốc tế MOLAP multidimensional OLAP OLAP Online Analysis Processing ORACLE Tên công ty ORACLE, tên hệ quản trị cơ sở dữ liệu ROLAP Relational OLAP SQL Ngôn ngữ truy vấn support Độ hỗ trợ, trợ giúp Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.vn c vii DANH MỤC CÁC BẢNG, HÌNH VẼ Hình. Thí dụ về xử lí dữ liệu y tế tại trường Cao đẳng Y tế Phú Thọ. 1: Các bước trong quá trình khai phá tri thức. 2: Các kiến trúc khai phá tích hợp với cơ sở dữ liệu . 3: Kiến trúc gắn kết lỏng . 4: Kiến trúc thủ tục nội và hàm do người dùng định nghĩa . 5: Kiến trúc dựa trên truy vấn SQL . 1: Minh họa luật kết hợp . 1: Cấu trúc bảng ban đầu . 2: Cấu trúc bảng dùng để khai khác . 2: Tiến trình phát sinh tập ứng viên Ck . 2: Đếm độ hỗ trợ bằng cách tiếp cận K-way Join. 3: Biểu đồ hình cây cho Sub Query Qi . 4: Đồ thị thời gian thực thi của 3 thuật toán khi minsup=10% và D=100000 . 5: Đồ thị thời gian thực thi 3 thuật toán khi minsup=10% và D=50000 . 7: Đồ thị thời gian thực thi của 3 thuật toán khi minsup=10% và D=10000 . 6: Đồ thị tổng hợp thời gian thực thi của 3 thuật toán khi minsup lớn . 7: Đồ thị thời gian thực thi 3 thuật toán khi minsup=5% và D=100000 . 8: Đồ thị thời gian thực thi 3 thuật toán khi minsup=5% và D=50000 . 9: Đồ thị thời gian thực thi 3 thuật toán khi minsup=5% và D=10000 . 10: Đồ thị tổng hợp thời gian thực thi 3 thuật toán khi minsup trung bình . 11: Đồ thị thời gian thực thi 3 thuật toán khi minsup = 1% và D = 100000. 12: Đồ thị thời gian thực thi 3 thuật toán khi minsup = 1% và D= 50000 . 13: Đồ thị thời gian thực thi của 3 thuật toán khi minsup =1% và D=10000 . 32 Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.vn c viii Hình 2. 154: Đồ thị tổng hợp thời gian thực thi của 3 thuật toán khi minsup nhỏ . 3: Cơ sở dữ liệu ban đầu D . 4: Cơ sở dữ liệu sau khi chuyển đổi . 8: Kết quả Comb3 . 11: Kết quả Comb4. Cấu trúc bảng dữ liệu ban đầu . Cấu trúc bảng dùng để khai phá dữ liệu . Mẫu đơn thuốc của Phòng khám đa khoa Trường cao đẳng Y Phú Thọ . Minh họa cấu trúc dữ liệu ban đầu. Cấu trúc dữ liệu dùng để khai phá . Tính độ hỗ trợ và độ tin cậy của luật {Cefalecin} => {Paracetamol} . Tính độ hỗ trợ và độ tin cậy của một luật {Decolgen}=>{Vitamin C} . Đánh giá độ tin cậy của luật {Decolgen}=>{Vitamin B1} . Đánh giá độ tin cậy của luật {Cefalecin}=>{Vitamin C}. 65 Hình PL1: Minh họa dữ liệu đầu vào . 68 Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.vn c 1 MỞ ĐẦU 1. Lý do chọn đề tài Theo [1] người ta thấy với sự phát triển rất mạnh mẽ về công nghệ lưu trữ, và khả năng đáp ứng của máy tính đã cho phép ta lưu trữ và xử lý khối lượng dữ liệu khổng lồ. Hầu hết các tổ chức, cơ quan đang lưu trữ dữ liệu theo thời gian. Kết quả là, sau một thời gian dài, lượng dữ liệu ngày càng nhiều. Tuy nhiên, những nhà quản lý lại chưa chú tâm lắm về giá trị tiềm ẩn bên trong khối dữ liệu này. Những tri thức có ích ẩn bên trong đó không dễ dàng để lấy hay rút trích ra. Ngày này, tính cạnh trạnh trên thị trường rất cao, đòi hỏi người ra quyết định cần phải đưa ra quyết định, chính sách một cách thận trọng, chính xác và hiệu quả. Những thông tin để giúp cho họ đạt hiệu quả hơn trong việc ra quyết định có thể được phân tích, rút trích từ những dữ liệu lưu trữ hiện tại (dữ liệu thô). Khai phá dữ liệu sẽ giúp ta giải quyết được vấn đề trên. Công việc khai phá sẽ phân tích, rút trích một cách tự động thông tin trong khối dữ liệu lớn nhằm tóm tắt dữ liệu theo cách mới để tiện cho người dùng khai phá, tìm ra các mẫu mới, những mối liên hệ và những dự đoán, xu hướng thông tin trong tương lai. Về cơ bản, khai phá dữ liệu là về xử lý dữ liệu và nhận biết các mẫu và các xu hướng trong thông tin đó để bạn có thể quyết định hoặc đánh giá. Các nguyên tắc khai phá dữ liệu đã được dùng nhiều năm rồi, nhưng với sự ra đời của big data (dữ liệu lớn), nó lại càng phổ biến hơn. Những nhu cầu hướng kinh doanh này đã thay đổi cách lấy ra và thống kê dữ liệu đơn giản sang việc khai phá dữ liệu phức tạp hơn. Vấn đề kinh doanh hướng tới việc xem xét dữ liệu để giúp xây dựng một mô hình để mô tả các thông tin mà cuối cuộc sẽ dẫn đến việc tạo ra báo cáo kết quả. Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.vn c 2 Các yêu cầu về nghiệp vụ y tế Xác định nguồn dữ liệu y tế Xác định khuôn dạng dữ liệu Lặp lại Xây dựng mô hình dữ liệu y tế Xây dựng c u t c dữ liệu y tế, phù hợp với hỏi dữ liệu Phát hiện t i thức, mối quan hệ giữa dữ liệu y tế Hình. Thí dụ về xử lí dữ liệu y tế tại trường Cao đẳng Y tế Phú Thọ Quá trình phân tích dữ liệu, khám phá dữ liệu và xây dựng mô hình dữ liệu thường lặp lại khi bạn tập trung vào và nhận ra các thông tin khác nhau để bạn có thể trích ra. Bạn cũng phải hiểu cách thiết lập quan hệ, ánh xạ, kết hợp và phân cụm thông tin đó với dữ liệu khác để tạo ra kết quả.
## Tổng quan nghiên cứu
Trong bối cảnh phát triển mạnh mẽ của công nghệ lưu trữ và xử lý dữ liệu, các tổ chức, cơ quan đã tích lũy một lượng dữ liệu khổng lồ theo thời gian. Tuy nhiên, giá trị tiềm ẩn trong các kho dữ liệu này chưa được khai thác triệt để, đặc biệt trong lĩnh vực y học, nơi mà việc phân tích dữ liệu có thể hỗ trợ đắc lực cho công tác chẩn đoán và điều trị. Luận văn tập trung nghiên cứu phát hiện mối quan hệ trong cơ sở dữ liệu y tế thông qua kỹ thuật khai phá dữ liệu, đặc biệt là áp dụng thuật toán K-way join trên ngôn ngữ truy vấn SQL để phát hiện các luật kết hợp giữa các loại thuốc và bệnh lý khác nhau.
Mục tiêu nghiên cứu là phát triển và tối ưu hóa phương pháp khai phá dữ liệu nhằm rút trích các mối quan hệ có ý nghĩa trong cơ sở dữ liệu y tế tại Phòng khám đa khoa Trường Cao đẳng Y tế Phú Thọ, từ đó hỗ trợ bác sĩ và nhà quản lý trong việc ra quyết định khám chữa bệnh và kinh doanh dược phẩm. Phạm vi nghiên cứu tập trung vào dữ liệu đơn thuốc thu thập trong khoảng thời gian gần đây tại địa phương này. Ý nghĩa của nghiên cứu được thể hiện qua việc nâng cao hiệu quả khai thác tri thức từ dữ liệu y tế, góp phần cải thiện chất lượng chăm sóc sức khỏe và giảm chi phí điều trị.
## Cơ sở lý thuyết và phương pháp nghiên cứu
### Khung lý thuyết áp dụng
- **Khai phá dữ liệu (Data Mining):** Quá trình tự động trích xuất các mẫu, luật kết hợp và tri thức tiềm ẩn từ kho dữ liệu lớn, giúp phát hiện các mối quan hệ và xu hướng mới.
- **Luật kết hợp (Association Rules):** Phương pháp khai phá dữ liệu nhằm tìm ra các mối liên hệ giữa các tập mục trong cơ sở dữ liệu giao tác, được đo bằng độ hỗ trợ (support) và độ tin cậy (confidence).
- **Thuật toán K-way join:** Kỹ thuật tối ưu trong việc đếm độ hỗ trợ các tập ứng viên bằng cách liên kết nhiều bản sao của bảng dữ liệu, giúp tăng tốc độ xử lý và giảm chi phí tính toán so với các phương pháp truyền thống.
- **Ngôn ngữ truy vấn SQL:** Công cụ chính để thực hiện các truy vấn khai phá dữ liệu, tận dụng khả năng tối ưu của hệ quản trị cơ sở dữ liệu để xử lý các câu lệnh phức tạp.
- **Phát sinh và rút gọn luật kết hợp:** Phương pháp đề xuất nhằm sinh ra các luật kết hợp từ tập luật mẫu, đồng thời loại bỏ các luật không cần thiết để nâng cao hiệu quả khai phá.
### Phương pháp nghiên cứu
Luận văn sử dụng dữ liệu thực tế từ các đơn thuốc tại Phòng khám đa khoa Trường Cao đẳng Y tế Phú Thọ, với cỡ mẫu khoảng 100,000 giao tác thuốc-bệnh. Phương pháp chọn mẫu là lấy toàn bộ dữ liệu đơn thuốc trong một khoảng thời gian nhất định để đảm bảo tính đại diện. Phân tích dữ liệu được thực hiện bằng cách chuyển đổi cấu trúc dữ liệu từ dạng ngang sang dạng dọc (tid, item), sau đó áp dụng thuật toán K-way join để tìm các tập phổ biến và phát sinh luật kết hợp.
Quá trình nghiên cứu gồm các bước: trích chọn và tiền xử lý dữ liệu, chuyển đổi dữ liệu, áp dụng thuật toán K-way join để đếm độ hỗ trợ, phát sinh tập luật mẫu, sinh luật kết hợp và đánh giá độ tin cậy của các luật. Thời gian nghiên cứu kéo dài trong vòng 12 tháng, bao gồm thu thập dữ liệu, phát triển thuật toán, thử nghiệm và phân tích kết quả.
## Kết quả nghiên cứu và thảo luận
### Những phát hiện chính
- Thuật toán K-way join cho thấy hiệu quả vượt trội trong việc đếm độ hỗ trợ so với các phương pháp 2-Group By và Query Sub Query, với thời gian xử lý giảm khoảng 30-50% trên các tập dữ liệu lớn (khoảng 100,000 giao tác).
- Từ dữ liệu đơn thuốc, phát hiện được các luật kết hợp mạnh với độ hỗ trợ tối thiểu 5% và độ tin cậy trên 70%, ví dụ như luật kết hợp giữa thuốc Cefalecin và Paracetamol có độ hỗ trợ 6% và độ tin cậy 75%.
- Việc áp dụng phương pháp phát sinh và rút gọn luật kết hợp giúp giảm số lượng luật không cần thiết đến 40%, tập trung vào các luật có ý nghĩa thực tiễn cao trong y học.
- Kết quả thử nghiệm cho thấy các luật kết hợp phát hiện được có thể hỗ trợ hiệu quả cho bác sĩ trong việc kê đơn thuốc và dự đoán các tương tác thuốc-bệnh, góp phần nâng cao chất lượng điều trị.
### Thảo luận kết quả
Nguyên nhân của hiệu quả vượt trội của thuật toán K-way join là do việc tối ưu hóa vòng lặp, giảm kích thước dữ liệu đầu vào và giảm số phép kết nối trong quá trình đếm độ hỗ trợ. So với các nghiên cứu trước đây, kết quả này khẳng định tính ưu việt của K-way join trong môi trường cơ sở dữ liệu SQL, đặc biệt với dữ liệu y tế có tính phức tạp và đa dạng.
Các luật kết hợp phát hiện được không chỉ có giá trị thống kê mà còn mang tính ứng dụng cao, giúp phát hiện các mối quan hệ thuốc-bệnh chưa được biết đến trước đây. Dữ liệu có thể được trình bày qua các biểu đồ thời gian thực thi thuật toán và bảng tổng hợp các luật kết hợp với các chỉ số support và confidence, giúp người dùng dễ dàng đánh giá và lựa chọn.
## Đề xuất và khuyến nghị
- **Triển khai hệ thống khai phá dữ liệu tự động:** Áp dụng thuật toán K-way join trong các hệ quản trị cơ sở dữ liệu y tế để tự động phát hiện các mối quan hệ thuốc-bệnh, nâng cao hiệu quả phân tích dữ liệu trong vòng 6-12 tháng, do các phòng khám và bệnh viện thực hiện.
- **Đào tạo nhân lực chuyên sâu:** Tổ chức các khóa đào tạo về khai phá dữ liệu và phân tích luật kết hợp cho cán bộ y tế và quản lý dữ liệu nhằm nâng cao năng lực sử dụng công nghệ trong 3-6 tháng.
- **Xây dựng cơ sở dữ liệu điện tử chuẩn hóa:** Khuyến khích các cơ sở y tế xây dựng và chuẩn hóa dữ liệu điện tử để thuận tiện cho việc khai phá dữ liệu, giảm thiểu sai sót và tăng tính chính xác, thực hiện trong vòng 1-2 năm.
- **Phát triển phần mềm hỗ trợ ra quyết định:** Thiết kế và triển khai phần mềm dựa trên các luật kết hợp phát hiện được để hỗ trợ bác sĩ trong việc kê đơn và chẩn đoán, với mục tiêu giảm thiểu sai sót và chi phí điều trị trong 12 tháng.
- **Nghiên cứu mở rộng:** Khuyến khích nghiên cứu tiếp tục mở rộng phạm vi dữ liệu và áp dụng các kỹ thuật khai phá dữ liệu khác như phân lớp, phân cụm để nâng cao khả năng dự báo và phân tích trong y học.
## Đối tượng nên tham khảo luận văn
- **Bác sĩ và nhân viên y tế:** Hỗ trợ trong việc kê đơn thuốc và chẩn đoán bệnh dựa trên các mối quan hệ thuốc-bệnh được phát hiện, giúp nâng cao hiệu quả điều trị.
- **Nhà quản lý y tế:** Sử dụng kết quả khai phá dữ liệu để hoạch định chính sách, quản lý thuốc và tối ưu hóa nguồn lực y tế.
- **Chuyên gia công nghệ thông tin trong y tế:** Áp dụng thuật toán và phương pháp nghiên cứu để phát triển các hệ thống quản lý và phân tích dữ liệu y tế.
- **Nghiên cứu sinh và học viên cao học:** Tham khảo phương pháp luận, thuật toán và kết quả nghiên cứu để phát triển các đề tài liên quan về khai phá dữ liệu và ứng dụng trong y học.
## Câu hỏi thường gặp
1. **Khai phá dữ liệu là gì và tại sao quan trọng trong y học?**
Khai phá dữ liệu là quá trình trích xuất tri thức từ kho dữ liệu lớn. Trong y học, nó giúp phát hiện các mối quan hệ thuốc-bệnh, hỗ trợ chẩn đoán và điều trị hiệu quả hơn.
2. **Thuật toán K-way join có ưu điểm gì so với các phương pháp khác?**
K-way join tối ưu hóa việc đếm độ hỗ trợ bằng cách giảm số phép kết nối và kích thước dữ liệu đầu vào, giúp giảm thời gian xử lý đáng kể trên các tập dữ liệu lớn.
3. **Luật kết hợp được sử dụng như thế nào trong nghiên cứu này?**
Luật kết hợp giúp phát hiện các mối quan hệ đồng xuất hiện giữa các loại thuốc và bệnh lý, từ đó hỗ trợ bác sĩ trong việc kê đơn và dự đoán tương tác thuốc.
4. **Phương pháp phát sinh và rút gọn luật kết hợp có tác dụng gì?**
Phương pháp này giúp sinh ra các luật có ý nghĩa từ tập luật mẫu và loại bỏ các luật không cần thiết, nâng cao hiệu quả khai phá và giảm tải cho người sử dụng.
5. **Dữ liệu y tế được thu thập và xử lý như thế nào trong nghiên cứu?**
Dữ liệu được thu thập từ các đơn thuốc tại Phòng khám đa khoa Trường Cao đẳng Y tế Phú Thọ, chuyển đổi sang dạng phù hợp và xử lý bằng các câu truy vấn SQL kết hợp thuật toán K-way join để khai phá tri thức.
## Kết luận
- Luận văn đã phát triển và tối ưu hóa thuật toán K-way join để khai phá các mối quan hệ trong cơ sở dữ liệu y tế, nâng cao hiệu quả xử lý dữ liệu lớn.
- Đã phát hiện các luật kết hợp mạnh giữa thuốc và bệnh lý với độ hỗ trợ và độ tin cậy cao, có giá trị ứng dụng thực tiễn trong y học.
- Phương pháp phát sinh và rút gọn luật kết hợp giúp giảm thiểu số lượng luật không cần thiết, tập trung vào các luật có ý nghĩa.
- Kết quả nghiên cứu góp phần hỗ trợ bác sĩ và nhà quản lý trong việc ra quyết định khám chữa bệnh và quản lý dược phẩm.
- Đề xuất các giải pháp triển khai hệ thống khai phá dữ liệu, đào tạo nhân lực và phát triển phần mềm hỗ trợ ra quyết định trong y tế.
Tiếp theo, cần triển khai thử nghiệm thực tế tại các cơ sở y tế khác và mở rộng nghiên cứu ứng dụng các kỹ thuật khai phá dữ liệu nâng cao. Mời các nhà nghiên cứu và chuyên gia y tế cùng hợp tác phát triển ứng dụng này để nâng cao chất lượng chăm sóc sức khỏe cộng đồng.