Đánh giá, nhận xét

Một phần của tài liệu Nghiên cứu một số thuật toán khai phá luật kết hợp và thử nghiệm ứng dụng vào khai phá cơ sở dữ liệu bảo hiểm y tế tại bảo hiểm xã hội Bắc Giang (Trang 62 - 90)

Phần này chúng ta đã xem xét các giải thuật khai phá tập phổ biến nhƣ: Apriori, AprioriTID, ... Các giải thuật này đều tỷ lệ tuyến tính với kích thƣớc CSDL. Nghĩa là tất cả các độ phức tạp về thời gian, bộ nhớ, tính toán thuật toán, . . . đều tỉ lệ thuận với độ lớn CSDL D.

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Chƣơng 3

ÁP DỤNG KHAI PHÁ TRÊN CƠ SỞ DỮ LIỆU BẢO HIỂM Y TẾ CỦA BẢO HIỂM XÃ HỘI TỈNH BẮC GIANG 3.1. CSDL bảo hiểm xã hội, bảo hiểm y tế và yêu cầu bài toán

Bảo hiểm xã hội tỉnh Bắc Giang là cơ quan trung ƣơng đóng trên địa bàn tỉnh, tổ chức thực hiện chính sách Bảo hiểm xã hội (BHXH), Bảo hiểm y tế (BHYT) đối với ngƣời lao động và nhân dân tỉnh Bắc Giang. Với cơ cấu tổ chức phân tán theo địa bàn hành chính trong tỉnh. Tỉnh Bắc Giang có 10 huyện, thành phố ứng với 10 đơn vị BHXH cấp huyện, có nhiệm vụ tổ chức thực hiện chế độ chính sách bảo hiểm xã hội, bảo hiểm y tế, quản lý thu, chi bảo hiểm xã hội, bảo hiểm y tế trên địa bàn huyện theo phân cấp quản lý trong đó có nhiệm vụ phát hành thẻ BHYT và giám định chi phí khám chữa bệnh bảo hiểm y tế.

Cơ sở dữ liệu (CSDL) thẻ BHYT của Bảo hiểm xã hội (BHXH) tỉnh Bắc Giang quản lý việc cấp và phát hành thẻ BHYT quản lý 27 nhóm đối tƣợng tham gia BHYT: Cán bộ công chức; Hộ gia đình nghèo, dân tộc thiểu số; Học sinh, sinh viên; Đối tƣợng hƣởng lƣơng hƣu, trợ cấp hàng tháng; Đối tƣợng trẻ em dƣới 6 tuổi…. đƣợc quản lý theo địa bàn huyện, thành phố và theo từng cơ sở ký hợp đồng khám chữa bệnh ban đầu với cơ quan BHXH tỉnh Bắc Giang. Tính đến thời điểm tháng 7 năm 2013 cơ sở dữ liệu đang quản lý 1.019.669 thẻ BHYT, với hơn 2,7 triệu bản ghi; toàn bộ dữ liệu hiện tại chỉ phục vụ riêng cho công tác thu BHXH, BHYT bắt buộc đã lên tới 39GB.

Tại tỉnh Bắc Giang có 27 cơ sở KCB có ký hợp đồng khám chữa bệnh BHYT với cơ quan BHXH. Số liệu đƣợc cập nhật theo 12 nhóm chi phí, chi tiết cho từng lần KCB nội, ngoại trú hàng năm lên tới trên 1 triệu lƣợt ngƣời. Hiện tại, BHXH tỉnh lƣu trữ dữ liệu của hàng chục triệu lƣợt ngƣời đi KCB BHYT trong những năm vừa qua. Với số lƣợng thẻ phát hành và số lƣợt ngƣời đi khám chữa bệnh có thẻ BHYT lớn nhƣ vậy trong khi đó số lƣợng giám định viên tại các cơ sở KCB là 30 ngƣời với số lƣợt đi KCB năm 2011 là: 1.081.908/30=36.063 nhƣ vậy mỗi giám định viên bình quân phải giám định 36.063 lƣợt/năm. Với khối lƣợng công việc lớn nhƣ vậy việc giám định trên từng hồ sơ bệnh án sẽ không thể thực hiện đƣợc mà chỉ thực hiện giám

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

định xác xuất và chọn mẫu … nên không thể phát hiện hết đƣợc tình trạng mƣợn thẻ BHYT hoặc thống kê khống chi phí khám chữa bệnh; dữ liệu thống kê không chính xác: mã đối tƣợng, mã quyền lợi, mã thẻ BHYT, chi phí, mã đăng ký khám chữa bệnh ban đầu, mã chẩn đoán; các chỉ định bất hợp lý về xét nghiệm, thủ thuật, thuốc không phù hợp với chẩn đoán và điều trị… các trƣờng hợp lạm dụng, trục lợi quỹ BHYT gây mất cân đối quỹ BHYT.

Bài toán: Sử dụng các kỹ thuật khai phá dữ liệu (thuật toán Apriori) để

khai phá CSDL Bảo hiểm y tế nhằm tìm ra các mối quan hệ giữa các thuộc tính, giá trị (độ tuổi, giới tính, tổng chí phí, chẩn đoán bệnh …) trong CSDL tổng hợp chi phí khám chữa bệnh, nhằm phát hiện tri thức hỗ trợ công tác quản lý, sử dụng quỹ BHYT tại tỉnh Bắc Giang có hiệu quả.

3.2. Lựa chọn công cụ khai phá

Chƣơng trình cài đặt bằng ngôn ngữ VB.Net, CSDL thiết kế trên SQL Server 2008, hệ điều hành Windows 7, chip máy tính Pentium IV 3.0 MHz, RAM 2 GB, ổ cứng 160 GB còn trống gần 40 GB.

3.3. Thiết kế ứng dụng.

Giao diện chƣơng trình đƣợc thiết kế bằng bộ công cụ Microsoft Visual Studio 2012 code VB.NET; cơ sở dữ liệu SQL Server Express 2008. Chi tiết thiết ứng dụng đƣợc ghi trong phần phụ lục của đề tài.

3.4. Phân tích và cài đặt thuật toán

Một đặc điểm mang tính thực tế là các item không đơn thuần chỉ đƣợc xét là “có” hay “không” trong khi đếm support mà mỗi item đƣợc kèm theo một trọng số mô tả mức quan trọng của item đó. Các item ta vẫn xem xét thƣờng ở dạng Boolean. Chúng mang giá trị là “1” nếu item có mặt trong giao dịch và “0” nếu ngƣợc lại. Các bài toán khai phá nhƣ trên ngƣời ta vẫn gọi là khai phá luật kết hợp kiểu Boolean (Mining Boolean Association Rules).

Nhƣ đã nói ở trên, trong thực tế, các bảng số liệu thƣờng xuất hiện các thuộc tính không đơn giản nhƣ vậy. Các thuộc tính có thể ở dạng số (quantitative)

Các bài toán khai phá luật kết hợp trên các thuộc tính nhƣ vậy gọi là khai phá luật kết hợp định lƣợng (Mining Quantitative Association Rules). Cũng

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

nhƣ các bài toán khai phá luật kết hợp trƣớc đây, mục tiêu của bài toán khai phá luật kết hợp định lƣợng cũng là kết xuất các luật kết hợp trên các ngƣỡng support tối thiểu và các ngƣỡng confidence tối thiểu.

Với các thuộc tính định lƣợng thì cần phải có sự phân đoạn cho các thuộc tính này vì suy cho cùng thì khi tính support cũng cần phải kiểm tra lại nó tồn tại hay không tồn tại trong giao dịch. Nói cách khác là cần phải thực hiện ánh xạ các thuộc tính định lƣợng sang thuộc tính Boolean. Nếu các thuộc tính phân loại hoặc số lƣợng chỉ có vài giá trị riêng biệt thì có thể thực hiện ánh xạ này đơn giản nhƣ sau: Mỗi thuộc tính trong bảng dữ liệu có p giá trị riêng biệt sẽ đƣợc lập thành p thuộc tính boolean mới. Mỗi thuộc tính boolean này tƣơng ứng với một cặp (attribute, value). Nó có giá trị “1” nếu value có mặt trong dữ liệu gốc và có giá trị “0” nếu ngƣợc lại. Nếu số giá trị riêng biệt của một số thuộc tính khá lớn thì ngƣời ta thực hiện phân đoạn thuộc tính thành các khoảng và ánh xạ mỗi cặp (attribute, value) thành một thuộc tính. Sau khi ánh xạ, có thể thực hiện khai phá luật kết hợp trên cơ sở dữ liệu mới bằng thuật toán khai phá luật kết hợp kiểu boolean.

Tổng quát, ta có thể đƣa ra một số phƣơng pháp rời rạc hoá nhƣ sau:

Trường hợp 1 : Nếu A là thuộc tính số rời rạc hoặc là thuộc tính hạng mục có miền giá trị hữu hạng dạng {V1, V2,. . . . , Vk} và k đủ nhỏ (<100) thì ta biến đổi thuộc tính này thành k thuộc tính nhị phân A_V1, A_V2,. . . . , A_Vk. Giá trị của bản ghi tại trƣờng A_Vi = True (hoặc 1) Nếu giá trị của bản ghi đó tại thuộc tính A ban đầu bằng vi, Ngƣợc lại Giá trị của A_Vi = False (hoặc 0).

Trường hợp 2 : Nếu A là thuộc tính số liên tục hoặc A là thuộc tính số rời rạc hay thuộc tính hạng mục có miền giá trị hữu hạng dạng {V1, V2,. . . . , Vp} (p lớn) thì ta sẽ ánh xạ thành q thuộc tính nhị phân <A:start1. . end1>, <A : start2. . end2>, . . . . , <A : startq. . endq>. Giá trị của bản ghi tại trƣờng <A : starti. . endi> bằng True (hoặc 1) nếu giá trị của bản ghi đó tại thuộc tính A ban đầu nằm trong khoảng [starti. . endi] , ngƣợc lại giá trị của <A:starti. . endi> = False (hoặc 0).

Cơ sở dữ liệu tổng hợp chi phí khám chữa bệnh KCB (VIENPHI) đƣợc tổng hợp năm 2012 lƣu trữ 930.429 lƣợt KCB của các đối tƣợng tham gia

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

BHYT tại 27 cơ sở KCB ký hợp đồng KCB với cơ quan BHXH tỉnh Bắc Giang.

Trong qui trình khai phá dữ liệu, công việc xử lý dữ liệu trƣớc khi đƣa vào các mô hình là rất cần thiết, bƣớc này làm cho dữ liệu có đƣợc ban đầu qua thu thập dữ liệu (gọi là dữ liệu gốc original data) có thể áp dụng đƣợc (thích hợp) với các mô hình khai phá dữ liệu (data mining model) cụ thể. Các công việc cụ thể của tiền xử lý dữ liệu bao gồm những công việc nhƣ:

Filtering Attributes: Chọn các thuộc tính phù hợp với mô hình

Filtering samples: Lọc các mẫu (instances, patterns) dữ liệu cho mô hình Clean data: Làm sạch dữ liệu nhƣ xóa bỏ các dữ liệu bất thƣờng (Outlier) Transformation: Chuyển đổi dữ liệu cho phù hợp với các mô hình nhƣ chuyển đổi dữ liệu từ numeric qua nomial hay ordinal

Discretization (rời rạc hóa dữ liệu): Nếu bạn có dữ liệu liên tục nhƣng một vài mô hình chỉ áp dụng cho các dữ liệu rời rạc (nhƣ luật kết hợp chẳn hạn) thì bạn phải thực hiện việc rời rạc hóa dữ liệu.

Bảng dữ liệu (table) bc79_80_a có 55 thuộc tính và lƣu trữ 930.429 bản ghi. Theo yêu cầu của bài toán ta chi quan tâm đến các thuộc tính: nam_sinh, gioi_tinh, ma_icd, tong_tien...

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Bảng 2. Dữ liệu trong bảng (table) bc79_80_a

- Thuộc tính: nam_sinh có kiểu dữ liệu numeric có nhiều giá trị nên ta

chia thành 3 độ tuổi có thể gọi: nhỏ, trung niên, già tƣơng ứng với 3 khoảng là (0-34, 35-50, 51-Max) đổi tên thuộc tính nam_sinh thành do_tuoi ;

- Thuộc tính: gioi_tinh có kiểu dữ liệu char(10) có 2 giá trị là 0,1 nên ta

chuyển 0=Nu; 1=Nam;

- Thuộc tính: ma_icd có kiểu dữ liệu char(10) có các giá trị là mã bệnh

theo mã ICD10 nhƣng ta chỉ lấy 5 bệnh để phân tích ví dụ nhƣ: I10, J02,K10 …

- Thuộc tính tong_tien có kiểu dữ liệu numeric có nhiều giá trị nên ta

chia thành 3 mức chi phí có thể gọi: thấp, trung bình, cao tƣơng ứng với 3 khoảng là (0-1.000.000; 1.001.000-2.000.000, 2.001.000-3.000.000, 3.001.000-Max. Hoàn thành bƣớc tiền xử lý dữ liệu ta thu đƣợc kết quả nhƣ bảng dƣới đây:

Bảng 3. Dữ liệu đã đƣợc chuẩn hóa

TT Thuộc tính

Kiểu dữ liệu Ví dụ Diễn giải

1 do_tuoi varchar 0-34; 35-50; 51-Max Độ tuổi

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

3 ma_icd char I10 - Cao huyết áp J02 - Viêm họng cấp

K29 - Viêm dạ dày và tá tràng G45 - Cơn thiếu máu não thoáng qua và hội chứng liên quan

L20 - Viêm da cơ địa dị ứng

Mã bệnh theo bảng phân loại bệnh tật quốc tế (ICD10) 4 tong_tien nvarchar (0-1.000.000; 1.001.000- 2.000.000, 2.001.000- 3.000.000, 3.001.000-Max) Tổng chi phí khám chữa bệnh Việc ánh xạ nhƣ trên có thể xảy ra vấn đề sau:

“minsup”: Nếu số lƣợng khoảng cho thuộc tính số lƣợng (hoặc số các giá trị riêng cho thuộc tính phân loại) là lớn thì support cho các khoảng có thể là nhỏ. Do đó, việc chia một thuộc tính ra quá nhiều khoảng có thể làm cho luật chứa nó không đạt đƣợc support tối thiểu.

“minconf”: Một số thông tin có thể bị mất do việc chia khoảng. Một số luật có thể có minconf chỉ khi một item trong chúng có giá trị đơn hoặc một khoảng rất nhỏ, do đó thông tin có thể bị mất. Sự mất mát thông tin càng tăng khi kích thƣớc khoảng chia càng lớn.

Nhƣ vậy, nếu kích thƣớc khoảng là quá lớn (số khoảng nhỏ) thì có nguy cơ một số luật sẽ không có confidence tối thiểu, còn nếu kích thƣớc các khoảng quá nhỏ (số khoảng lớn) thì một số luật lại có nguy cơ không có support tối thiểu.

Để giải quyết hai vấn đề trên, ngƣời ta chú ý đến tất cả các vùng liên tục trên thuộc tính số lƣợng hoặc trên các khoảng đã phân đoạn. Vấn đề “minsup”sẽ đƣợc khắc phục bằng cách liên hợp các khoảng gần kề hoặc các giá trị gần kề. Vấn đề “minconf” sẽ đƣợc khắc phục bằng cách tăng số lƣợng khoảng mà không ảnh hƣởng đến vấn đề “minsup”.

Ngƣời ta có thể thực hiện một phƣơng pháp đơn giản để thực hiện việc chuyển các thuộc tính số lƣợng và phân loại về cùng một dạng với nhau. Với thuộc tính phân loại, các giá trị của nó sẽ đƣợc ánh xạ vào tập các số nguyên liên tiếp. Với các thuộc tính số lƣợng không cần khoảng chia (tức là có ít giá

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

trị) thì các giá trị sẽ đƣợc ánh xạ vào tập các số nguyên liên tiếp theo thứ tự của các giá trị đó. Còn đối với các thuộc tính số lƣợng đƣợc phân khoảng, thì các khoảng sẽ đƣợc ánh xạ vào tập số nguyên liên tiếp, trong đó thứ tự các khoảng sẽ đƣợc bảo tồn. Các ánh xạ này sẽ làm cho mỗi bản ghi trong CSDL trở thành một tập các cặp (Attribute, Value). Bài toán khai phá luật kết hợp lúc này có thể thực hiện qua các bƣớc sau:

Xác định số lƣợng mỗi phần chia cho mỗi thuộc tính số lƣợng.

Với các thuộc tính phân loại, ánh xạ các thuộc tính vào tập số nguyên liên tiếp. Với các thuộc tính số lƣợng không cần sự phân khoảng, ánh xạ các giá trị của chúng vào tập các số nguyên liên tiếp theo thứ tự giá trị thuộc tính. Với các thuộc tính số lƣợng đã đƣợc phân khoảng, ánh xạ các khoảng đƣợc chia vào tập các số nguyên liên tiếp và bảo tồn thứ tự các khoảng. Bằng cách này, thuật toán chỉ xem các giá trị hoặc các vùng giá trị nhƣ là các thuộc tính định lƣợng.

Tìm support cho mỗi giá trị của các thuộc tính phân loại lẫn thuộc tính số lƣợng, tiếp theo tìm tất cả các itemset mà support của nó lớn hơn support tối thiểu.

Sử dụng các tập tìm đƣợc để sinh ra các luật kết hợp. Xác định luật đáng quan tâm và kết xuất chúng.

3.5. Các kết quả đạt đƣợc

Chƣơng trình chạy trên dữ liệu thống kê chi phí KCB của BHXH tỉnh Bắc Giang. Kết quả này tùy thuộc vào minsupp và minconf, trong ví dụ minh họa ta lấy 10.000 bản ghi (Trancactions) đƣa vào phân tích với minsupp =40%, minconf =70% dƣới đây là kết quả nhận đƣợc:

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Bảng 4. Kết quả minh họa chạy thuật toán Apriori.

TT Tập phổ biến Supp 1 {51-Max} 71.58% 2 {Nu} 53.98% 3 {I10} 53.11% 4 {0-1000000} 99,35% 5 {Nam} 46,02% 6 {0-1000000, Nam} 45.65% 7 {I10, 0-1000000} 52.87% 8 {Nu, 0-1000000} 53.7% 9 {51-Max, 0-1000000} 71.12% 10 {51-Max, I10} 50.47% 11 {0-1000000, I10, 51-Max} 50.25%

TT Luật kết hợp Supp Conf

1 {Nam} => {0-1000000} 45.65% 99.2% 2 {I10} => {0-1000000} 52.87% 99.55% 3 {Nu} => {0-1000000} 53.7% 99.48% 4 {0-1000000} => {51-Max} 71.12% 71.59% 5 {51-Max} => {0-1000000} 71.12% 99.36% 6 {I10} => {51-Max} 50.47% 95.03% 7 {51-Max} => {I10} 50.47% 70.2% 8 {51-Max} => {0-1000000, I10} 50.25% 70.2% 9 {I10} => {0-1000000, 51-Max} 50.25% 94.61% 10 {I10, 51-Max} => {0-1000000} 50.25% 99.56% 11 {0-1000000, 51-Max} => {I10} 50.25% 70.66% 12 {0-1000000, I10} => {51-Max} 50.25% 95.04% Từ kết quả các luật đƣợc sinh ra bởi giao dịch thống kê chi phí KCB, ta nhận thấy rằng có luật có thể tin đƣợc (hợp lý) nhƣ {51-Max} => {I10} là

70.2% luật này cho biết rằng 70.2% ở độ tuổi {51-Max} mắc bệnh Cao huyết

áp vô căn (nguyên phát); luật {I10, 51-Max} => {0-1000000} là 94.61% có nghĩa là ngƣời mắc bệnh cao huyết áp vô căn ở độ tuổi >51 có mức chi phí KCB <1.000.000 đồng chiếm tỷ lệ 99.56%; có luật cần phải phân tích thêm

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

nhƣ {Nam} => {0-1000000} có nghĩa là 99.2% nam giới có mức chi phí KCB <1.000.000.

Chƣơng trình có một số giao diện sau:

* Đánh giá, nhật xét

Thuật toán Apriori đƣợc dùng để phát hiện các luật kết hợp dạng khẳng định (Positive Rule X=>Y) nhị phân (Binary Association Rules). Từ kết quả trên cho thấy việc ứng dụng thuật toán Apriori vào khai phá CSDL BHYT nhằm rút ra tri thức để hỗ trợ công tác giám định BHYT là hết sức cần thiết vì số lƣợng ngƣời có thẻ BHYT đi khám bệnh tại các cơ sở ký hợp đồng KCB

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Một phần của tài liệu Nghiên cứu một số thuật toán khai phá luật kết hợp và thử nghiệm ứng dụng vào khai phá cơ sở dữ liệu bảo hiểm y tế tại bảo hiểm xã hội Bắc Giang (Trang 62 - 90)

Tải bản đầy đủ (PDF)

(90 trang)