Các thuật toán theo cách tiếp cận wrapper

Một phần của tài liệu LỰA CHỌN THUỘC TÍNH TRONG KHAI PHÁ DỮ LIỆU (Trang 43)

3.3.1 Thuật toán LVW

LVW là thuật toán rút gọn thuộc tính kiểu wrapper, xây dựng dựa trên thuật toán LVF đã trình bày trong mục 3.1.3. Tựa code của nó là như sau:

LVW(C, K, ε).

C : tập tất cả các thuộc tính điều kiện; K : Ngưỡng cập nhật;

ε : Ngưỡng sai số.

(1) R ← C ; k = 0 ;

(2) While ε chưa được cập nhật lần thứ K (3) T ← randomfeatureSubset( ); (4) t learn( )R ;

(5) if if ( t ) or ( t and T R) (6) output T ;

(8) learn( )R ;

Trước tiên LVW coi toàn bộ tập thuộc tính điều kiện là tập con tốt nhất. Sau đó lần lượt sinh các tập con một cách ngẫu nhiên và đánh giá chúng thông qua kết quả áp dụng một thuật học. Quá trình này tiếp tục cho đến khi giá trị sai số ε đã được cập nhật đến lần thứ K (điều kiện dừng quy định trước) mà vẫn

không phát hiện được tập con nào tốt hơn. Cuối cùng, LVF thực hiện việc kiểm chứng đối với kết quả (tập con) thu được. Trong các tài liệu hiện hành, thuật học thường được sử dụng để đánh giá các tập con thuộc tính là thuật học luật phân lớp bằng cây quyết định C4.5 của Quinlan, do tính đơn giản và độ hiệu quả của nó.

3.3.2 Thuật toán NEURALNET

NEURALNET cũng là thuật toán lựa chọn thuộc tính kiểu wrapper sử dụng mạng nơron. Thuật toán này áp dụng phương pháp tìm kiếm tập con tối ưu bằng cách loại dần. Lược đồ của NEURALNET là như sau:

NEURALNET( ,C max).

C : tập tất cả các thuộc tính điều kiện;

max: ngưỡng sai số phân lớp cho phép đối với mạng. (1) R ← C ; εw = 0 ; (2) do (3) T ← R ; (4) x R (5) S R x ; (6) S = trainNet(S) ; (7) if S w (8) w S; w x; (9) R R w ;

(10) until R max ;

(11)trainNet(T) ;

NEURALNET sử dụng một mạng nơron 3 lớp và một hàm đánh giá sai số (bao gồm cả sai số phân lớp lẫn độ phức tạp của mạng) trong suốt quá trình lựa chọn tập con thuộc tính tối ưu. Đầu tiên, NEURALNET coi toàn bộ tập thuộc tính điều kiện ban đầu là tập con tốt nhất với giá trị hàm đánh giá bằng 0. Sau đó thực hiện một quá trình tìm kiếm lùi. Tại mỗi vòng lặp, mạng được huấn luyện với mỗi tập con thuộc tính thu được bằng cách bớt đi một thuộc tính khỏi tập tốt nhất hiện thời. Một thuộc tính sẽ bị loại bỏ vĩnh viễn khỏi tập hiện thời nếu việc loại bớt nó làm tăng ít nhất giá trị hàm đánh giá (sai số phân lớp và độ phức tạp của mạng). Quá trình lặp tiếp tục cho đến khi giá trị hàm đánh giá cập nhật lớn hơn mức ngưỡng cho phép.

3.3. Một số thuật toán khác 3.3.1. Thuật toán Genetic 3.3.1. Thuật toán Genetic

Các thuật toán genetic là các thuật toán rất hiệu quả cho việc lựa chọn nhanh các thuộc tính. Không giống các chiến lược tìm kiếm kinh điển chỉ dẫn đến một lời giải duy nhất, các thuật toán genetic cho ta nhiều tập con thuộc tính tối ưu hoặc gần tối ưu.

Trong các thuật toán genetic, mỗi tập con thuộc tính được biểu diễn bằng một sâu nhị phân có độ dài bằng số thuộc tính trong tập dữ liệu ban đầu. Vị trí thứ j trong sâu nhị phân là 1 hoặc 0 tùy thuộc vào thuộc tính thứ j có mặt hay

không có mặt trong tập con. Quy trình chung của các thuật toán genetic là như sau:

Hình 3.1.Lựa chọn thuộc tính bằng các thuật toán Genetic

Đầu tiên, một quần thể các sâu nhị phân được tạo lập. Việc tạo ra quần thể đầu tiên này như thế nào, với kích thước bao nhiêu là vấn đề quan trọng. Khi đã có quần thể các tập con, thuật toán tiến hành áp dụng các toán tử genetic (lai ghép, đột biến). Các toán tử này cùng với các xác suất áp dụng chúng được xem xét lựa chọn một cách kỹ lưỡng. Sau khi áp dụng các toán tử một quần thể tập con mới sẽ được tạo ra. Có hai cách đánh giá các tập con thuộc tính trong quần thể:

Nếu việc lựa chọn thuộc tính sử dụng tiếp cận filter thì độ phù hợp của mỗi tập con thuộc tính X được đánh giá thông qua một hàm tiêu chuẩn

( )

J X . Giá trị ( )J X càng lớn tập X càng tốt. Hàm tiêu chuẩn ( )J X

thường được sử dụng là độ đo entropy theo Shannon hoặc hàm đánh giá độ phụ thuộc theo lý thuyết tập thô.

Đối với cách tiếp cận wrapper, mỗi tập con thuộc tính được đánh giá thông qua sai số phân lớp của thuật học được sử dụng. Sai số phân lớp càng nhỏ tập con tập con tương ứng càng tốt.

Đối với cả hai cách tiếp cận filter và wrapper, để định hướng cho việc tìm tập con tối ưu có kích thước nhỏ nhất, người ta đưa thêm vào hàm đánh giá độ phù hợp tham số kích thước của tập con. Để dừng quá trình tiến hóa, một tiêu chuẩn dừng. Tiêu chuẩn dừng thường được sử dụng là số các thế hệ được sinh ra hoặc ngưỡng tối thiểu cho mức độ phù hợp của tập con được chọn. Nếu tiêu chuẩn dừng không thỏa mãn, các tập con thuộc tính sẽ lại tiếp tục được lựa chọn và quá trình mô tả trên đây sẽ lặp lại. Các chiến lược lựa chọn thường được áp dụng là chiến lược bánh xe roulette và chiến lược căn cứ vào thứ hạng. Với chiến lược lựa chọn bánh xe roulette, xác suất để một tập con được chọn tỷ lệ thuận với độ phù hợp của nó. Với chiến lược lựa chọn căn cứ vào thứ hạng, các tập con được sắp thứ tự theo độ phù hợp của chúng và xác suất để một tập con được chọn tỷ lệ thuận với thứ tự của nó trong danh sách xếp hạng. (adsbygoogle = window.adsbygoogle || []).push({});

Cũng như mọi cách tiếp cận khác, các thuật toán genetic thường chỉ lựa chọn được tập con thuộc tính tối ưu cục bộ. Bên cạnh đó, do có nhiều thế hệ các tập con thuộc tính được tạo, việc đánh giá độ phù hợp của chúng sẽ tiêu tốn rất nhiều thời gian.

3.3.2. Lựa chọn thuộc tính thông qua rời rạc hóa dữ liệu

Rời rạc hóa dữ liệu cũng là một khâu trong bước tiền xử lý. Rời rạc hóa dữ liệu là việc biến đổi các thuộc tính định lượng liên tục thành những thuộc tính rời rạc thỏa mãn một tiêu chuẩn quy định. Rời rạc hóa dữ liệu trước khi khai phá có ba lợi ích:

Cho phép áp dụng các thuật toán khai phá hiệu quả hiện có, Làm giảm kích thước dữ liệu, tăng tốc độ tính toán,

Ngoài các lợi ích trên, gần đây người ta còn sử dụng một số thuật toán rời rạc hóa vào việc giải quyết vấn đề lựa chọn thuộc tính trong khai phá dữ liệu và học máy. Mục này trình bày hai thuật toán rời rạc hóa như thế, đó là ChiMerge và Chi2. Chi2 là phát triển của KhiMerge. Cả hai thuật toán này đều là những thuật toán rời rạc hóa có giám sát (nghĩa là có sử dụng thông tin của thuộc tính quyết định (nhãn lớp). Để rời rạc hóa các thuộc tính, chúng áp dụng phương pháp kết nối từng bước các khoảng giá trị (từ dưới lên) sử dụng phép kiểm định Khi-bình-phương đối với giả thuyết về sự độc lập giữa thuộc tính nhãn lớp và mỗi cặp khoảng giá trị liền kề của thuộc tính. Khi quá trình rời rạc hóa kết thúc,

nếu tất cả các giá trị của một thuộc tính nào đó được gộp lại thành một khoảng duy nhất thì thuộc tính đó sẽ bị loại khỏi tập con thuộc tính lựa chọn.

Trước khi trình bày thuật toán ChiMerge và Chi2, ta trình bày khái niệm về bảng tiếp liên (contingency table) và phép kiểm định Khi-bình-phương.

Bảng tiếp liên và phép kiểm định sự độc lập Khi-bình-phƣơng

Trong thống kê toán học, để kiểm tra giả thuyết về sự độc lập của hai biến ngẫu nhiên X và Y (liên tục hay rời rạc) người ta đã đề xuất phép kiểm định Khi- bình-phương như sau:

Chia miền giá trị của X và Y thành một số hữu hạn các khoảng. Nếu X hay

Y chỉ nhận một số ít giá trị thì có thể coi mỗi giá trị là một khoảng. Đối với biến

ngẫu nhiên liên tục nên chia miền giá trị của nó thành các khoảng có độ rộng bằng nhau.

Giả sử có mẫu cỡ N về véc tơ ngẫu nhiên (X,Y). Gọi

- Ai là biến cố X nhận giá trị trong khoảng thứ i, i = 1, 2, … , r ; - Bj là biến cố Y nhận giá trị trong khoảng thứ j, j = 1, 2, … , s ;

- ni j là số cá thể mẫu có giá trị X trong khoảng thứ i và giá trị Y trong

khoảng thứ j, (tức ni j là tần số quan sát được của biến cố A Bi j) ;

- . i j

1

s

i j

n n là số cá thể mẫu có giá trị X thuộc khoảng i (tức tần số quan

sát của biến cố Ai ) ; - . i j 1 r j i

n n là số cá thể mẫu có giá trị Y thuộc khoảng j (tức tần số quan

sát của biến cố Bj ) ; Hiển nhiên, 1 1 r s i j i j n N .

Các dữ liệu trên được sắp vào một bảng gọi là bảng tiếp liên (hay bảng chéo): Biến 1 2 . . . s Tổng 1 2 . . . r 11 n n12 . . . n1s 21 n n21 . . . n2s . . . . . . . . . 1 r n nr1 . . . nr s 1 . n 2. n . . . . r n Tổng n. 1 n. 2 . . . n.s N

Từ bảng dữ liệu trên thu được:

- Tần số quan sát của biến cố A Bi jni j, i = 1, 2, … , r ; j = 1, 2, … , s. - Ước lượng tần số lý thuyết các cá thể mẫu có giá trị X thuộc khoảng thứ i

và giá trị Y thuộc khoảng thứ j khi giả thuyết về sự độc lập giữa X và Y

đúng. Ước lượng đó là . . . . i j i j n n n n N N N N

Để kiểm định giả thuyết (adsbygoogle = window.adsbygoogle || []).push({});

H0 : X và Y độc lập

với đối thuyết

H1 : X và Y không độc lập, người ta sử dụng thống kê 2 sau đây: 2 . . 2 . . 1 1 i j i j r s i j i j n n n N n n N (1) Có thể thấy 2

là số đo đánh giá mức độ sai khác giữa các tần số lý thuyết và tần số quan sát được của các biến cố A Bi j khi X và Y là độc lập nhau.

Người ta đã chứng minh rằng với cỡ mẫu N đủ lớn, 2 sẽ có phân phối tiệm cận Khi-bình-phương với (r 1)(s 1) bậc tự do. Từ đó, suy ra quy tắc kiểm định gỉa thuyết H0 là như sau:

- Tính giá trị của thống kê 2

theo công thức (1);

- Tra bảng phân phối Khi-bình-phương (r 1)(s 1) bậc tự do, tìm phân vị (giá trị ngưỡng) 2

ứng với mức ý nghĩa đã cho;

- Bác bỏ giả thuyết H0 nếu 2 2, chấp nhận H0 trong trường hợp ngược lại 2 2

.

2 2

có nghĩa là với xác suất 1 có thể khẳng định hai biến ngẫu nhiên X và Y là độc lập nhau.

Thuật toán ChiMerge

Giả sử thuộc tính quyết định (nhãn lớp) trong bảng quyết định có k giá trị

phân biệt. Thuật toán ChiMerge bao gồm các bước sau đây: 1. Chọn mức ý nghĩa (thường là 0,05 hoặc 0,1) ;

2. Sắp thứ tự dữ liệu của thuộc tính cần rời rạc hóa. Bắt đầu quá trình rời rạc hóa bằng cách coi mỗi giá trị là một khoảng ;

3. Với mỗi cặp khoảng liền kề, tính giá trị thống kê 2

theo công thức: 2 . . 2 2 . . 1 1 i j i j k i j i j n n n N n n N (2)

4. Kết nối cặp khoảng liền kề cho giá trị 2

nhỏ nhất và thỏa mãn

2 2

. (Giá trị ngưỡng 2 là phân vị mức của phân phối Khi- bình-phương với k – 1 bậc tự do, (tra được từ bảng phân phối Khi-bình- phương).

5. Lặp lại các bước 2-3 cho đến khi tất cả các giá 2

tính được đối với mọi cặp khoảng lớn hơn giá trị ngưỡng 2

. ChiMerge có độ phức tạp tính toán là 2

O(N ) trong đó N là số đối tượng có trong bảng quyết định. Tuy vậy, với một số thao tác tối ưu hóa có thể làm giảm độ phức tạp xuống O(N.logN).

Thuật toán Chi2

Chi2 là thuật toán do Liu và Setino phát triển dựa trên nền thuật toán ChiMerge [ ]. Khó khăn gặp phải khi sử dụng ChiMerge là việc chọn giá trị thích hợp cho mức ý nghĩa . Để giải quyết khó khăn này, Liu và Setino đã cải tiến ChiMerge theo hai hướng:

- Để cho thuật toán tự động xác định giá trị từ chính bản thân dữ liệu huấn luyện. Hơn thế, giá trị được tính toán riêng cho mỗi thuộc tính cần rời rạc hóa. (adsbygoogle = window.adsbygoogle || []).push({});

- Lấy tỷ lệ dữ liệu không nhất quán làm tiêu chuẩn dừng. Thay vì cố định trước mức ý nghĩa , Chi2 cho phép tự động giảm dần giá trị này. Quá trình rời rạc hóa một thuộc tính nào đó sẽ tiếp tục cho đến khi tiêu chuẩn dừng thỏa mãn.

Thuật toán Chi2 bao gồm hai pha.

Pha 1:

1. Cho mức ý nghĩa giá trị ban đầu lớn (chẳng hạn bằng 0,5) ; 2. Sắp thứ tự dữ liệu theo thuộc tính rời rạc hóa ;

3. Bắt đầu quá trình rời rạc hóa bằng cách coi mỗi giá trị là một khoảng ; 4. Với mỗi cặp khoảng liền kề, tính giá trị thống kê 2

5. Kết nối thành một khoảng cặp khoảng liền kề cho giá trị 2

nhỏ nhất ; 6. Lặp lại các bước 2-4 cho đến khi không còn cặp khoảng liền kề nào có thể

kết nối được (không có giá trị 2

nào nhỏ hơn ngưỡng 2 ) ; 7. Lặp lại các bước 2-5 cho mỗi thuộc tính cần rời rạc hóa ; 8. Giảm mức ý nghĩa ;

9. Lặp lại toàn bộ pha 1 cho đến khi tỷ lệ không nhất quán trong dữ liệu vượt mức quy định .

Pha 2:

1. Đối với mỗi thuộc tính, cho mức ý nghĩa giá trị nhỏ nhất sau khi kết

thúc pha 1.

2. Sắp thứ tự dữ liệu theo thuộc tính;

3. Với mỗi cặp khoảng liền kề, tính giá trị thống kê 2

theo (2); 4. Kết nối thành một khoảng cặp khoảng liền kề cho giá trị 2

nhỏ nhất ; 5. Lặp lại các bước 2-4 cho đến khi không còn cặp khoảng liền kề nào có thể

kết nối được (không có giá trị 2

nào nhỏ hơn ngưỡng 2 ) ;

6. Kiểm tra tỷ lệ không nhất quán trong dữ liệu của thuộc tính. Nếu tỷ lệ này không vượt quá mức quy định, cho giảm mức ý nghĩa và tiếp tục quá trình rời rạc hóa. Trường hợp ngược lại, kết thúc phép rời rạc hóa thuộc tính;

7. Lặp lại các bước 2-7 đối với tất cả các thuộc tính còn có thể kết nối được cho đến khi không còn thuộc tính nào còn có thể tiếp tục kết nối.

Pha thứ nhất của Chi2 là một mở rộng của ChiMerge. Thay vì xác định trước mức ý nghĩa , Chi2 cho phép tự động giảm dần giá trị này. Tỷ lệ dữ liệu

không nhất quán được sử dụng làm tiêu chuẩn dừng. Các cải tiến này làm cho Chi2 có thể xác định một cách tự động các giá trị ngưỡng mà vẫn bảo tồn được thông tin phân lớp của dữ liệu ban đầu.

Pha thứ hai của Chi2 là pha tiếp tục cải thiện kết quả rời rạc hóa. Nếu các khoảng giá trị của một thuộc tính nào đó có thể tiếp tục kết nối (bằng cách cho giảm mức ý nghĩa) mà không làm cho tỷ lệ dữ liệu không nhất quán vượt qúa mức quy định, thì quá trình kết nối sẽ tiếp tục được thực hiện. Trong khi pha thứ nhất của Chi2 sử dụng mức ý nghĩa chung cho việc rời rạc hóa tất cả các thuộc tính, pha thứ hai sử dụng mức ý nghĩa khác nhau cho từng thuộc tính.

3.4. Kết luận chƣơng 3

Trong chương 3 này chúng tôi đã trình bày kết quả nghiên cứu một số thuật toán lựa chọn thuộc tính điển hình. Các thuật toán được trình bày theo ba nhóm chính: các thuật toán kiểu filter, các thuật toán kiểu wrapper và một số thuật toán khác. Các thuật toán này thường được sử dụng để lựa chọn thuộc tính giải quyết các vấn đề phân cụm và phân lớp trong khai phá dữ liệu.

Mỗi thuật toán đều có tựa code, giải thích và được minh họa bằng ví dụ tính toán cụ thể. Độ phức tạp của một số thuật toán cũng đã được chỉ ra.

Các thuật toán trình bày trong mục 3.3. là những thuật toán mới được đề xuất trong những năm gần đây. Đây là những thuật toán hiệu quả, thường được áp dụng nhất.

KẾT LUẬN

1. Nội dung nghiên cứu và kết quả đạt được của luận văn (adsbygoogle = window.adsbygoogle || []).push({});

Một phần của tài liệu LỰA CHỌN THUỘC TÍNH TRONG KHAI PHÁ DỮ LIỆU (Trang 43)