Thuật toán khai phá luật kết hợp dựa trên lý thuyết đại số gia tử

Một phần của tài liệu Khai phá luật kết hợp dựa trên lý thuyết đại số gia tử (Trang 27)

Ký hiệu các tham số của thuật toán như sau.

n: Tổng số giao dịch trong cơ sở dư liệu(được sinh ra sau quá trình chuyển dữ liệu thô(n’) thành nhãn gia tử tương ứng)

m: Tổng số các thuộc tính(số thuộc tính của dữ liệu thô(m’)* số nhãn gia tử)

Aj: Thuộc tính thứ j, 1 ≤ j ≤ m, Aj

D(i) dữ liệu giao dịch thứ i, 1 ≤ i ≤ n

vj(i): Giá trị định lượng của Aj trong D(i);

fjk(i) giá trị độ thuộc của vj(i) với nhãn gia tử Rjk, 1 ≤ fjk(i) ≤ m;

Sup(Ajk): Độ hỗ trợ của Ajk

Sup: Giá trị hỗ trợ của mỗi tập mục lớn; Conf: độ tin cậy của mỗi tập mục lớn

Minsup: Giá trị hỗ trợ tối thiểu cho trước Minconf: Giá trị tin cậy cho trước

Cr: Tập các tập mục có khả năng với r thuộc tính (tập mục), 1 ≤ r ≤

m;

Lr: Tập các tập mục lớn thỏa mãn với r nhãn gia tử (tập mục) 1 ≤ r

≤ m;

Thuật toán khai phá dữ liệu dựa trên đại số gia tử cho các giá trị định lượng được thực hiện như sau:

Input: m’,n’, theta(tỉ lệ giữa 2 phần tử sinh), minsup và minconf

Output: luật kết hợp

Bước 1: Chuyển các giá trị định lượng vj(i) của mỗi giao dịch D(i), i từ 1 tới n, với mỗi thuộc tính Aj, nếu Aj nằm ở ngoài 1 trong 2 đầu mút ( 2 nhãn gia tử cực đại và cực tiểu) thì Aj chỉ có 1 nhãn gia tử ứng với đầu mút đó, nếu không thì Aj

28

giá trị của Aj, mỗi nhãn ứng với 1 giá trị biểu diễn độ thuộc fjk(i)(j=1,2) của Aj

với nhãn gia tử đó. Độ thuộc này được tính là khoảng cách của Aj tới giá trị biểu diễn cho nhãn gia tử tương ứng.

Bước 2 : Tính giá trị hỗ trợ ,

𝑆𝑢𝑝 𝑅𝑗𝑘 = 𝑓𝑗𝑘

𝑛 𝑗 =1

𝑛

Bước 3 : Nếu Sup(Rjk) ≥ minsup thì đưa Rjk vào L1

Bước 4 : Nếu L1 không rỗng, tiếp tục bước sau, nếu rỗng thoát chương trình.

Bước 5 : Thuật toán xây dựng tập mục lớn mức r từ các tập mục lớn mức r-1 bằng cách chọn 2 tập mục lớn mức r-1 chỉ khác nhau duy nhất một mục, hợp 2 tập mục này ta được tập mục ứng viên Cr, nếu tập mục này xuất hiện trong cơ sở dữ liệu và có giá trị hỗ trợ thỏa mãn thì nó được đưa vào danh sách các tập mục lớn mức r.

Bước 6: Thực hiện theo các bước con sau đây lặp lại cho các tập mục lớn mức lớn hơn được sinh ra tiếp theo dạng (r+1) tập mục lớn S với mục (s1,s2, …, st, …, sr+1) trong Cr+1, 1≤ t ≤ r+1

 Tính giá trị hỗ trợ sup(S) của S trong giao dịch

𝑆𝑢𝑝 𝑆 = 𝑓𝑗𝑘(𝑠𝑖) (adsbygoogle = window.adsbygoogle || []).push({});

𝑘 𝑖=1

𝑛  Nếu Sup(S) ≥ minsup, thì đưa S vào Lr+1.

Bước 7 : Nếu Lr+1 là rỗng, thì thực hiện bước tiếp theo, ngược lại, đặt r=r+1, thực hiện lại bước 5 và 6.

Bước 8 : Thu thập các tập mục lớn mức lớn hơn nếu có

Bước 9 : Đưa ra các luật kết hợp từ các tập mục lớn vừa thu thập theo cách sau:  Với mỗi luật kết hợp khả thi sau đây: s1∩…∩sx∩sy∩…∩sq → sk (k=1 tới q, x=k-1, y= k+1)

Tính độ tin cậy của luật :

Conf s1∩ … ∩ sx∩ sy∩ … ∩ sq → sk =𝑆𝑢𝑝(𝑆/𝑠𝑘) 𝑆𝑢𝑝(𝑆)

29

Để minh họa thuật toán, ta xét tập dữ liệu ví dụ sau:

Bảng 3 Dữ liệu ví dụ

STT Tuổi Thu nhập 1 25 10.000.000 2 10 0 3 60 20.000.000

Giả sử khai phá luật kết hợp cho tập dữ liệu trên với 2 gia tử là rất và khá. Các nhãn ngôn ngữ tương ứng của từng trường dữ liệu sẽ là:

Bảng 4 Nhãn ngôn ngữ tương ứng

Trường Phần tử sinh Nhãn ngôn ngữ

Tuổi c Trẻ

Tuổi c+ Già

Tuổi Trung niên

Thu nhập c+ Cao Thu nhập c Thấp Thu nhập Trung bình

Minh họa thuật toán theo lần lượt các bước, với đầu vào của minsup = 0.2 và minconf = 50%, tỉ lệ gia tử µ = 0.5

 Bước 1: Chuyển các giá trị định lượng của mỗi bản ghi thành nhãn gia tử tương ứng, ta có bảng dữ liệu được chuyển theo cách xác định của thuật toán như sau: STT Tuổi Thu nhập 1 Rất trẻ<0.14> Trung bình<1.0> 2 Khá trẻ<0.86> Trung bình<1.0> 3 Rất trẻ<1.0> Rất thấp<1.0> 4 Rất già<1.0> Rất cao<1.0>

30

 Bước 2: Tính độ hỗ trợ của dữ liệu vừa được gán nhãn:

STT Dữ liệu đã gán nhãn Sup 1 Tuổi_rất_trẻ 0.285 2 Tuổi_khá_trẻ 0.215 3 Tuổi_rất_già 0.25 4 Thunhap_trungbinh 0.5 5 Thunhap_rất_cao 0.25 6 Thunhap_rất_thấp 0.25

 Bước 3: Đưa các nhãn ngôn ngữ có độ hỗ trợ lớn hơn minsup vào tập L1

 Bước 48: Xây dựng tập C2 từ L1, ta có C2 bao gồm:

STT Tập mục được gán nhãn thỏa mãn Sup 1 Tuổi_khá_trẻ, Thunhap_Trungbinh 0.638 2 Tuổi_ rất_trẻ, Thunhap_rất_thấp 0.535 3 Tuổi_rất_già, Thunhap_rất_cao 0.25

 Bước 9: Sinh luật và tính giá trị độ tin cậy của các luật

STT Luật kết hợp Độ tin cậy(%) 1 Tuổi_khá_trẻ  Thunhap_Trungbinh 45.3

2 Thunhap_Trungbinh Tuổi_khá_trẻ 78.3 3 Tuổi_rất_trẻ  Thunhap_Rất_thấp 53.27

31 (adsbygoogle = window.adsbygoogle || []).push({});

Chương 4.Thử nghiệm và đánh giá thuật toán

4.1. Dữ liệu

FAM95 là tập dữ liệu chứa dữ liệu của 63.756 gia đình được phỏng vấn vào trong cuộcđiều tra Dân (Current Population Survey - CPS) của Mỹ vào 3/1995. một tập tin ASCII bao gồm 63.756 hồ sơ (một bản ghi cho mỗi gia đình), và mỗi bản ghi có 23 biến. Mỗi biến được đại diện bởi một chuỗi có độ dài cố định, bao gồm một số không gian trống theo sau bởi một số con số. Ví dụ, thu nhập 41.344 USD được đại diện là 41.344.

Danh sách các trường trong tập dữ liệu FAM95

32 Ví dụ về dữ liệu FAM95: 40 1 1 8 1 1 1 1 4 2 40 1 1 40 41344 49158 21643 3246 25240 1 65809 58387 11 35 1 1 8 1 1 1 1 3 1 39 2 1 0 31700 36960 18987 2848 25239 1 64020 58387 11 62 2 1 8 7 3 2 2 1 0 43 5 0 0 27648 27648 21398 3209 25238 1 51277 53353 11

Trong đó các dữ liệu các trường được lưu theo thứ tự trong bảng liệt kê ở trên. Mỗi bản ghi được đánh dấu bằng kí tự enter.

4.2. Kết quả thử nghiệm và so sánh

Chương trình thử nghiệm với tập dữ liệu FAM95 với tham số đầu vào: Tỉ lệ gia tử: 0.5

Độ hỗ trợ: 0.05 Độ tin cậy: 80%

Kết quả thu được: 139 luật, dưới đây là danh sách 10 luật có độ tin cậy cao nhất

Bảng 6 Danh sách 10 luật có độ tin cậy cao nhất

Độ hộ trợ Luật kết hợp Độ tin cậy 0.285 {low_EdLe} -> {low_InFa 99.68 0.253 {low_Age} -> {low_InFa} 98.85 0.259 medium_FaPe} -> {low_InFa} 98.61 0.268 low_EdLe low_InHe} -> {low_InFa} 98.56 0.176 {medium_NuKi} -> {low_InFa} 98.43 0.101 medium_FaPe medium_EdLe} -> {low_InFa} 97.78 0.069 {medium_NuKi medium_EdLe}-> {low_InFa} 97.48 0.055 {low_Age high_EdLe} -> {low_InFa} 97.36 0.229 {medium_FaPe low_InHe} -> {low_InFa} 97.33 0.101 {low_Age medium_EdLe} -> {low_InFa} 97.29

33

Để minh họa, chúng tôi xin trình bày kết quả thu được của việc áp dụng thuật toán trên với số liệu lấy từ CSDL FAM95. Ở đây chỉ liệt kê một số luật tiêu biểu để so sánh với các kết quả trong [12].

Hình 4 So sánh 2 bảng kết quả của 2 thuật toán

Vì tôn trọng nguyên bản, trong bảng so sánh vẫn giữ lại ở đây những từ ngữ mà các tác giả trong [12] dùng ở bảng (a) (trong đó med là viết tắt của medium; aver là viết tắt của average). Còn ở bảng (b1) các từ viết tắt là ve: very; qu: quite; hi: high; lo: low; Nuki: number of Kids; FaPe: Persons in a Family; InFa: Income of a family; InHe: Income of family's head; EdLe: Level of Education. Kết quả này có được khi ta sử dụng ĐSGT có hai phần tử sinh (là high và low) cùng phần tử trung hòa medium với phân bố đều trên miền giá trị (fm(c-)=fm(c+)=0.5) và không sử dụng gia tử.Ta thấy, khi so sánh hai bảng:

 Các luật cơ bản của (a) đều có trong (b1) với độ tin cậy xấp xỉ. Chẳng hạn, luật “old age → few children” với độ tin cậy .983 ở bảng (a) ứng với luật ”high_Age → low_NuKi “ với độ tin cậy 90.26 (tức.902) ở bảng (b1) hay luật “few persons → few children” với độ tin cậy .967 ứng với luật

34

“low_FaPe → low_NuK” với độ tin cậy 78.05, luật “few education → low hincome” với độ tin cậy .897 ứng với luật “low_EdLe → low_InHe” với độ tin cậy 89.51...

 Độ tin cậy ở hai bảng có khác nhau do sử dụng về thực chất các hàm thuộc khác nhau nhưng đều ở trong ngưỡng cao giống nhau. Trong bảng (b1) có một số luật mà bảng (a) không có, thí dụ luật “low_EdLe low_InFa →low_InHe” do các tác giả trong [12] chỉ xét các luật vế trái có một mục.

 Ta có thể trích xuất các luật chi tiết hơn một cách dễ dàng như trong phụ lục A vì theo tiếp cận của ĐSGT, việc sinh các phần tử ngôn ngữ có thể tính toán dễ dàng (theo như Mệnh đề 2.1 và Định nghĩa 2.5 đã nêu) chứ không cần phải sinh ra các hàm thuộc mới theo lý thuyết tập mờ cổ điển (dễ dẫn đến sai sót như thí dụ về hàm thuộc “trẻ” và “rất trẻ” đã nói đến trong mục 2 của luận văn). Ở đây fm(c-)=fm(c+)=0.5 và µ(very)=0.875, µ(quite)=0.125.

4.3.Thử nghiệm thuật toán khai phá luật kết hợp với dữ liệu kinh tế xã hội Việt Nam

Trong thử nghiệm tiếp theo, chúng tôi sử dụng dữ liệu là báo cáo chỉ tiêu kinh tế xã hội (theo tháng) của Việt Nam có ở Trung tâm Thông tin và Thống kê của Bộ Kế hoạch Đầu tư. Về lý thuyết, dữ liệu phải qua bước tiền xử lý để đưa về dạng chuẩn có thể chạy được trên phần mềm. Bước tiền xử lý bao gồm các công đoạn nhằm khác phục những sai sót xẩy ra khi thu thập dữ liệu gây ra các lỗi thiếu (lỗ chỗ), sai sót có thể khi điền. Dữ liệu gốc bao gồm 520 mục, thời gian từ 01/1995 đến 3/2011. Tuy nhiên có rất nhiều chỉ tiêu vì nhiều lí do ta không có số liệu. Giá trị thiếu có thể do lỗi chủ quan trong quá trình nhập liệu, hoặc trong trường hợp cụ thể giá trị của thuộc tính đó không có Về mặt xử lý số liệu ban đầu, nếu có chỉ tiêu không đầy đủ ở một vài thời điểm ta có thể lấp đầy các ô trống bằng các phương pháp nội suy (lấy trung bình cộng của hai số liệu liền kề) hoặc bằng cách thay giá trị thiếu bằng giá trị phổ biến nhất của thuộc tính đó hoặc bằng giá trị có thể xảy ra nhất dựa trên thống kê. Ngoài ra, có thể có số liệu do nhầm lẫn hoặc các lí do khác mà gây nên các điểm dị thường, ta cũng nghiên cứu để làm trơn bằng các kỹ thuật tương tự như trên. Tuy nhiên, số liệu ở đây ta có là số liệu đã được hiệu chỉnh chuẩn nên bước này có thể bỏ qua. Ta cũng chỉ có thể lấy số liệu từ 01/2007 đến 03/2011vì trước đó nhiều chỉ tiêu (Thí dụ mục „Tổng mức bán lẻ hàng hoá và doanh thu dịch vụ tiêu dùng theo loại hình kinh

35

tế‟) hoàn toàn không có số liệu, trong khi những chỉ tiêu này lại là quan trọng trong việc xác lập những mối liên quan đến lạm phát. Những số liệu thiếu nhiều như vậy bắt buộc phải loại khỏi phạm vi dữ liệu khai thác trước 1/2007 vì không thể căn cứ vào đâu mà bổ xung (số liệu báo cáo kinh tế ở Việt Nam, đặc biệt là giai đoạn kinh tế tập trung, lại vừa thiếu vừa không chính xác). Tiếp theo, ta có thể loại bỏ các chỉ tiêu dư thừa. Về nguyên tắc, các chỉ tiêu là dẫn xuất của các chỉ tiêu khác, ta có thể loại bỏ. Thí dụ nếu đã có các mục “Tổng giá trị sản xuất công nghiệp” theo tháng thì mục dữ liệu “Tốc độ tăng so với tháng trước” là không cần thiết cho quá trình khai phá vì dữ liệu mục này là dẫn xuất của dữ liệu mục trước (là hiệu của tháng sau và tháng trước). Cuối cùng, sau khi khảo sát cụ thể, số liệu chúng tôi đưa vào khai thác gồm 46 mục, thời gian từ 01/2007 đến 03/2011.

Bước tiếp theo là bước xác định các ĐSGT ứng với các chỉ tiêu (một bước mờ hóa dữ liệu trong ĐSGT). Trước mắt, trong đề tài này, các ĐSGT được xây dựng đều dừng lại ở mức 0 và 1, tức là các hạng từ đều giới hạn ở mức có độ dài 0 (chỉ gồm các phần tử sinh và phần tử trung gian, như „thấp‟, „cao‟, „trung bình‟) và độ dài 1 (bao gồm các hạng từ độ dài 0 như trên và các hạng từ có độ dài 1 như „rất thấp‟, „tương đối cao‟, „rất cao‟..). Việc sinh ra các hạng từ có độ dài lớn hơn là khá dễ dàng (hoàn toàn tự động theo lý thuyết) nhưng sẽ là quá chi tiết chưa cần thiết ở đây, đồng thời sẽ tăng khối lượng tính toán lên đáng kể. Về cơ bản, việc xây dựng các ĐSGT tương ứng là dựa trên kinh nghiệm và các đánh giá mang tính chủ quan. Chẳng hạn, với chỉ tiêu thông thường, miền giá trị là đoạn [xmax,xmin] từ giá trị lớn nhất xmax đến giá trị nhỏ nhất xmin sẽ được chia làm ba đoạn bằng nhau, tương ứng với ba hạng từ của ĐSGT là „cao‟, „trung bình‟, „thấp‟. Để ý rằng trong lý thuyết ĐSGT, giữa các ĐSGT thông thường (có 2 phần tử sinh như „cao‟, „thấp‟ hoặc „khỏe‟, „yếu‟ ; „già‟, „trẻ‟..) tồn tại một đẳng cấu giữa các hạng từ. Cho nên, việc thiết lập các ĐSGT cho các chỉ tiêu là tương tự ở hầu hết các mục. Cần nói rõ thêm là không phải lúc nào ta cũng thiết lập ĐSGT bằng cách chia đều miền xác định như vậy mà phải căn cứ vào thực tế của mục. Thí dụ, mục học vấn, có miền xác định là từ lớp 1 đến Tiến sĩ khoa học chẳng hạn thì có thể chia làm 3 hoặc 4 hạng từ như „thấp‟ ứng với từ lớp 1- lớp 12, „trung bình‟ ứng với đại học, „tương đối cao‟ ứng với Tiến sĩ, „cao‟ ứng với Tiến sĩ khoa học (trong đó „tương đối cao‟ thực chất là hạng từ có đội dài 1, do tác động của gia tử „tương đối‟ lên phần tử sinh dương „cao‟). Việc chia này

36

không chia đều theo thời gian học.Tóm lại việc xác định các thông số ban đầu chủ yếu dựa vào kinh nghiệm, tuy nhiên, như đã nêu, việc xây dựng các thông số của ĐSGT (bao gồm các khoảng mờ của các phần tử sinh và độ đo tính mờ của các gia tử) vẫn có cơ sở hơn là xây dựng các hàm thuộc của các tập mờ và ngoài ra, các thông số này chỉ cần xây dựng một lần, nó gắn với ngữ nghĩa của các từ ngữ chặt chẽ hơn so với hàm thuộc của lý thuyết tập mờ.

Sau khi tiền xử lý dữ liệu, ta có thể bắt tay vào khai thác dữ liệu theo các chương trình được xây dựng theo các thuật toán đã nêu.

Dữ liệu sau khi chuẩn hóa được liệt kê ở ở phụ lục B của luận văn, gồm bảng 46 thuộc tính với số liệu báo cáo trong thời gian 52 tháng. Dưới đây là ví dụ một số thuộc tính của dữ liệu (adsbygoogle = window.adsbygoogle || []).push({});

STT Thuộc tính

1 Tổng giá trị sản xuất công nghiệp giá 1994 đã điều chỉnh yếu tố mùa vụ

2 Tổng mức bán lẻ hàng hoá và doanh thu dịch vụ tiêu dùng theo loại hình kinh tế giá hiện

hành đã điều chỉnh yếu tố mùa vụ

Các kết quả chạy chương trình trích xuất luật kết hợp cho ta thấy những yếu tố ảnh hưởng mạnh đến lạm phát. Chương trình cha ̣y ra 246 luâ ̣t với đô ̣ tin câ ̣y đầu vào là 60% và độ hỗ trợ là 0.4. Các luật liên quan đến chỉ số giá tiêu dùng (CPI) được trích xuất (danh sách chi tiết các luật được ghi tại phụ lục C của luận văn) cho thấy mối liên hệ tương đối giữa các chỉ số như: Tỉ giá, tổng cung tiền, giá xăng,… với chỉ số giá tiêu dùng. Chẳng hạn, ta có luật

{high_Chỉ số giá tiêu dùng so với kỳ gốc (1995, 2000, 2005 và 2009) low_Chênh lệch tỉ giá chính thức và thị trường tự do}

-> {high_Chỉ số giá đôla Mỹ so với kỳ gốc 1995, 2000 và 2005} Với độ tin cậy là 97,33%

Tức là nếu CPI tăng cao cộng với chênh lệch về tỉ giá (USD) giữa thị trường chính thức và tự do thấp thì thường là giá USD cao (với độ tin cậy lên đến 97.33%).

37 0.418

{high_Tỉ giá hối đoái VND/USD (trung bình tháng) low_Chênh lệch tỉ giá chính thức và thị trường tự do}

->{high_Chỉ số giá tiêu dùng so với kỳ gốc (1995, 2000, 2005 và 2009)} 62.63

Ta thấy nếu tỉ giá hối đoái VND/USD cao trong khi chênh lệch tỉ giá giữa thị trường tự do và chính thức thấp thì cũng nhiều khả năng là chỉ số CPI cao (với độ tin cậy 62.63%). Thực tế cho thấy tại thị trường tiền tệ Việt Nam tỉ giá giữa thị trường tự do thường cao

Một phần của tài liệu Khai phá luật kết hợp dựa trên lý thuyết đại số gia tử (Trang 27)