CƠ SỞ DỮ LIỆU QUAN HỆ

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 34)

2.2.1. Quan hệ

Định nghĩa 1.1. (Tệp dữ liệu).

Một tệp dữ liệu là một tệp bao gồm nhiều bản ghi (record) có cùng một cấu trúc xác định loại bản ghi, đồng thời các bản ghi lại được phân chia thành các trường dữ liệu (field).

Trong thực tế, một tệp dữ liệu có thể được coi như là các bảng được lưu trữ ở các phương tiện lưu trữ khác nhau như trên ổ cứng, đĩa từ, bằng từ hoặc trên các cơ sở dữ liệu trong hệ quản trị cơ sở dữ liệu,…

Định nghĩa 1.2. (Khái niệm quan hệ)

Cho R = {a1,...,an}là một tập hữu hạn và không rỗng các thuộc tính. Mỗi thuộc tính ai có một miền giá trị là Dai. Khi đó r là một tập các bộ {hi, ...,hm} được gọi là quan hệ trên R với hj (j=1,...,m) là một hàm:

hi:RDai aiR

sao cho hj(ai)Dai

Chúng ta cũng có thể biểu diễn quan hệ r thành một bảng như sau:

a1 a2 a3 ... an h1(a1) h1(a2) h1(a3) ... h1(an) h2(a1) h2(a2) h2(a3) ... h2(an) ... ... ... ... ... ... ... ... ... ... hm(a1) hm(a2) hm(a3) ... hm(an)

Trong đó, hj(ai) là các giá trị của từng thuộc tính (i=1..n; j=1..m)

2.2.2. Cơ sở dữ liệu quan hệ

Một cơ sở dữ liệu thông thường bao gồm một tập các quan hệ được gọi là cơ sở dữ liệu quan hệ. Đối với người sử dụng, một cơ sở dữ liệu quan hệ là một cơ sở dữ liệu bao gồm các bảng thay đổi theo thời gian.

Khi sử dụng một cơ sở dữ liệu quan hệ, các thao tác cơ bản và quan trọng nhất là: tạo quan hệ mới, cập nhật dữ liệu và cuối cùng là khai thác dữ liệu.

Chức năng quan trọng nhất của cơ sở dữ liệu là khai thác dữ liệu từ dữ liệu được lưu trữ. Các vấn đề liên quan đến khai thác dữ liệu luôn đi đôi với việc lưu trữ dữ liệu một cách hiệu quả.

2.2.3. Đại số quan hệ

Khi nói đến cơ sở dữ liệu quan hệ thì đại số quan hệ đóng vai trò hết sức quan trọng. Người đặt nền móng và đưa ra những đóng góp quan trọng trong việc phát triển đại số quan hệ có thể nói là E.F. Codd [6]. Đại số quan hệ cung cấp các phép toán tác động trên các quan hệ và cho kết quả cũng là các quan hệ. Các phép toán đó là phép toán hợp, phép toán giao, phép hiệu, phép toán tích Descartes, phép chọn, phép chiếu, phép kết nối và phép chia.

Ở đây, chúng ta giả sử các phép toán này đã quen thuộc.

2.2.4. Phụ thuộc hàm

2.2.4.1. Định nghĩa

a. Khái niệm phụ thuộc hàm

Cho R = {a1,...,an}là tập các thuộc tính, r = {h1,...,hm}là một quan hệ trên R, A,BR.

Khi đó chúng ta nói A xác định hàm cho B hay B phụ thuộc hàm vào A trong r. Ký hiệu:

B r f

A  hay (A,B) hay AB.

nếu(hi,hjr)(((aA)(hi(a)=hj(a))(((bB)(hi(b)=hj(b))).

b. Họ đầy đủ các phụ thuộc hàm của một quan hệ

Giả sử r là một quan hệ trên R. Họ đầy đủ các phụ thuộc hàm của r được ký hiệu Fr sao cho:

Fr={(A,B):A,BR, B

r f

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

Phụ thuộc hàm trên tập các thuộc tính R là một dãy ký tự dạng AB đúng

trong quan hệ r nếu B

r f

A  . Chúng ta cũng nói rằng r thỏa mãn AB.

2.2.4.2. Hệ tiên đề Armstrong

Giả sử R là tập các thuộc tính hữu hạn. Và giả sử P(R) là tập các tập con của R. Cho Y=P(R). Khi đó ta nói Y là một họ f trên R nếu với mọi tập thuộc tính A,B,C,DR:

1. (A,A)Y.

2. (A,B)Y,(B,C)Y(A,C)Y. 3. (A,B)Y, AC, DB  (C,D)Y. 4. (A,B)Y, (C,D)Y  (AC,BD)Y

2.2.4.3. Bao đóng của tập phụ thuộc hàm và tập thuộc tính

Giả sử F là một tập các phụ thuộc hàm trên sơ đồ quan hệ s=<R,F>. Một tập tất cả các phụ thuộc hàm có thể suy dẫn logic từ F bởi các luật của hệ tiên đề Amstrong. Ký hiệu là F+ khi đó F+ được gọi là bao đóng của F.

2.2.4.4. Khóa tối tiểu của sơ đồ quan hệ và quan hệ

a. Khóa

Giả sử r là một quan hệ, s=<R,F> là một sơ đồ quan hệ. Y là một họ f trên R, và AR. Khi đó A là một khoá của r (tương ứng là một khoá của s, một khoá của

Y) nếu R

r f

A  (ARF+, (A, R)Y).

b. Khoá tối tiểu

Chúng ta gọi A là một khoá tối tiểu của r (tương ứng của s, của Y) nếu: - A là một khoá của r (tương ứng của s, của Y).

- Bất kỳ một tập con thực sự của A không là khoá của r (tương ứng của s, của Y).

Chúng ta ký hiệu Kr, (tương ứng Ks, KY) là tập tất cả các khoá tối tiểu của r, (tương ứng của s, của Y).

2.2.4.5. Các dạng chuẩn

Thông thường, việc cập nhật một cơ sở dữ liệu được thực hiện thông qua các thao tác thêm, sửa, xóa. Các thao tác này dễ gây nên những lỗi trong cơ sở dữ liệu mà nguyên nhân chính là do quá trình lặp đi lặp lại một số dữ liệu trong quan hệ. Để làm giảm thiểu các sai sót khi cập nhật dữ liệu người ta thường tách các quan hệ thành các quan hệ nhỏ hơn hay biến đổi chúng về các dạng chuẩn thích hợp. Quá trình đó gọi là quá trình chuẩn hóa.

Trước tiên, chúng ta xét các khái niệm sau:

a. Phụ thuộc hàm đầy đủ, phụ thuộc hàm bộ phận

Cho trước F là tập phụ thuộc hàm trên R và X  Y là một phụ thuộc hàm trong F. Tập Y gọi là phụ thuộc hàm đẩy đủ vào tập X nếu không tồn tại một tập con thật sự Z nào của X mà ZYF+ . Trong trường hợp ngược lại Y được gọi là phụ thuộc bộ phận vào X.

b. Phụ thuộc hàm bắc cầu

Cho F là tập phụ thuộc hàm trên R và X,YR. Tập Y được gọi là phụ thuộc bắc cầu vào X nếu tồn tại một tập con thực sự Z của X sao cho XZF+, ZYF+, XZF+ và Y không là tập con thực sự của Z. Trong trường hợp ngược lại, Y được gọi là phụ thuộc hàm trực tiếp vào X.

Cho trước một sơ đồ quan hệ s = <R,F>, với R là tập thuộc tính và F là tập phụ thuộc hàm khi đó s được gọi là:

(1)ở dạng chuẩn 1(1NF) nếu toàn bộ miền giá trị của các thuộc tính trong s là không thể phân chia được nữa.

(2)ở dạng chuẩn 2 (2NF) nếu s ở dạng chuẩn một và mọi thuộc tính không (adsbygoogle = window.adsbygoogle || []).push({});

cơ bản của s đều phụ thuộc đầy đủ vào mọi khóa tối tiểu của s

(3)ở dạng chuẩn 3 (3NF) nếu s ở dạng chuẩn một và không có thuộc tính cơ

bản của s nào phụ thuộc vào bất kỳ một khóa tối tiểu của s

(4)ở dạng chuẩn Boyce-Codd (BCNF) nếu s ở dạng chuẩn một và không có

thuộc tính nào của s phụ thuộc bắc cầu vào bất kỳ một khóa tối tiểu của s. Đối với quan hệ r trên tập thuộc tính R, thì r được gọi là ở dạng chuẩn một (tương ứng là ở dạng chuẩn hai, dạng chuẩn ba và dạng chuẩn Boyce-Codd)

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

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 (adsbygoogle = window.adsbygoogle || []).push({});

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 (adsbygoogle = window.adsbygoogle || []).push({});

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

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 34)