0
Tải bản đầy đủ (.pdf) (72 trang)

Phụ thuộc hàm xấp xỉ

Một phần của tài liệu MỘT SỐ PHƯƠNG PHÁP XÂY DỰNG CÂY QUYẾT ĐỊNH TRONG KHAI PHÁ DỮ LIỆU (Trang 39 -39 )

Khái niệm phụ thuộc hàm xấp xỉ (approximate functional dependency ) và phương pháp phát hiện các phụ thuộc hàm xấp xỉ đã được nhiều tác giả đề cập đến và được ứng dụng trong nhiều bài toán phân lớp của data mining ([18], [23]). Theo các tác giả này thì một phụ thuộc hàm xấp xỉ là một phụ thuộc hàm hầu như đúng trên một quan hệ r (đa số các bộ của r thoả mãn điều kiện của phụ thuộc hàm). Để xác định các phụ thuộc hàm xấp xỉ người ta cần xác định được tỉ số giữa số lượng các bộ không thoả mãn luật với tổng số các bộ có trong quan hệ.

Một trường hợp xấp xỉ khác là có những nhóm thuộc tính mặc dù giữa chúng không có sự phụ thuộc hàm theo kiểu bằng nhau tuyệt đối (theo cách định nghĩa phụ thuộc hàm thông thường) mà có sự phụ thuộc theo kiểu tương quan hàm số (tuyến tính hoặc phi tuyến). Trường hợp này xảy ra khá nhiều và liên quan đến nhiều bài toán thực tế. Ví dụ giữa mã hàng hoá và đơn giá, giữa doanh thu và chi phí… Để phân biệt với khái niệm phụ thuộc hàm xấp xỉ của các tác

giả đã đưa ra ( chúng tôi gọi đó là phụ thuộc hàm xấp xỉ loại 1), phụ thuộc hàm xấp xỉ mà chúng tôi xây dựng được gọi là phụ thuộc hàm xấp xỉ loại 2.

Khái niệm về phần tử ngoại lai (outliers) đã được một số tác giả như Knorr , Arning, Hawkins đề xuất và nghiên cứu theo các hướng tiếp cận theo thống kê và độ đo ([24], [25], [26] ). Theo các hướng nghiên cứu này, các phần tử ngoại lai được xác định dựa trên sự khác biệt của một nhóm các phần tử này đối với đa số các phần tử khác trong một tập dữ liệu (khác biệt về khoảng cách, khác biệt về phân phối...). Hướng tiếp cận xác định phần tử ngoại lai theo luật (Rules Base) được chúng tôi đề xuất dựa trên việc các phần tử trong một quan hệ không tuân theo các ràng buộc, qui tắc cho trước. Các (qui tắc) ràng buộc được đề cập bao gồm những ràng buộc về cấu trúc của CSDL (phụ thuộc hàm, các dạng chuẩn,..) hoặc các ràng buộc về ngữ nghĩa mà các phần tử trong quan hệ phải tuân theo.

Việc nghiên cứu về phần tử ngoại lai có nhiều ý nghĩa ứng dụng trong việc làm sạch dữ liệu; phát hiện sai sót trong quá trình xây dựng cây quyết định khi khai phá dữ liệu. Các khái niệm và tính chất của phụ thuộc hàm xấp xỉ, giá trị ngoại lai và khoảng cách giúp xác định phụ thuộc hàm xấp xỉ và tính chất của các

2.2.5.1. Định nghĩa

a. Định nghĩa 1.

Cho , 0 ≤  ≤ 1, X  Y là phụ thuộc hàm xấp xỉ nếu: approx(XY) ≤ , với approx(XY) = 1 – (max{|s|, s là tập con của r và XY đúng trên s}/|r|). Ở đây, |s|, |r| là số phần tử của s và r [16].

b. Định nghĩa 2 (phụ thuộc hàm xấp xỉ loại 2)

Giả sử X, Y  R và với một số  cho trước , 0   < 1, ta nói rằng X xác định hàm Y mức  (hoặc nói rằng giữa X, Y có phụ thuộc hàm xấp xỉ loại 2 mức

), ký hiệu là X >Y nếu với mọi cặp bộ t1, t2  r, mà (t1(X), t2(X))  thì ta cũng có (t1(Y), t2(Y)) .

trong đó (t1(X), t2(X)) là khoảng cách giữa hai bộ giá trị trên thuộc tính,

(t1(X), t2(X)) được tính:

Với 2 bộ t1, t2  r, ta kí hiệu (t1(X), t2(X)) là khoảng cách giữa t1 và t2 trên tập thuộc tính X  R, được xác định như sau:

(t1(X), t2(X)) = max (t1(Ai) - t2(Ai)/ max(t1(Ai,t2(Ai)), Ai  X ); hàm max(x,y) là hàm chọn ra số lớn nhất trong 2 số x,y;

Trường hợp max(t1(Ai),t2(Ai)) = 0, tức t1(Ai =t2(Ai)=0 thì ta qui ước: t1(Ai) - t2(Ai)/ max(t1(Ai),t2(Ai)) = 0

2.2.5.2. Một số tính chất của phụ thuộc hàm xấp xỉ

Tồn tại thuật toán có độ phức tạp thời gian đa thức để xây dựng một cây quyết định từ một tập phụ thuộc hàm xấp xỉ cho trước.

Xét tập X là tập con của r, và Error(X) là đánh giá lỗi tập nhỏ nhất cần phải loại bỏ khỏi tập r để X là khóa của r. Nếu Error(X) <thì X được gọi là khóa xấp xỉ trên r.

Một số tính chất của hàm khoảng cách (t1(X), t2(X)):

Định nghĩa khoảng cách (t1(X), t2(X))nêu trên thoả mãn các tính chất của hàm khoảng cách:

a1. (t1(X), t2(X)) 0 với t1 , t2 , X tùy ý; a2. (t1(X), t2(X))= 0  t1(X)= t2(X).

a3. (t1(X), t2(X)) (t1(X), t3 (X)) + (t3(X), t2(X)) a4. Nếu X Y thì (t1(X), t2(X)) (t1(Y), t2(Y))

CHƢƠNG 3. MỘT SỐ PHƢƠNG PHÁP

XÂY DỰNG CÂY QUYẾT ĐỊNH

3.1. THUẬT TOÁN XÂY DỰNG CÂY QUYẾT ĐỊNH

Hầu hết các thuật toán xây dựng cây quyết định đều sử dụng phương pháp quy nạp. Phương pháp này cho phép xây dựng một cây quyết định từ một số bước cơ sở. Dưới đây là một số thuật toán xây dựng cây quyết định tiêu biểu

3.1.1. Thuật toán CLS

3.1.1.1. Giới thiệu thuật toán

Đây có thể nói là thuật toán được xây dựng dựa trên ý tưởng đầu tiên về cách thức xây dựng một cây quyết định. Thuật toán này được Hunt trình bày trong Concept Learning System (CLS) vào cuối thập niên 50 của thế kỷ trước [9]. Ý tưởng xây dựng cây quyết định này được gọi là thuật toán CLS mà tư tưởng chủ đạo của nó là chia để trị.

Thuật toán được trình bày như sau:

Bước 1. Tạo một nút T, nút này chứa tất cả các mẫu trong tập huấn luyện. Bước 2. Nếu tất cả các mẫu trong T đều có giá trị Yes (positive) đối với

thuộc tính quyết định thì gán nhãn cho nút T là Yes và dừng.

Bước 3. Nếu tất cả các mẫu trong T đều có giá trị No (Negative) đối với thuộc tính quyết định thì gán nhãn cho nút T là No và dừng.

Bước 4. Trong trường hợp ngược lại thì:

4.1. Chọn một thuộc tính X có các giá trị là v1, v2,…,vn làm nhãn cho T

4.2. Chia T thành các tập con T1,T2, ….,Tn dựa theo các giá trị của X.

4.4. Tạo các nhánh nối từ T đến các Ti, các nhánh này có nhãn tương ứng là các giá trị vi của thuộc tính X

Bước 5. Đệ quy cho mỗi nút con Ti

3.1.1.2. Ví dụ minh họa

Để có thể minh họa cho thuật toán này, chúng ta xây dựng một cây quyết định với tập dữ liệu huấn luyện như Bảng 2.1.1.1. Tập mẫu dữ liệu huấn luyện về cán bộ, công chức với STT dùng để định danh, các thuộc tính Tuổi, Hệ số lương, Ngạch công chức, Học vị là các thuộc tính ứng viên dùng để xét còn thuộc tính Chức danh dùng làm thuộc tính khẳng định, dùng để phân lớp. Cây quyết định được xây dựng dựa trên thuật toán này đối với tập huấn luyện đã cho ở trên thông qua các bước sau:

a. Chọn thuộc tính hệ số lương, ta có cây như Hình 3.1.1.1. Minh họa bước 1 thuật toán CLS:

Hệ số lương [1,2,3,4,5,6,7,8,9] Thấp Cao Trung bình [6,9,8] [1,2] [3,4,5,7]

Hình 3.1.1.1. Minh họa bước 1 thuật toán CLS

b. Tiếp theo, ta chọn thuộc tính Học vị để mở rộng nhánh bên trái, ta được cây như Hình 3.1.1.2. Minh họa bước 2 thuật toán CLS:

Hệ số lương [1,2,3,4,5,6,7,8,9] Thấp Cao Trung bình Học vị [6,9,8] [1,2] [3,4,5,7] Thạc sĩ No

Hình 3.1.1.2. Minh họa bước 2 thuật toán CLS

c. Tiếp tục ta chọn thuộc tính Học vị để mở rộng nhánh ở giữa, ta được Hình 3.1.1.3. Minh họa bước 3 thuật toán CLS:

Hệ số lương [1,2,3,4,5,6,7,8,9] Thấp Cao Trung bình Học vị [6,9,8] Học vị [1,2] [3,4,5,7] Thạc sĩ No Tiến sĩ khoa học Yes Yes Tiến sĩ

Hình 3.1.1.3. Minh họa bước 3 thuật toán CLS

c. Tiếp tục ta chọn thuộc tính Học vị để mở rộng nhánh bên phải, ta được Hình 3.1.1.4. Minh họa bước 4 thuật toán CLS:

Hệ số lương [1,2,3,4,5,6,7,8,9] Thấp Cao Trung bình Học vị [6,9,8] Học vị [1,2] Học vị [3,4,5,7] Thạc sĩ No Tiến sĩ khoa học Yes Yes [3,5,7] Tiến sĩ Tiến sĩ [4] Thạc sĩ

Hình 3.1.1.4. Minh họa bước 4 thuật toán CLS

d. Tiếp tục ta chọn thuộc tính Ngạch công chức để mở rộng nhánh bên trái, ta được Hình 3.1.1.5. Minh họa bước 5 thuật toán CLS:

Hệ số lương [1,2,3,4,5,6,7,8,9] Thấp Cao Trung bình Học vị [6,9,8] Học vị [1,2] Học vị [3,4,5,7] Thạc sĩ No Tiến sĩ khoa học Yes Yes Ngạch công chức [3,5,7] Tiến sĩ Tiến sĩ [4] Thạc sĩ Yes

Nghiên cứu viên

Yes

Nghiên cứu viên

chính

Hình 3.1.1.5. Minh họa bước 5 thuật toán CLS

e. Cuối cùng ta chọn thuộc tính Ngạch công chức để mở rộng nhánh bên trái, ta được Hình 3.1.1.6. Minh họa bước 6 thuật toán CLS:

Hệ số lương [1,2,3,4,5,6,7,8,9] Thấp Cao Trung bình Học vị [6,9,8] Học vị [1,2] Học vị [3,4,5,7] Thạc sĩ No Tiến sĩ khoa học Yes Yes Ngạch công chức [3,5,7] Tiến sĩ Tiến sĩ Ngạch công chức [4] Thạc sĩ Yes

Nghiên cứu viên

Yes

Nghiên cứu viên

chính

No

Thạc sĩ

Hình 3.1.1.6. Minh họa bước 6 thuật toán CLS

Hình 3.1.1.6 cũng chính là cây kết quả có thể đạt được khi sử dụng thuật toán CLS đối với tập huấn luyện đã cho.

Nhận xét:

Chúng ta có thể thấy rằng, tại bước 4 của thuật toán CLS, nếu chọn thuộc tính khác nhau sẽ cho chúng ta cây quyết định có hình dáng khác nhau. Điều này có nghĩa là việc chọn thuộc tính sẽ ảnh hưởng đến độ phức tạp của cây và cho ta các kết quả khác nhau. Vấn đề đặt ra là làm thế nào để chọn thuộc tính được coi là tốt nhất ở mỗi lần chọn, để cuối cùng ta có cây tối ưu. Thuật toán sau đây sẽ giải quyết vấn đề đó.

3.1.2. Thuật toán ID3 (Interative Dichotomizer)

3.1.2.1. Thuật toán ID3

Thuật toán ID3 do Quinlan [7] đưa ra là một trong những thuật toán xây dựng cây quyết định sử dụng thông tin thu được (information gain) để ước lượng, lựa chọn thuộc tính phân lớp. Thuật toán này xây dựng theo cách tiếp cận từ trên xuống bắt đầu từ một tập các đối tượng và một đặc tả của các thuộc tính. Tại mỗi đỉnh, một thuộc tính có thông tin thu được lớn nhất sẽ được chọn để phân chia tập đối tượng. Quá trình này được thực hiện đệ quy cho đến khi tập đối tượng tại một cây con trở nên thuần nhất nghĩa là nó chỉ chứa các đối tượng thuộc về cùng một lớp, tập này trở thành lá của cây.

Việc lựa chọn một thuộc tính cho phép thử là rất quan trọng, nó quyết định sự thành công của việc xây dựng cây. Thông thường việc chọn thuộc tính sử dụng cho thuật toán là sử dụng một độ đo gọi là Entropy và Information Gain của các thuộc tính để sắp xếp thứ tự chọn các thuộc tính ở mỗi bước. Entropy của một thuộc tính được tính toán từ các thuộc tính phân lớp. Đối với thuộc tính rời rạc, cần phải có các thông tin phân lớp của từng giá trị thuộc tính.

Thuật toán ID3 xác định sự phân lớp các đối tượng bằng cách kiểm tra các giá trị của các thuộc tính. ID3 xây dựng cây quyết định theo hướng từ trên xuống bắt đầu từ một tập các đối tượng và một sự đặc tả của các thuộc tính. Tại mỗi nút của cây, một thuộc tính được kiểm tra và các kết quả của phép kiểm tra này được sử dụng để chia tập đối tượng ra thành các phần theo các kết quả đó. Quy trình này được thực hiện đệ quy cho tới khi tập đối tượng trong cây con được sinh ra là thuần nhất theo một tiêu chí phân lớp nào đó. Các lớp dạng này sẽ trở thành các nhãn của các nút lá. Tại mỗi nút, thuộc tính dùng để kiểm tra được chọn dựa vào lượng Information Gain lớn nhất thông qua hàm Entropy. Information Gain là đại lượng dùng để đưa ra độ ưu tiên được chọn của các thuộc tính [5][9][12][13].

Chúng ta xét các khái niệm của hàm Entropy, Information Gain như dưới đây:

a. Entropy

Entropy cho phép xác định tính không thuần khiết của một mẫu với dữ liệu bất kỳ.

Giả sử S là tập các mẫu dương và âm, các mẫu này có thể mang các giá trị: “Yes”, “Possitive”, “True”, “+” hoặc “Có” cho mẫu dương và “No”, “Negative”, “Không”, “False”, “-“ cho mẫu âm.

P(+) là tỷ lệ mẫu dương trong S P(-) là tỷ lệ mẫu âm trong S

Khi đó, ta có thể tính Entropy của S như sau: Entropy(S) = -P(+)log2(P(+)) - P(-)log2(P(-))

Trong trường hợp tổng quát, nếu S bao gồm t lớp thì Entropy của S được tính bằng công thức: Entropy(S) =

  t i i i P P 1 2

log , trong đó Pi là tỷ lệ của các mẫu thuộc lớp i trong tập S.

Với ví dụ đã nêu ở Bảng 2.1.1.1. Tập mẫu dữ liệu huấn luyện về cán bộ, công chức, ta có thể tính toán Entropy như sau:

Tập S bao gồm 9 phần tử, trong đó có 5 mẫu có giá trị dương là “Có” và 4 mẫu có giá trị âm là “Không”, để đơn giản ta có thể ký hiệu là [5+,4-]. Entropy của tập S được tính là: Entropy(S) = Entropy([5+,4-])=     9 4 log 9 4 9 5 log 9 5 2 2 =0.991 Nhận xét:

Entropy(S) = 0 nếu tất cả các mẫu trong S đều thuộc về cùng một lớp. Thật vậy, nếu tất cả các mẫu đều dương thì P(+) = 1 và P(-) = 0.

Entropy(S)=1 nếu tập S có số mẫu dương và mẫu âm bằng nhau. Entropy(S) sẽ nằm trong khoảng [0,1] nếu số mẫu khác nhau.

b. Information Gain

Information Gain (thông tin thu được) là một độ đo mức độ hiệu quả của một thuộc tính trong bài toán phân lớp dữ liệu. Đó chính là sự rút gọn mà ta mong đợi khi phân chia các mẫu theo thuộc tính này, nó được tính theo công thức sau: Gain(S,A) =    

A Value v v v EntropyS S S S

Entropy( ) ( ), trong đó Value(A) là tập

tất cả các giá trị có thể đối với thuộc tính A, và S là tập con của S mà A có giá trị là v. Sv là tập phần tử chứa v

c. Thuật toán ID3

Thuật toán ID3 được phát biểu như sau:

Đầu vào: Tập các mẫu huấn luyện samples (thể hiện bởi các thuộc tính có giá trị rời rạc);

Tập các thuộc tính ứng viên (attribute_list)

Đầu ra: Một cây quyết định

Phát biểu thuật toán:

Function: Gen_Decision_Tree(Si, (atribute_list, test_list)) Bước 1. Tạo một nút N;

Bước 2. Nếu tất cả các mẫu samples thuộc cùng một lớp C thì trả về N như một nút lá với nhãn là C;

Bước 3. Nếu danh sách thuộc tính ứng viên atribute_list là rỗng thì trả về N như là một nút lá được gán nhãn là lớp phổ biến nhất trong các mẫu samples; Bước 4. Chọn thuộc tính kiểm tra test_atribute, là một thuộc tính trong danh

sách thuộc tính ứng viên atribute_list có giá trị Gain cao nhất; Bước 5. Gán nhãn cho nút N là tên của thuộc tính kiểm tra test_atribute; Bước 6. Với mỗi giá trị ai của thuộc tính kiểm tra test_atribute

Gọi Si là tập con các mẫu ứng với giá trị ai của thuộc tính test_atribute Nếu Si là rỗng thì

Gán vào nút lá với nhãn là lớp phổ biến nhất trong các mẫu samples; hoặc nhãn được gán là rỗng (empty)

Ngược lại gán vào một nút là nút được trả về bằng cách gọi đệ quy Generate_Decision_Tree(Si, (atribute_list, test_list));

3.1.2.2. Ví dụ minh họa

Để có thể minh họa cho thuật toán này, chúng ta xây dựng một cây quyết định với tập dữ liệu huấn luyện như Bảng 2.1.1.1. Tập mẫu dữ liệu huấn luyện về cán bộ, công chức với STT dùng để định danh, các thuộc tính Tuổi, Hệ số lương, Ngạch công chức, Học vị là các thuộc tính ứng viên dùng để xét còn thuộc tính Chức danh dùng làm thuộc tính khẳng định, dùng để phân lớp.

Với ví dụ trên, ta xác định các giá trị Gain cho các thuộc tính ứng viên (STT, Tuổi, Hệ số lương, Ngạch công chức, Học vị).

Gọi S là tập huấn luyện, S gồm 9 mẫu có phân bố như sau: ([5+, 4-]) Với thuộc tính Tuổi có các giá trị là “>40”; “30-40” và “<30”

Trong 9 mẫu của S có [3+, 1-] ứng với Tuổi “>40”; [1+, 2-] ứng với Tuổi “30-40” và [1+, 1-] ứng với Tuổi “<30”.

Vì thế, ta tính được các giá trị như sau: Value(Tuổi) = “>40”, “30-40”; “<30”

S=[5+, 4-] S>40 = [3+, 1-] S30-40 = [1+, 2-] S<30 = [1+, 1-]

) , (S Tuoi Gain ( ) ( ) 30 ; 40 30 ; 40 v value v S Entropy S S S Entropy

 = ( ) 9 2 ) ( 9 3 ) ( 9 4 )

(S Entropy S40 EntropyS3040 Entropy S30

Entropy =

   

(

 

1 ,1 ) 9 2 ) 2 , 1 ( 9 3 )

Một phần của tài liệu MỘT SỐ PHƯƠNG PHÁP XÂY DỰNG CÂY QUYẾT ĐỊNH TRONG KHAI PHÁ DỮ LIỆU (Trang 39 -39 )

×