Chương 1: Tổng quan Trang 16 z Chương 2: Trích chọn thuộc tính Trích chọn thuộc tính được xem như là sự tổng hợp của ba thành phần chính: (1)Tìm kiếm, Đánh ra, Chọn lựa mô hình.1 dưới đây [3] thể hiện trích chọn thuộc tính theo 3 thành phần nói trên. 1: Ba thành phần chính của chọn lựa thuộc tính: Chiến lược tìm kiếm, Đánh giá, Chọn lựa mô hình 2. Chiến lược tìm kiếm Chọn lựa thuộc tính có thể được xem dưới góc độ như là một vấn đề tìm kiếm, trong đó mỗi bước trong không gian tìm kiếm xác định ra một tập con thuộc tính liên quan. Giả sử ta có một tập dữ liệu với 3 thuộc tính (A1, A2, A3).
Một mảng nhị phân mà mỗi thành phần của mảng được thiết lập là 1 nếu thuộc tính có chỉ số tương ứng trong mảng nhị phân được chọn. Nếu mảng có giá trị (1, 1, 1) có nghĩa là cả 3 thuộc tính được chọn và (1, 0, 0) có nghĩa là chỉ thuộc tính A1 được chọn. Do đó, sẽ có tất cả 2N tập con có thể có, trong đó N là số lượng thuộc tính của tập dữ liệu. Trong trường hợp có 3 thuộc tính sẽ có tất cả 8 trạng thái (tập con).
Một tập con tối ưu thường nằm đâu đó giữa điểm đầu và điểm cuối cây. Câu hỏi đặt ra ở đây là: Chúng ta nên bắt đầu tìm kiếm từ đâu. Vấn đề sẽ rất đơn giản nếu không gian tìm kiếm nhỏ. Tuy nhiên, trên thực tế không gian tìm kiếm thường rất lớn (2N), bắt đầu từ câu hỏi “Đâu là điểm tìm Chương 2: Trích chọn thuộc tính Trang 17 z kiếm phù hợp” sẽ xuất hiện các câu hỏi khác: Chiến lược tìm kiếm phù hợp là gì ?.
Trên thực tế chiến lược tìm kiếm lại bị ảnh hưởng bởi hướng tìm kiếm, dưới đây chúng ta sẽ lần lượt xem xét hướng tìm kiếm và chiến lược tìm kiếm. Hướng tìm kiếm Giả sử chúng ta ban đầu chưa có một khái niệm cụ thể nào về tập thuộc tính tối ưu trong không gian tìm kiếm, thì sẽ không có sự khác biệt trong việc xác định điểm xuất phát nên bắt đầu từ đâu (một tập rỗng hay một tập đủ các thuộc tính). Do đó, đối với phần lớn các vấn đề trong tìm kiếm thì trung bình thời gian để tìm ra tập con tối ưu giữa các hướng tìm kiếm khác nhau không có sự khác biệt. Tuy nhiên, hướng tìm kiếm lại có mối liên hệ chặt chẽ trong việc tạo ra tập con thuộc tính.
Một phương pháp tìm kiếm là tìm ra tập con tối ưu bắt đầu từ một tập rỗng các thuộc tính (Ví dụ: Sequential Forward Generation), phương pháp còn lại là tìm ra tập con tối ưu bằng cách lần lượt loại bỏ các thuộc tính ít quan trọng từ một tập đủ các thuộc tính ban đầu (Ví dụ: Sequential Backward Generation). Sequential forward generation (SFG): Được bắt đầu bằng một tập rỗng các thuộc tính, Sselect. Ở mỗi lần tìm kiếm một thuộc tính được thêm vào tập Sselect (do đó gọi là tuần tự). Trong mỗi lần tìm kiếm dựa trên một số tiêu chí, một thuộc tính tốt nhất trong số các thuộc tính chưa được chọn lựa sẽ được chọn để thêm vào tập Sselect.
Quá trình tìm kiếm này sẽ dừng lại khi tất cả các thuộc tính trong tập thuộc tính ban đầu được thêm vào Sselect. Một danh sách xếp hạng các thuộc tính được tạo ra theo trình tự thời gian các thuộc tính được thêm vào tập Sselect. Nếu ta biết trước một số thông tin về số lượng thuộc tính liên quan, thì một cách đơn giản chúng ta có thể chọn m thuộc tính đầu tiên trong danh sách xếp hạng. Sequential backward generation (SBG): Được bắt đầu với một tập đủ các thuộc tính, tại mỗi lần tìm kiếm dựa vào một số tiêu chí nào đó, một thuộc tính ít quan trọng sẽ bị loại bỏ.
Do đó, các thuộc tính trong tập thuộc tính sẽ dần dần bị loại bỏ cho tới khi trong tập thuộc tính chỉ còn lại một thuộc tính. Một danh sách xếp hạng các thuộc tính theo thời gian bị loại bỏ từ thấp đến cao được tạo ra. Thuộc tính bị loại bỏ cuối cùng sẽ là thuộc tính quan trọng nhất. SBG và SFG là hai phương pháp bổ xung cho nhau vì đôi khi tìm ra thuộc tính quan trọng nhất là dễ dàng hơn so với tìm ra thuộc tính ít quan trọng và ngược lại.
Nếu trong trường hợp tồn tại một tập thuộc tính tối ưu mà tập thuộc tính này lại không nằm trong khu vực giữa của không gian tìm kiếm, thì việc chúng ta bắt đầu tìm kiếm từ cả hai phía của không gian tìm kiếm là giải pháp tối ưu. Một cách trực quan, Chương 2: Trích chọn thuộc tính Trang 18 z chúng ta thấy rằng phương pháp này sẽ chạy nhanh hơn phương pháp tìm kiếm theo một hướng. Dưới đây, ta sẽ sem xét phương pháp này. Birectional Generation(BG): Được bắt đầu ở cả hai hướng trong không gian tìm kiếm, ví dụ hai quá trình tìm kiếm được thực hiện đồng thời.
Quá trình tìm kiếm sẽ dừng lại khi gặp một trong hai trường hợp sau: (1) Khi một trong hai chiều tìm kiếm tìm được tập m thuộc tính tốt nhất trước khi đi đến điểm giữa trong không gian tìm kiếm, hoặc (2) Cả hai chiều tìm kiếm đến điểm giữa trong không gian tìm kiếm. Nếu giả sử giả thuyết là chúng ta hoàn toàn chưa có thông tin về m thuộc tính tốt nhất là đúng thì trong mọi trường hợp, tìm kiếm theo một chiều sẽ mất một nửa thời gian để đi đến điểm giữa của không gian tìm kiếm. Phương pháp BG sẽ tránh được nhược điểm trên. Random Generation(RG): Bắt đầu tìm kiếm theo một hướng ngẫu nhiên.
Thêm hay loại bỏ bớt một thuộc tính cũng được thực hiện một cách ngẫu nhiên. RG cố gắng tránh việc gặp tối ưu địa phương do việc cố định chỉ đi theo một chiều nào đó trong việc tạo ra tập thuộc tính tối ưu. Không giống như FSG hay FBG, kích cỡ của tập con thuộc tính được tạo ra tiếp theo không được xác định. Tuy nhiên, chúng ta có thể thấy được xu hướng của số lượng thuộc tính được chọn là tăng lên hay giảm đi.
Các chiến lược tìm kiếm Trong trường hợp số lượng thuộc tính (N) là nhỏ thì không gian tìm kiếm là không lớn. Tuy nhiên không gian tìm kiếm sẽ tăng theo hàm mũ khi N tăng do mối quan hệ S=2N, trong đó S là không gian tìm kiếm với N thuộc tính và 2 biểu thị việc chọn hay không chọn một thuộc tính. Câu hỏi về chiến lược tìm kiếm nào được chọn đặt ra trong trường hợp không gian tìm kiếm là lớn. Cũng cần lưu ý rằng trong một không gian tìm kiếm nếu tìm kiếm càng nhiều (càng kỹ) có nghĩa là sẽ tìm được một tập con tốt hơn.
Tuy nhiên, tìm kiếm nhiều có nghĩa là sẽ mất nhiều thời gian và nguồn lực mà chúng ta lại thường luôn hạn chế về nguồn lực. Do vậy, mục đích là tìm được một tập con tối ưu nhất có thể trong thời gian ít nhất có thể. Các chiến lược tìm kiếm có thể được chia thành 3 nhóm dưới đây. Tìm kiếm toàn bộ (Exhausive/Complete Search): Đây là phương pháp tìm tất cả các khả năng có thể của các tập con sau đó tìm một tập con tối ưu nhất.
Nhìn chung, độ phức tạp không gian của phương pháp này (số lượng tập con cần tạo ra) là O(2N). Nếu chúng ta biết được hướng tìm kiếm, thì không gian tìm kiếm là (N0) + (N1) + …+ (NM), trong đó M là số lượng thuộc tính tối thiểu của một tập con thỏa mãn một số tiêu chí đánh giá nào đó. Chương 2: Trích chọn thuộc tính Trang 19 z Tìm kiếm theo kinh nghiệm (Heuristic Search): Như tên gọi của phương pháp, phương pháp tìm kiếm theo kinh nghiệm được triển khai trong khi tìm kiếm, điều này tránh được việc tìm kiếm một cách khô cứng, máy móc (brute-force search) nhưng phương pháp này cũng đi cùng với nguy cơ không tìm được các tập con tối ưu. Độ phức tạp không gian của phương pháp tìm kiếm theo kinh nhiệm là đường đi nối từ điểm bắt đầu đến điểm kết thúc (điểm tìm ra tập con tối ưu).
Độ dài tối đa của đường đi này là N và số lượng tập con được tạo ra là O(N). Phương pháp tìm kiếm theo kinh nghiệm cho ra kết quả nhanh hơn so với phương pháp tìm kiếm toàn bộ, do phương pháp này chỉ tìm kiếm theo một đường đi cụ thể và tìm ra một tập con gần tối ưu. Tìm kiếm không xác đinh(Nondeterministic Search): Không giống như hai chiến lược tìm kiếm được trình bày ở trên, chiến lược này tìm kiếm tập con kế tiếp theo kiểu ngẫu nhiên. Có hai đặc điểm chính của chiến lược tìm kiếm này: (1) Chúng ta không cần phải đợi cho đến khi tìm kiếm kết thúc; và (2) Chúng ta không biết khi nào tập tối ưu được xuất hiện mặc dù chúng ta biết rằng tại mỗi bước có một tập tốt hơn xuất hiện.2 dưới đây thể hiện mối quan hệ giữa hướng tìm kiếm và chiến lược tìm kiếm.
X thể hiện sự kết hợp giữa chiến lược tìm kiếm và hướng tìm kiếm là không khả thi. Chiến lược tìm kiếm Hướng tìm kiếm Toàn bộ Kinh nghiệm Không xác định SFG √ √ × SBG √ √ × BG √ √ × RG × √ √ Bảng 2. 1 : Chiến lược tìm kiếm và hướng tìm kiếm 2. Tiêu chuẩn chọn lựa Tất cả các chiến lược tìm kiếm đều có nhu cầu đánh giá một thuộc tính hoặc một tập con thuộc tính để xác định thuộc tính/tập con đó là tốt hay không tốt.
Việc đánh giá này thường là phức tạp và có nhiều chiều đánh giá. Ví dụ, đánh giá có thể được đo lường theo những khía cạnh (1) Các thuộc tính được chọn lựa có làm tăng độ chính Chương 2: Trích chọn thuộc tính Trang 20 z xác của bộ phân lớp hay không và (2) Các thuộc tính được chọn lựa có giúp làm đơn giản các kết quả học do đó sẽ các kết quả này có thể dễ dàng để hiểu hay không… Dưới đây là một số đo lường thường được sử dụng trong trích chọn thuộc tính. Đo lường thông tin Thông tin là một cách đo lường độ không ổn định của người nhận tin khi một người nhận tất cả các tin nhắn. Nếu người nhận tin biết được tin nhắn nào đang đến thì sự ngạc nhiên (uncertainty) của anh ta sẽ thấp.
Trong trường hợp anh ta hoàn toàn không biết tin nhắn nào đang đến, chúng ta giả sử rằng tất có các tin nhắn có xác suất đến bằng nhau, thì sự ngạc nhiên của anh ta đối với tin nhắn đó là cao. Trong ngữ cảnh của phân lớp, các tin nhắn là các lớp.