Suy diễn trên hệ logic mờ loại II đại số gia tử

Một phần của tài liệu Hệ logic mờ loại hai dựa trên đại số gia tử và ứng dụng (Trang 48)

Phần này nhận đầu vào là dữ liệu test TestData, và thực hiện suy diễn trên hệ logic mờ loại II đại số gia tử để cho ra kết quả đầu ra là phân lớp tương ứng với bản ghi test đó. Quá trình này gồm hai phần:

Chuẩn hoá: Bộ dữ liệu test có các dữ liệu là số thực, tương tự như trong phần

tiền xử lý dữ liệu TrainingData, dữ liệu test cũng phải được chuẩn hoá về miền giá trị [0..1].

xi ‟=

Suy diễn: Quá trình suy diễn này được thực hiện trên hệ logic mờ loại II đại số

gia tử. Do đó, trong quá trình suy diễn, mỗi giá trị thực được chiếu lên lấy độ thuộc trong tập mờ và sau đó chuyển từ giá trị thực thành giá trị ngôn ngữ của đại số gia tử, dựa vào giá trị fm(c-) của cấu trúc đại số gia tử tương ứng với tập mờ đó. Thuật toán suy diễn trên tập mờ loại II đại số gia tử như sau:

Input: Tập các luật trên tập mờ loại II HaT2FS Các bộ dữ liệu test

Output: Số bộ dữ liệu test đúng

Bƣớc 1: Đọc một bộ dữ liệu test Bƣớc 2: value = VVVF; int result;

float consider = 0;//hệ số xem xét

Bƣớc 3: For tất cả các luật, với mỗi luật:

k = đầu ra của luật;

Với mỗi bộ x1,x2...xn với n là số thuộc tính  1( 1), 2( 2)... n( n) t meetxxx     n i i xi k consider 1 ( ) _ 

49

Bƣớc 4: If (v(w) > v(value)) value = w; result = k;

consider = consider_k

Else if (v(w) = v(value) và consider_k > consider) value = w;

result = k;

consider = consider_k End if

End For

Bƣớc 5: If (result = giá trị đầu ra đúng với bộ dữ liệu test)

số trường hợp đúng ++

2.3.4. Kết luận

Trong chương này, luận văn đã trình bày mô hình và chi tiết thứ tự các bước giải bài toán. Pha I mô tả các bước để xây dựng hệ logic mờ loại I từ tập dữ liệu training đầu vào: xây dựng tập mờ loại I, xây dựng cơ sở luật, quá trình suy diễn trên tập mờ loại I. Kết thúc pha I ta thu được hệ logic mờ loại I hoàn chỉnh bao gồm: các tập mờ loại I và cơ sở luật trên tập mờ loại I.Trong toàn bộ pha 2, luận văn đã trình bày quá trình chuyển hệ logic mờ loại I thành hệ logic mờ loại II đại số gia tử, trong đó kế thừa toàn bộ cơ sở luật. Sau đó, sử dụng các luật mờ mờ gia tử và dữ liệu cần chẩn đoán, thực hiện quá trình suy diễn trên tập mờ loại hai đại số gia tử để đưa ra kết quả phân nhóm dữ liệu vào các nhóm bệnh, từ đó đưa ra kết quả chẩn đoán.

50

CHƢƠNG 3: BÀI TOÁN ỨNG DỤNG 3.1. Các kiến thức liên quan đến bệnh tuyến giáp 3.1.1. Tính thời sự của bệnh tuyến giáp

- Ai cũng có nguy cơ mắc bệnh về tuyến giáp.

- Hiện nay các bệnh liên quan đến tuyến giáp ngày càng phổ biến [17], bao gồm các bệnh về rối loạn chức năng tuyến giáp (Cường giáp và suy giáp), Suy giáp bẩm sinh, ung thư tuyến giáp.

- Bệnh tuyến giáp không dễ phát hiện ra ngay cả khi người bệnh đi khám, vì các triệu chứng lâm sàng của nó không rõ ràng và thường bị nhầm lẫn với các bệnh khác như bệnh "Tim", "Trầm cảm", "Mất trí nhớ", "rối loạn tiền đình"....

- Trong khuôn khổ của luận văn, tôi xây dựng hệ thống hỗ trợ chẩn đoán bệnh rối loạn chức năng tuyến giáp (thường được gọi là "bệnh tuyến giáp": bao gồm tăng hoocmon tuyến giáp và giảm hoocmon tuyến giáp) vì nó là phổ biến nhất trong tất cả các bệnh về tuyến giáp (Ung thư tuyến giáp chỉ chiếm ~1% trong số những người có nguy cơ mắc bệnh về tuyến giáp).

3.1.2. Các kiến thức liên quan đến bệnh tuyến giáp

51

Hình 18: Hình ảnh tuyến giáp

- Tuyến giáp trạng (Hay gọi là tuyến giáp): là một tuyến nội tiết quan trọng, và lớn nhất trong cơ thể. [17],[18],[19].

- Vị trí: Tuyến này nằm phía trước cổ, lượng khoảng 10-20 gram, hình dạng như con bướm, ngang hàng với các đốt xương sống C5 - T1, phía trước có lớp da và cơ thịt, phía sau giáp khí quản.

- Chức năng:

+ Tiết các hormone thyroxine (T4) và triodothyrixin (T3), nhận ảnh hưởng diều hòa của hormone TSH từ tuyến yên trên não. T4/T3 có chức năng điều hòa nhiều chuyển hoá trong cơ thể.

+ Điều tiết lượng canxi trong máu luôn duy trì nồng độ 1%.

3.1.2.2. Hậu quả gì khi tuyến giáp hoạt động không tốt ?

- Nếu thiếu iot trong thức ăn sẽ gây "nhược năng tuyến giáp" với các biểu hiện: hạ thân nhiệt, trao đổi chất giảm, tăng trưởng chậm, hoạt động sinh dục giảm, tim đập chậm.Ở người xuất hiện bệnh bướu cổ, run tay và chứng đần độn.

- Hội chứng cường tuyến giáp(bệnh Basedo): do tuyến giáp hoạt động quá mạnh có các biểu hiện: tăng thân nhiệt, tim đập nhanh. Người mắc bệnh này có thể bị lồi mắt...

52

- Nếu thiếu canxi thì tuyến giáp sẽ làm việc liên tục để lấy canxi từ xương vào máu (nhằm duy trì nồng độ 1% canxi trong máu) và gây nên tình trạng "rối loạn tuyến giáp."

3.2. Bộ dữ liệu

3.2.1. Nguồn gốc bộ dữ liệu:

- Bộ dữ liệu được thu thập từ cơ sở dữ liệu của hệ thống phần mềm quản lý xét nghiệm của Bệnh viện Hữu Nghị, nơi tác giả công tác.

- Dữ liệu đầu vào là bộ bao gồm 3 thuộc tính xác định các chỉ số về Hoocmon tuyến giáp

3.2.2. Bộ dữ liệu tham khảo

- Tham khảo bộ dữ liệu về bệnh tuyến giáp trên [16] - Đặc điểm của bộ dữ liệu tham khảo:

+ Rất nhiều thuộc tính: 29 thuộc tính + Các thuộc tính là số thực hoặc Boolean + Số lượng lớp nhỏ: dưới 10 lớp

+ Có 2800 mẫu trong mỗi tập dữ liệu + Có 972 mẫu trong mỗi tập test

53

Bộ dữ liệu tham khảo

3.2.3. Chi tiết về bộ dữ liệu trong ứng dụng

Qua thu thập ý kiến đóng góp của các Chuyên gia, Bác sĩ trong lĩnh vực Nội tiết- Đái tháo đường (1. PGS-TS. Thầy thuốc ưu tú Đỗ Trung Quân, Phó chủ tịch hội Nội tiết- Đái tháo đường Việt Nam, Trưởng khoa KCBTYC Bv Bạch Mai, Kiêm Trưởng khoa Nội tiết - Đái tháo đường Bệnh viện Hữu Nghị

2. Ths.Bs Bác sỹ nội trú ĐHY Nguyễn Quang Bảy, Giảng viên ĐHY Hà Nội 3. Ths.BS Nguyễn Thị Thanh Thuỷ, Phó khoa Nội tiết ĐT đường Bệnh viện Hưu Nghị

...), tác giả đưa ra những lý do xây dựng nên bộ dữ liệu:

Bộ dữ liệu tham khảo trên [16] gồm 29 thuộc tính, nhưng phần lớn các thuộc tính này là không cần thiết trong chẩn đoán bệnh tuyến giáp ví dụ như các thuộc

54

tính từ 1 đến 16, một số thuộc tính khác cũng không cần thiết do nó chỉ nêu lên tính chất của thuộc tính kia là số thực hay Boolean (ví dụ thuộc tính số 17...).

Bộ dữ liệu trên rất phức tạp và không đầy đủ giá trị của các thuộc tính.

Trên thực tế, việc chẩn đoán ở Việt Nam chỉ sử dụng 03, 04 chỉ số lấy từ kết quả xét nghiệm để đánh giá chẩn đoán bệnh. Nên Tác giả xây dựng bộ dữ liệu có 03 thuộc tính đầu vào để sử dụng cho mục đích chẩn đoán.

Theo ý kiến của các Chuyên gia trong Lĩnh vực Nội tiết, Các chỉ số Hoocmon tuyến giáp giữa người Việt Nam và người nước ngoài về cơ bản là giống nhau, nếu không muốn nói là không có gì khác nhau. Nên hoàn toàn có thể sử dụng bộ dữ liệu của [16] để tham khảo và so sánh.

- Bộ dữ liệu gồm 180 mẫu, mỗi mẫu gồm 3 thuộc tính : TSH, T3, T4

TT THS T3 T4 Nhóm BTG 1 1.30 2.45 125 negative 2 0.72 1.25 61 negative 3 2.20 0.90 80 negative 4 0.60 2.20 123 negative 5 2.40 1.65 89 negative 6 1.10 2.26 115 negative 7 2.80 1.73 97 negative 8 3.30 1.82 109 negative 9 1.50 1.25 117 negative 10 6.00 1.60 99 negative .... ... ... ... increased 133 0.30 3.65 170 increased 134 0.40 3.50 176 increased 135 0.35 3.71 157 increased 136 0.03 4.20 178 increased 137 0.30 3.83 157 increased 138 0.45 4.10 158 increased 139 0.30 3.50 159 increased

55 140 0.25 3.70 175 increased 141 0.21 2.00 161 increased 142 0.43 3.35 172 increased 158 1.30 2.80 225 increased ... ... ... ... 166 2.40 0.05 38 decreased 167 1.00 1.00 29 decreased 168 12.00 0.30 44 decreased 169 0.20 1.50 48 decreased 170 3.90 1.50 50 decreased 171 0.88 0.30 46 decreased 172 0.35 0.30 44 decreased 173 1.50 0.50 43 decreased 174 2.40 0.05 38 decreased 175 10.50 1.00 29 decreased 176 8.00 0.60 43 decreased 177 0.70 0.60 49 decreased 178 1.00 0.20 41 decreased 179 9.10 0.05 41 decreased 180 11.00 0.10 44 decreased Bảng 2: Mô tả bộ dữ liệu - Cột 1: Số thứ tự

- Cột 2: Chỉ số TSH µIU/ml (Thyroid Stimulating Hormon) : Kích tố hướng giáp, do thùy trước tuyến yên tiết ra, có tác dụng kích thích tuyến giáp bài tiết hoocmon T3, T4, và điều hòa chuyển hóa theo cơ chế điều hòa ngược.

- Cột 3: Chỉ số T3 nmol/l (Tri Iodthyronin) là hormon tuyến giáp hoạt động mạnh nhất ở máu. Nó tăng hay giảm thường đi đôi với các trường hợp T4

- Cột 4: Chỉ số T4 nmol/l (Thyroxin - tetraidothyronin).

- Cột 5: Lớp bệnh chẩn đoán: Negative là không mắc bệnh tuyến giáp; increased: bị tăng hóc môn tuyến giáp; và decreased là giảm hoocmon tuyến giáp.

56

3.3. Phân tích và thiết kế chƣơng trình 3.3.1. Biểu đồ phân rã chức năng 3.3.1. Biểu đồ phân rã chức năng

Hình 19: Biểu đồ phân rã chức năng

Với một hệ thống có khả năng học, suy diễn, mà trong khuôn khổ luận văn đó là bài toán hỗ trợ chẩn đoán bệnh về tuyến giáp. Chương trình được thiết kế với 3 chức năng chính đó là: chức năng huấn luyện tham số, chức năng kiểm tra và chức năng chẩn đoán bệnh dựa trên các chỉ số xét nghiệm của bệnh nhân.

Hệ thống được phân rã với 3 chức năng chính nhằm mục đích: + Mô tả tường minh các chức năng

+ Các chức năng được vận hành độc lập, thể hiện được mục đích của luận văn + Xây dựng tri thức từ chức năng huấn luyện

+ Đánh giá được khả năng xử lý của hệ thống thông qua chức năng kiểm tra. + Chẩn đoán bệnh qua chức năng thứ ba.

Cụ thể nhƣ sau:

57

Mục đích: Dựa vào bộ dữ liệu đầu vào, hệ thống thực hiện sinh các tập luật và các độ thuộc tương ứng

- Chức năng kiểm tra: Từ bộ dữ liệu cần chẩn đoán, dựa vào các luật đã có, thực hiện quá trình suy diễn đưa ra kết quả đầu ra, để trợ giúp chẩn đoán bệnh và đánh giá mức độ tính toán chính xác của ứng dụng.

- Chức năng Chẩn đoán 1 mẫu bệnh: Người dùng nhập các chỉ số xét nghiệm làm đầu vào. Ứng dụng sẽ thực hiện suy diễn để đưa ra gợi ý chẩn đoán bệnh.

58

3.3.2. Biểu đồ mức khung cảnh

Tương tác giữa người dùng với hệ thống được thể hiện qua biểu đồ tương tác sau đây:

Hình 20: Biểu đồ mức khung cảnh:

3.3.3. Xây dựng các Module của chƣơng trình

Phần này mô tả các modul trong chương trình đã được cài đặt.

Dựa trên sơ đồ khối trong hình 9. Luận văn sẽ trình bày chi tiết việc xây dựng các Module chương trình theo các mục sau:

3.3.3.1. Pha 1.

Chuẩn hoá dữ liệu đầu vào: sử dụng lớp

public class standard

{

public struct BoundValues

{

public BoundValues( decimal maxTshIndex, decimal minTshIndex,

decimal maxT3Index, decimal minT3Index, decimal maxT4Index,

decimal minT4Index): this(){} ...

}

public standard( decimal w_TshIndex, decimal w_T3Index,

decimal w_T4Index) {

59

}

public Pattern[] Normalize( Pattern[] patterns ) { ... return normalizedPatterns.ToArray(); } } Sinh luật: Lớp Rule

public class Rule

{ ....

public Rule( int i, int j, int m, int n, Categories c, decimal cf ) { ... } } Lớp sinh luật

public static class RuleCreator

{

public static Rule[] Create(Pattern[] patterns, int k) {

...

List<Rule> rules = new List<Rule>(); ...

return rules.ToArray(); }

public static decimal CalculateDependencyValue(int k, int i,

decimal propertyValue) {

....

return dothuoc > 0 ? dothuoc : 0; }

}

3.3.3.2. Pha 2

Xây dựng cấu trúc đại số gia tử

Hàm dấu

private string getSign(string newHedge, string nextHedge, string Sign) { string result = ""; switch (newHedge) { ... return result; }

60

}

Chuyển tập mờ loại 1 thành tập mờ loại hai Đại số gia tử

private HI convertToHA(double l, double r) { HI tmpHI=new HI(); double v = 0; string FinalHA = ""; ... return tmpHI; } ...

Suy diễn trên HaT2FS

public static class HedgeAlgrbra

{

public void initVOL() {

double alpha = 0;

for (int i = 0; i < numNegative; i++) alpha += hedge[i].measure;

//calculate vol[0] negativew

VOL* temp = (VOL*)malloc(sizeof(VOL));

temp->sig = false; temp->fm = generator[0].fm; temp->fmLeft = 0; temp->fmRight = generator[0].fm;

temp->v = (1 - alpha) * generator[0].fm; //temp->next = NULL;

temp->length = 0; temp->generator = false; volFalse[0] = temp;

//calculate vol[1] positive

temp = (VOL*)malloc(sizeof(VOL));

temp->sig = true; temp->fm = generator[1].fm; temp->fmLeft = generator[0].fm; temp->fmRight = 1;

temp->v = (1 + alpha) * generator[0].fm; //temp->next = NULL;

temp->length = 0; temp->generator = true; volTrue[0] = temp;

... }

}

3.4. Môi trƣờng và công cụ phát triển

- Môi trường .NET 3.5 SP1

- Ngôn ngữ lập trình C# (Xây dựng ứng dụng Version 1.0) và C++ (Xây dựng Version 2.0) được lựa chọn để tiến hành cài đặt chương trình.

- Môi trường .NET có nhiều ưu điểm nổi bật:

 Cung cấp môi trường phát triển ứng dụng nhanh  Thư viện hỗ trợ đa dạng đầy đủ.

61  Mã nguồn rõ ràng, dễ bảo trì  Cơ chế quản lý tài nguyên an toàn  Giao diện thân thiện với người sử dụng.

- Chương trình ứng dụng được xây dựng trên cơ sở lập trình ứng dụng Windows Forms Application.

- Nền tảng giao diện người dùng của chương trình là các Form

- Các thiết kế sử dụng giao diện đồ họa thân thiện – dễ sử dụng với người dùng.

3.5. Thiết kế giao diện, hệ thống tab chức năng của chƣơng trình trình

3.5.1. Giao diện chính

Ứng dụng gồm 2 cửa sổ chính:

Màn hình xây dựng các luật

62

Hình 20: Màn hình chẩn đoán bệnh

3.5.2. Các chức năng của hệ thống

63

Bƣớc 1: Nhấn nút chọn file huấn luyên, có thể sử dụng chức năng tương tự trong

Menu File

Bƣớc 2: Đọc dữ liệu đầu vào ( Có thể sử dụng chức năng trong Menu Option

Bƣớc 3: Tạo tập luật ( Cũng có thể sử dụng chức năng Genrule trong Menu Option

để tạo luật)

(ii) Chức năng chẩn đoán bệnh, phân loại các mẫu bệnh

Sau khi tạo xong các tập luật, hệ thống thực hiện chuyển sang cửa sổ chẩn đoán bệnh.

Người dùng có thể thực hiện được 2 chức năng, một là có thể thực hiện phân loại các mẫu bệnh đầu vào để xác định bệnh của tập dữ liệu test. Hai là người dùng có thể thực hiện việc chẩn đoán bệnh cho 01 bệnh nhân dựa trên việc nhập các thông số xét nghiệm của người bệnh này vào rồi thực hiện việc chẩn đoán

64

Hình 21(b)

Hình 21(a) và Hình 21(b): Các Tab trong chức năng chẩn đoán.

[1A]: Nhập File dữ liệu đầu vào cần chẩn đoán

[2A]: Phân loại bệnh, hệ thống sẽ thực hiện tính toán và đưa ra các chẩn đoán với tập các mẫu bệnh đầu vào

[1B]: Nhập các chỉ số xét nghiệm của 1 bệnh nhân

[2B]: Nhấn nút chẩn đoán để đưa ra hỗ trợ chẩn đoán của hệ thống.

3.6. Kết luận

Chương này đã trình bày những kiến thức về bệnh tuyến giáp, tính thời sự của nó, đó là điều thôi thúc tác giả xây dựng ứng dụng dựa trên các nghiên cứu. Bộ dữ được nêu rõ nguồn gốc và cách thức xác định nên nó. Trong chương này cũng trình bày chi tiết các biểu đồ chức năng, biểu đồ mức khung cảnh, phân tích và thiết kế giao diện người dùng và các chức năng của ứng dụng cũng như các hàm tính toán tiêu biểu trong ứng dụng. Giao diện chương trình được thiết kế đơn giản, dễ thao tác, thân thiện với người dùng. Trong chương tiếp theo, luận văn sẽ trình bày các kết quả đạt được và đánh giá, những tồn đọng cũng như định hướng phát triển.

65

CHƢƠNG 4: KẾT QUẢ VÀ ĐÁNH GIÁ 4.1. Các kết quả đạt đƣợc

Một phần của tài liệu Hệ logic mờ loại hai dựa trên đại số gia tử và ứng dụng (Trang 48)

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

(73 trang)