Input
F - Tất cả các thuộc tính x trong dữ liệu D
- Hệ số khơng ổn định cho phép
Output
S - Tập M thuộc tính thỏa tiêu chí khơng ổn định
Begin
1: Initialize: S = {}, N = Số các thuộc tính của D
2: For i = 1 to N do
3: For mỗi tập con S cĩ i thuộc tính do
4: If InconCheck (S, D) ≤ then 5: Return S 6: End if 7: End for 8: End for End
a.2. Thuật tốn AAB
Được Liu đưa ra năm 1998, ABB là viết tắt của cụm từ Automated Branch and Bound. Chữ tự động (automated) ở đây cĩ nghĩa là cận (bound) được xác định một cách tự động, điều này khơng giống như thuật tốn nhánh và cận cổ điển, cận phải được xác định trước. Dưới đây thể hiện mã giả của thuật tốn ABB (Thuật tốn 2.2):
Thuật tốn 2.2. Thuật tốn AAB Input Input
D - Tập dữ liệu
S - Tập hợp tất cả các thuộc tính trong dữ liệu D
- Hệ số khơng ổn định như thước đo đánh giá
Q - Một hàng đợi rỗng S1, S2 - Các tập hợp con
Output
Smin - Tập M thuộc tính thỏa tiêu chí khơng ổn định
Begin
1: Initialize: L = {S}, = InconCheck (S,D)
2: ABB (S,D)
3: For mỗi thuộc tính x in S do
4: S1 = S - x #Bỏ 1 thuợc tính tại 1 thời điểm
5: enque (Q,S1) #Cho S1 vào hàng đợi Q
6: End for
7: While not empty (Q)
9: If (S2 là hợp lệ and InconCheck (S2,D) ≤ )
10: L = append (S2,L)
11: ABB (S2,D)
12: End if
13: End while
14: Smin = Tập con tối thiểu trong L thỏa tiêu chí khơng ổn định
End
Thuật tốn ABB bắt đầu với một tập tất cả các thuộc tính, ABB thực hiện chiến lược tìm kiếm theo chiều rộng. Tại mỗi bước thuật tốn lần lượt loại bỏ một thuộc tính cho đến khi khơng cịn một thuộc tính nào cĩ thể được loại bỏ mà vẫn thỏa mãn tiêu chí độ ổn định. ABB thực hiện việc mở rộng khơng gian tìm kiếm cũng giống như là việc cắt tỉa một cây. Một nhánh bị “tỉa” khi nĩ khơng thể phát triển thêm được nữa do việc vi phạm tiêu chí ổn định. Khi một nhánh khơng thể phát triển thêm được nữa thì gốc của nhánh cĩ thể là một trong những “ứng cử viên” cho kết quả của thuật tốn. Cuối cùng, một tập với số lượng các thuộc tính nhỏ nhất được lựa chọn nếu nĩ thỏa mãn tiêu chí đo lường U.
b) Tìm kiếm theo kinh nghiệm
Cĩ rất nhiều thuật tốn lựa chọn thuộc tính theo kinh nghiệm. Nhìn chung, các thuật tốn này đều là sự đánh đổi việc tìm ra một tập con tốt nhất, với việc tìm ra một tập con tốt cĩ thể chấp nhận được ở chừng mực nào đĩ nhưng cĩ thời gian thực hiện nhanh hơn. Mặc dù, mục đích của các thuật tốn tìm kiếm theo kinh nghiệm vẫn là tìm ra một tập con tối ưu.
Ví dụ như trường hợp tìm kiếm theo kinh nghiệm qua xếp hạng thuộc tính [7] ở Thuật tốn 2.3. Cĩ hai giai đoạn được thực hiện: Ở giai đoạn thứ nhất, các thuộc tính được tính tốn và xếp hạng theo một thước đo đánh giá (dịng 1-5). Ở giai đoạn thứ hai (dịng 6-16), các thuộc tính lần lượt được thêm vào tập hợp con BestSubset theo danh sách các thuộc tính đã được sắp xếp ở giai đoạn trước. Nếu việc thêm vào giúp cải thiện chất lượng phân lớp, thuộc tính sẽ được giữ lại trong BestSubset, ngược lại thuộc tính sẽ bị loại bỏ.