XÂY DỰNG CSDL TRONG SQL SERVER

Một phần của tài liệu Ứng dụng khai phá dữ liệu để xây dựng hệ thống chẩn đoán bệnh trầm cảm cho học sinh phổ thông (Trang 65)

5. Bố cục của luận văn

3.1. XÂY DỰNG CSDL TRONG SQL SERVER

3.1.1. Mô tả dữ liệu

Dữ liệu được dùng để xây dựng mô hình gồm 28 thuộc tính như sau:

Bảng 3.1. Cấu trúc dữ liệu chẩn đoán bệnh RLTC

STT Thuộc tính Kiểu DL Giá trị của

thuộc tính Giải thích

1. ID Nominal 1…4000 Mã BN

2. GioiTinh Nominal Nam, Nu Giới tính của BN 3. Tuoi Nominal 12, 13, 14, 15,

16, 17, 18

Độ tuổi của BN

4. B_Mcainhau Nominal

chua bao gio <2lan_thang >3lan_thang

Tình trạng bố mẹ hoặc người thân cải nhau

5. B_Mdanhnhau Nominal

chua bao gio <2lan_thang >3lan_thang

Tình trạng bố mẹ hoặc người thân đánh nhau

STT Thuộc tính Kiểu DL Giá trị của thuộc tính Giải thích 6. KQHT Nominal Xuatsac, Gioi, Kha, TB, Yeu, Kem. Kết quả học tập của BN. 7. apluchtap Nominal KhongApLuc, ApLucIt ApLucVua, ApLucNhieu Áp lực về kết quả học tập của BN 8. gvnatno Nominal ChuaBaoGio, HiemKhi, ThinhThoang, ThuongXuyen Mức độ Thầy cô giáo ở trường trường xuyên nạt nộ, la mắng. 9. gvtrungphat Nominal ChuaBaoGio, HiemKhi, ThinhThoang, ThuongXuyen Mức độ giáo viên trừng phạt nếu vi phạm. 10. bitreuchoc Nominal ChuaBaoGio, HiemKhi, ThinhThoang, ThuongXuyen Mức độ bị bạn bè trêu chọc. 11. bidanhdap Nominal ChuaBaoGio, HiemKhi ThinhThoang, ThuongXuyen Mức độ bị bạn bè đánh đập.

12. f1khochiu Nominal <1ngay, 1-2ngay,

Số ngày BN thấy khó chịu.

STT Thuộc tính Kiểu DL Giá trị của thuộc tính Giải thích 3-4ngay, 5-7ngay 13. f2khongmuon an Nominal <1ngay, 1-2ngay, 3-4ngay, 5-7ngay Số ngày BN không muốn ăn hoặc ăn không ngon miệng.

14. f5taptrungchu y Nominal <1ngay, 1-2ngay, 3-4ngay, 5-7ngay Số ngày BN gặp khó khăn để tập trung chú ý vào những việc mình đang làm 15. f3buonchan Nominal <1ngay, 1-2ngay, 3-4ngay, 5-7ngay Số ngày BN cảm thấy không hết buồn, mặc dù gia đình và bạn bè đã giúp đỡ. 16. f6suysup Nominal <1ngay, 1-2ngay, 3-4ngay, 5-7ngay Số ngày BN cảm thấy suy sụp và không vui. 17. f7metmoi Nominal <1ngay, 1-2ngay, 3-4ngay, 5-7ngay Số ngày BN thấy quá mệt mỏi không thể làm gì được.

18. f8hyvong Nominal <1ngay, 1-2ngay,

Số ngày BN cảm thấy tràn đầy hy

STT Thuộc tính Kiểu DL Giá trị của

thuộc tính Giải thích

3-4ngay, 5-7ngay

vọng vào tương lai.

19. f9cdthatbai Nominal <1ngay, 1-2ngay, 3-4ngay, 5-7ngay Số ngày BN nghĩ cuộc đời từ trước đến nay toàn là thất bại. 20. f10sohai Nominal <1ngay, 1-2ngay, 3-4ngay, 5-7ngay Số ngày BN cảm thấy sợ hãi. 21. f11ngukyg Nominal <1ngay, 1-2ngay, 3-4ngay, 5-7ngay Số ngày BN ngủ không yên giấc.

22. f12vuive Nominal <1ngay, 1-2ngay, 3-4ngay, 5-7ngay Số ngày BN cảm thấy vui vẻ/hạnh phúc. 23. f13nchuyenit Nominal <1ngay, 1-2ngay, 3-4ngay, 5-7ngay Số ngày BN nói chuyện ít hơn bình thường. 24. f14codon Nominal <1ngay, 1-2ngay, 3-4ngay, 5-7ngay Số ngày BN cảm thấy cô đơn.

STT Thuộc tính Kiểu DL Giá trị của thuộc tính Giải thích 25. f16yeucs Nominal <1ngay, 1-2ngay, 3-4ngay, 5-7ngay Số ngày BN thấy yêu thích cuộc sống. 26. f17khoc Nominal <1ngay, 1-2ngay, 3-4ngay, 5-7ngay Số ngày BN khóc nhiều. 27. f20klamviec Nominal <1ngay, 1-2ngay, 3-4ngay, 5-7ngay Số ngày BN đã không thể bắt đầu những việc bình thường. 28. Ketqua Nominal

Yes, No Kết quả chẩn đoán BN có mắc bệnh trầm cảm hay không?

3.1.2. Bài toán chẩn đoán bệnh RLTC

Để biết được một người có mắc phải bệnh RLTC hay không thì bệnh nhân phải đến bệnh viện hoặc các phòng khám tư để thăm khám lâm sàng, làm các xét nghiệm máu hoặc kiểm tra tuyến giáp và điền vào bảng câu hỏi để đánh giá tâm lý tại các cơ sở y tế có đầy đủ các trang thiết bị hỗ trợ. Tuy nhiên, vấn đề đặt ra là ta có thể chẩn đoán được kết quả tương tự như vậy nhưng không cần làm các xét nghiệm y khoa tốn kém thời gian và mất nhiều chi phí. Thay vào đó ta có thể dự đoán được bệnh thông qua các dữ liệu từ

thông tin cá nhân, yếu tố gia đình, yếu tố trường học, việc học tập, mối quan hệ bạn bè, biểu hiện về sức khoẻ trong 7 ngày qua như rối loạn giấc ngủ, mệt mỏi, ăn không ngon miệng, cảm thấy buồn, khó chịu, không tập trung công việc, suy sụp tinh thần, ít trò chuyện….. được hay không?

3.1.3. Lựa chọn giải thuật giải quyết bài toán.

Từ những dữ liệu đã được thu thập và lưu trữ để áp dụng cho bài toán chẩn đoán bệnh RLTC mà luận văn đang xây dựng, thì cần phải tìm kiếm những thông tin gì? Những thông tin đó giúp ích gì cho việc dự đoán?

Từ góc độ xây dựng mô hình dự đoán, hệ thống cần phải đáp ứng các câu hỏi được tạo ra một cách tự động và giải quyết được các thắc mắc của từng bệnh nhân. Các câu hỏi thường được tạo ra từ những thông tin từ bệnh nhân cung cấp như sau: Tuổi, giới tính, tình trạng bố mẹ hoặc người thân cải nhau, kết quả học tập, áp lực về kết quả học tập, mức độ thầy cô giáo ở trường nạt nộ la mắng, mức độ thường xuyên bệnh nhân cảm nhận các dấu hiệu/hành vi trong 7 ngày qua như rối loạn giấc ngủ, mệt mỏi, ăn không ngon miệng, cảm thấy buồn chán, khó chịu, không tập trung công việc, suy sụp tinh thần, mệt mỏi, vui vẻ, yêu cuộc sống, hy vọng vào tương lai, ít trò chuyện...thì kết quả bệnh nhân đó có mắc bệnh RLTC hay không? Dựa vào kết quả đó bệnh nhân có thể tham khảo để tiến hành làm tiếp các xét nghiệm khác hay không..

Kết quả của việc chẩn đoán sẽ được xác định từ những dữ liệu đầu vào mà những người sử dụng đã nhập vào. Hệ thống sẽ xem xét dựa trên mô hình mà đã được xây dựng để đưa ra những chẩn đoán chính xác. Như vậy, yêu cầu đặt ra ở đây là mô hình được phát sinh từ đâu. Đó chính là mục đích của việc KPDL từ những dữ liệu thu thập được mà chúng tôi muốn thực hiện trong đề tài này.

Có rất nhiều thuật toán xây dựng mô hình từ tập các dữ liệu đầu vào và phân lớp dữ liệu để đưa ra quyết định chẩn đoán. Ở đề tài này, chúng tôi không có tham vọng sẽ tìm hiểu hết tất cả các thuật toán nhưng sẽ nêu ra các

thuật toán thông dụng để từ đó áp dụng vào đề tài. Kết quả mong muốn là xây dựng 2 mô hình dựa vào thuật toán cây quyết định DT và thuật toán phân cụm để có được các tập luật nhằm đưa ra quyết định chẩn đoán cho bài toán.

3.1.4. Xây dựng CSDL

Dữ liệu nguồn được dùng để xây dựng mô hình là 4000 bệnh nhân. Sau khi kết nối DataSource trong SQL Server Data Tools để đến SQL Server, thì Data Source View sẽ có khung nhìn các bảng CSDL với trường Khóa là ID

như Hình 3.1.

Hình 3.1. Khung nhìn các bảng dữ liệu

3.2.ỨNG DỤNG KỸ THUẬT DT ĐỂ XÂY DỰNG MÔ HÌNH CHẨN ĐOÁN BỆNH RLTC ĐOÁN BỆNH RLTC

3.2.1. Dữ liệu yêu cầu cho việc xây dựng mô hình DT

Khi xây dựng mô hình DT yêu cầu cần thiết phải có dữ liệu sau:

- Một cột khóa duy nhất: Mỗi mô hình phải có gồm cột kiểu số hoặc kiểu chuỗi để xác định duy nhất mỗi bản ghi.

- Cột dự đoán: Yêu cầu ít nhất một cột dự đoán. Có thể chọn nhiều thuộc tính dự đoán trong một mô hình và các thuộc tính dự đoán có thể là các kiểu khác nhau, hoặc là kiểu số hoặc là kiểu rời rạc. Tuy nhiên, tăng số lượng các thuộc tính dự đoán có thể tăng thời gian xử lý.

- Những cột đầu vào: Yêu cầu những cột đầu vào mà có thể là kiểu rời rạc hay là kiểu liên tục. Tăng số lượng các thuộc tính đầu vào ảnh hưởng đến thời gian xử lý.

3.2.2. Những tham số được hỗ trợ trong thuật toán DT

Thuật toán DT hỗ trợ các tham số mà ảnh hưởng đến hiệu suất và tính chính xác của mô hình khai thác kết quả. Những tham số dưới đây được sử dụng với thuật toán DT:

- COMPLEXITY_PENALTY: Điều khiển sự phát triển của DT. Một giá trị thấp làm tăng số lượng các phần chia tách, và một giá trị cao làm giảm số lượng các phần chia tách. Giá trị mặc định được dựa trên số lượng các thuộc tính cho một mô hình cụ thể, như mô tả trong danh sách sau đây:

 Đối với 1 đến 9 thuộc tính, mặc định là 0,5.

 Đối với 10 đến 99 thuộc tính, mặc định là 0.9.

 Đối với 100 hoặc nhiều thuộc tính, mặc định là 0,99.

- MAXIMUM_INPUT_ATTRIBUTES: Xác định số lượng các thuộc tính đầu vào mà thuật toán có thể xử lý trước khi nó gọi việc lựa chọn tính năng. Mặc định là 255. Thiết lập giá trị là 0 để tắt tính năng này.

- MAXIMUM_OUTPUT_ATTRIBUTES: Xác định số lượng các thuộc tính đầu ra mà các thuật toán có thể xử lý trước khi nó gọi việc lựa chọn tính năng. Mặc định là 255. Thiết lập giá trị là 0 để tắt tính năng này.

- MINIMUM_SUPPORT: Xác định số lượng tối thiểu các trường hợp để một nút lá tạo ra một sự phân chia trong DT. Mặc định là 10. Cần phải tăng giá trị này nếu số liệu là rất lớn.

- SCORE_METHOD: Xác định phương pháp được sử dụng để tính toán điểm phân chia. Các tùy chọn sau đây:

 Entropy (1)

 Bayesian with K2 Prior (3)

 Bayesian Dirichlet Equivalent with uniform prior (default) (4)

- SPLIT_METHOD: Xác định phương pháp được sử dụng để phân chia các nút. Các tùy chọn sau đây:

 Binary (1): Cây nên được chia thành hai nhánh bất kể số lượng các giá trị thực tế

 Complete (2): Cây có thể tạo ra nhiều sự chia tách như có nhiều giá trị thuộc tính.

 Both (3): Có thể sử dụng một trong 2 sự phân chia Binary/ Complete nói trên để tạo ra các kết quả tốt nhất.

- FORCE_REGRESSOR: Chỉ định thuộc tính hồi quy. Tham số này chỉ được sử dụng cho các DT được dự đoán một thuộc tính liên tục.

3.2.3. Xây dựng mô hình KPDL và kết quả đạt được

Bộ công cụ Data Mining Structures của BI cho phép người dùng chọn các thuật toán có sẵn để tạo mô hình KPDL, ở đây chọn thuật toán Decision Trees và thiết lập các tham số cho mô hình như Hình 3.3.

Hình 3.3. Thiết lập tham số mô hình DT

- Minimum_Support = 3: Số lượng tối thiểu để tạo nút lá là 3 trường hợp.

- Score_Method = 1: Sử dụng phương pháp Entropy để tính toán điểm phân chia

- Split_Method= 2: Tạo ra cây có nhiều sự chia tách với nhiều nút nhánh Còn các tham số khác thì sử dụng các giá trị mặc định. Sau khi sử dụng thuật toán DT với các tham số như Hình 3.3, kết quả mô hình như Hình 3.4.

Từ mô hình cây quyết định chẩn đoán bệnh RLTC giải thích một số luật được sinh ra từ cây quyết định dùng để chẩn đoán như sau:

Luật 1. f3buonchan = '5-7ngay' and f16yeucs = '1-2ngay' and f11ngukyg

= '5-7ngay' and B_Mdanhnhau = '>4Lan_Thang' and Bitreuchoc = 'ThuongXuyen' Then Ketqua = Yes

Luật 2. f3buonchan = '5-7ngay' and f16yeucs = '3-4ngay' and

B_Mdanhnhau = '<1Lan_Thang' Then Ketqua = No

Luật 3. f3buonchan = '3-4ngay' and f16yeucs = '1-2ngay' and f11ngukyg = '<1ngay' and f20klamviec = '3-4ngay' and Gtinh = 'Nu' and Apluchtap = 'ApLucNhieu' Then Ketqua = Yes

Luật 4. f3buonchan = '3-4ngay' and f16yeucs = '<1ngay' and

f13nchuyenit = '5-7ngay' and Gvtrungphat = 'HiemKhi' and Gvnatno = 'ThinhThoang' Then Ketqua=Yes

Luật 5. f3buonchan = '3-4ngay' and f16yeucs = '1-2ngay' and f11ngukyg = '<1ngay' and f20klamviec = '3-4ngay' and Gtinh = 'Nu' and Apluchtap = 'ApLucVua' Then Ketqua=No

Luật 6. f3buonchan = '3-4ngay' and f16yeucs = '1-2ngay' and f11ngukyg = '<1ngay' and f20klamviec = '<1ngay' Then Ketqua=No

Luật 7. f3buonchan = '1-2ngay' and f16yeucs = '3-4ngay' and

Gvtrungphat = 'ThuongXuyen' and f20klamviec = '1-2ngay' Then

Ketqua=No

Luật 8. f3buonchan='1-2ngay' and f16yeucs = '1-2ngay' and

Gvtrungphat = 'ChuaBaoGio' and B_Mcainhau = '>4Lan_Thang' Then

Ketqua = No

Luật 9. f3buonchan = '3-4ngay' and f16yeucs = '1-2ngay' and f11ngukyg = '<1ngay' and f20klamviec = '3-4ngay' and Gtinh = 'Nu' and Apluchtap = 'ApLucVua' Then Ketqua = No

Ngoài ra, BI cũng hỗ trợ đưa ra câu lệnh truy vấn ứng với trường hợp này: SELECT [Tree].[Ketqua], t.[ID], Predict([Tree].[Ketqua]), PredictProbability([Tree].[Ketqua]) From [Tree] PREDICTION JOIN OPENQUERY([RLTC-26-4chuan3], 'SELECT [ID],[gtinh],[tuoi],[B_Mcainhau],[B_Mdanhnhau], [KQHT],

[apluchtap],[gvnatno],[gvtrungphat], [bitreuchoc], [bidanhdap], [f1khochiu], [f2khongmuonan], [f17khoc], [f5taptrungchuy],

[f6suysup],[f7metmoi],[f9cdthatbai],[f10sohai],

[f11ngukyg],[f12vuive], [f13nchuyenit], [f14codon], [f16yeucs],[f3buonchan],[f8hyvong],[f20klamviec],[Ketqua]

FROM

[dbo].[dudoan] ') AS t

ON

[Tree].[Gtinh] = t.[gtinh] AND [Tree].[Tuoi] = t.[tuoi] AND

[Tree].[B Mcainhau] = t.[B_Mcainhau] AND [Tree].[B Mdanhnhau] = t.[B_Mdanhnhau] AND [Tree].[KQHT] = t.[KQHT] AND

[Tree].[Apluchtap] = t.[apluchtap] AND [Tree].[Gvnatno] = t.[gvnatno] AND

[Tree].[Gvtrungphat] = t.[gvtrungphat] AND [Tree].[Bitreuchoc] = t.[bitreuchoc] AND [Tree].[Bidanhdap] = t.[bidanhdap] AND [Tree].[f1khochiu] = t.[f1khochiu] AND

[Tree].[f2khongmuonan] = t.[f2khongmuonan] AND [Tree].[f17khoc] = t.[f17khoc] AND

[Tree].[f5taptrungchuy] = t.[f5taptrungchuy] AND [Tree].[f6suysup] = t.[f6suysup] AND

[Tree].[f7metmoi] = t.[f7metmoi] AND [Tree].[f9cdthatbai] = t.[f9cdthatbai] AND [Tree].[f10sohai] = t.[f10sohai] AND [Tree].[f11ngukyg] = t.[f11ngukyg] AND [Tree].[f12vuive] = t.[f12vuive] AND

[Tree].[f13nchuyenit] = t.[f13nchuyenit] AND [Tree].[f14codon] = t.[f14codon] AND

[Tree].[f16yeucs] = t.[f16yeucs] AND [Tree].[f3buonchan] = t.[f3buonchan] AND [Tree].[f8hyvong] = t.[f8hyvong] AND [Tree].[f20klamviec] = t.[f20klamviec] AND [Tree].[Ketqua] = t.[Ketqua]

3.2.4. Mức độ phụ thuộc của các dấu hiệu chẩn đoán bệnh RLTC

Từ kết quả của KPDL theo mô hình DT, mô hình cũng cho thấy các yếu tố ảnh hưởng đến kết quả chẩn đoán bệnh trầm cảm được thể hiện trong Hình 3.5. Ngoài ra, mô hình cũng đưa ra mức độ phụ thuộc các dấu hiệu để chẩn đoán bệnh rối loạn trầm cảm trong Bảng 3.2.

Hình 3.5. Các yếu tố ảnh hưởng đến bệnh RLTC

Bảng 3.2. Mức độ phụ thuộc của từng biểu hiện đối với bệnh RLTC

Biểu hiện Mức độ phụ thuộc

Buồn chán 1 Yêu thích cuộc sống 2 Giáo viên trừng phạt 3 Bố mẹ cải nhau 4 Khó chịu 5 Áp lực học tập 6 Không thích làm việc 7 Bị bạn trêu chọc 8 Bố mẹ đánh nhau 9 Bị bạn đánh đập 10

Ngủ không ngon giấc 11

Giới tính 12

Nói chuyện ít hơn bình thường. 13

Nhìn vào Bảng 3.2 ta thấy biểu hiện buồn chán có giá trị bằng 1 thì mức độ phụ thuộc mạnh nhất và tiêu chí giáo viên nạt nộ có giá trị bằng 14 thì có mức độ phụ thuộc nhỏ nhất.

3.2.5. Đánh giá mô hình dự đoán

Với dữ liệu huấn luyện là 70% và dữ liệu test là 30%, mô hình đưa ra kết quả chẩn đoán với độ chính xác lên đến: 98.91%.

Hình 3.6. Ma trận biểu diễn khả năng chẩn đoán mô hình DT

3.3.ỨNG DỤNG KỸ THUẬT PHÂN CỤM ĐỂ PHÂN TÍCH CÁC ĐẶC TRƯNG CỦA BỆNH RLTC TRƯNG CỦA BỆNH RLTC

3.3.1. Dữ liệu yêu cầu cho việc xây dựng mô hình phân cụm

Khi xây dựng mô hình phân cụm yêu cầu cần thiết phải có dữ liệu sau: - Một cột khóa duy nhất: Mỗi mô hình phải gồm cột kiểu số hoặc kiểu chuỗi để xác định duy nhất mỗi bản ghi.

- Những cột đầu vào: Yêu vầu những cột đầu vào mà có thể là kiểu rời rạc hay là kiểu liên tục. Tăng số lượng các thuộc tính đầu vào ảnh hưởng đến thời gian xử lý.

3.3.2. Xây dựng mô hình phân cụm

Những tham số ảnh hưởng đến hiệu suất và tính chính xác của mô hình phân cụm

- CLUSTER_COUNT: Quy định cụ thể số lượng các cụm được xây dựng bằng thuật toán. Nếu số lượng không thể được xây dựng từ các dữ liệu, thuật toán xây dựng nhiều cụm càng tốt. Mặc định là 10.

- CLUSTERING_METHOD: Các thuật toán có thể sử dụng để phân cụm dữ liệu Scalable EM(1), Non – scalable EM(2), Scalable K-Means(3), hoặc Non – scalable K-Means(4). Mặc định là 1.

- MINIMUM_SUPPORT: Tham số này xác định số lượng tối thiểu các trường hợp trong mỗi cụm. Mặc định là 1.

Trong mô hình này, đề tài sử dụng thuật toán K-mean để phân cụm Kết quả KPDL cho ta 6 cụm như trong Hình 3.7.

Kết quả test cho thấy mô hình phân cụm có độ chính xác đến 95%.

Hình 3.8. Ma trận biểu diễn kết quả mô hình phân cụm

3.3.3. Kết quả mô hình phân cụm của bệnh RLTC.

Mô hình cho ra kết quả như Hình 3.9.

Dựa vào kết quả ở Hình 3.9, ta có thể thấy rằng, ở đây mô hình đã cho ra được 6 cụm dữ liệu với các đặc trưng khác nhau của từng cụm như sau:

Cụm 1: Cụm này đa số là những BN có giới tính là Nữ, ở tuổi từ 15-16, trong một tuần BN có mắc phải các dấu hiệu sau: cảm thấy buồn (mặc dù gia đình và bạn bè đã giúp đỡ) từ 3-4 ngày, khó chịu vì những điều mà bình thường không làm cho BN thấy khó chịu từ 3-4 ngày, quá mệt mỏi không thể

Một phần của tài liệu Ứng dụng khai phá dữ liệu để xây dựng hệ thống chẩn đoán bệnh trầm cảm cho học sinh phổ thông (Trang 65)