Mơ hình chọn lựa thuộc tính Filter cĩ một số đặc điểm sau: (1) Mơ hình này khơng chịu ảnh hưởng của một giải thuật học cụ thể, (khơng áp dụng giải thuật học trong giai đoạn 1) nhưng lại chịu ảnh hưởng của bản chất bộ dữ liệu (sử dụng các đo lường trên bộ dữ liệu). Do đĩ, các thuộc tính được chọn lựa sau đĩ cĩ thể được sử dụng cho các giải thuật học khác nhau; (2) Các đo lường như thơng tin, khoảng cách, độc lập hoặc độ đồng nhất thường cĩ chi phí “rẻ” hơn so với đo lường độ chính xác của một lớp, vì vậy phương pháp filter cĩ thể cho ra tập thuộc tính được chọn lựa nhanh hơn; và (3) Do tính chất giản đơn của các đo lường cũng như độ phức tạp thời gian của các đo lường này thường là thấp, nên phương pháp filter cĩ thể được sử dụng trong việc xử lý các bộ dữ liệu kích cỡ lớn. Tuy nhiên, các thuộc tính được chọn lựa bởi phương pháp fitler khơng cho phép các giải thuật học hiệu chỉnh lại các sai số (do nĩ chọn lựa thuộc tính dựa trên một số tiêu chí của bộ dữ liệu mà khơng dựa trên độ chính xác của kết quả học) do đĩ kết quả của phân lớp đơi khi cĩ độ chính xác khơng cao.
Chương 3: Một số giải thuật trích chọn thuộc tính Trang 27
Chương 3: Một số giải thuật trích chọn thuộc tính
Nội dung của chương 3 sẽ trình bày một số giải thuật tiêu biểu được sử dụng trong trích chọn thuộc tính. Các giải thuật này được xem xét dưới quan điểm chiến lược tìm kiếm nào được sử dụng trong giải thuật đĩ: (i) Tìm kiếm tồn bộ, (ii) Tìm kiếm theo kinh nghiệm và (iii) Tìm kiếm xác suất. Chúng ta cũng nghiên cứu một vài phương pháp khác: phương pháp trọng số thuộc tính (feature weighting method), phương pháp lai (hybrid method) và phương pháp lớn dần (incremental method). Hình 3.1[3, 5] dưới đây thể hiện việc kết hợp giữa chiến lược tìm kiếm và hướng tìm kiếm trong chọn lựa thuộc tính.
Hướng tìm kiếm Chiến lược tìm kiếm
Tồn bộ Kinh nghiệm Khơng xác định
Forward Classic: C1 Consistency: C3 Accuracy: C5 Classic: C2 Consistency: C4 Accuracy: C6 Classic: × Consistency: × Accuracy: × Backward Classic: C7 Consistency: C9 Accuracy: C11 Classic: C8 Consistency: C10 Accuracy: C12 Classic: × Consistency: × Accuracy: × Random Classic: × Consistency: × Accuracy: × Classic: C13 Consistency: C15 Classic: C14 Consistency: C16
Chương 3: Một số giải thuật trích chọn thuộc tính Trang 28
Accuracy: C17
Accuracy: C18
Hình 3. 1: Kết hợp giữa chiến lược tìm kiếm và hướng tìm kiếm trong chọn lựa thuộc tính
3.1. Tìm kiếm tồn bộ 3.1.1. Phương pháp Focus 3.1.1. Phương pháp Focus
Phương pháp này do Almuallim và Dietterich đưa ra vào năm 1991. Phương pháp này xem xét tất cả các kết hợp cĩ thể của N các thuộc tính, bắt đầu từ một tập con rỗng các thuộc tính: là tập con thứ nhất, là tập con thứ hai,…. Khi Focus tìm ra một tập con thỏa mãn tiêu chí đo lường độ ổn định, giải thuật sẽ dừng lại. Bỏ qua độ phức tạp thời gian của giải thuật khi kiểm tra độ ổn đinh, giải thuật Focus cần tạo ra tập con nhằm mục đích tìm ra tập con m thuộc tính bé nhất thỏa mãn tiêu chí ổn định. Khi m khơng nhỏ (Ví dụ m>N/2), thì chi phí thời gian chạy giải thuật là rất lớn. Dưới đây là pseudo-code của phương pháp Focus
Focus
Input: F – all feature x in data D,
U – inconsistency rate as evaluation measure
Initialize: S= {} For i=1 to N
For each subset S of size i
If CalU(S,D) = 0 /* CalU(S,D) return inconsistency */ Return S
Output: S – minimum subset satisfies U
3.1.2. Phương pháp ABB
Được Liu đưa ra năm 1998, ABB là viết tắt của cụm từ automated Branch and Bound algorithm. Chữ tự động (automated) ở đây cĩ nghĩa là cận (bound) được xác
Chương 3: Một số giải thuật trích chọn thuộc tính Trang 29
định một cách tự động, điều này khơng giống như giải thuật nhánh và cận cổ điển, cận phải được xác định trước. Dưới đây thể hiện Psuedo-code của giải thuật ABB.
ABB Algorithm
Input: S – all feature x in data D,
U – inconsistency rate as evaluation measure, Q – an empty queue, S1, S2 – subsets Initialize: L = {S}s δ = CalU(S,D) ABB(S,D)
For each feature x in S {
S1 = S – x /* remove one featue at a time */ enque(Q,S1) }
While not Empty(Q) { S2 = deque (Q);
If (S2 is legitimate ^ CalU(S2,D) ≤ δ) L=append(S2,L)
ABB(S2,D) }
Smin = the minimum subset(x) in L sastifing U.
Output: Smin
Giải thuật 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 giải thuật 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ì
Chương 3: Một số giải thuật trích chọn thuộc tính Trang 30
gốc của nhánh cĩ thể là một trong những “ứng cử viên” cho kết quả của giải thuật. Cuối cùng, một tập với số lượng các thuộc tính nhỏ nhất được chọn lựa nếu nĩ thỏa mãn tiêu chí đo lường U.
3.2. Tìm kiếm theo kinh nghiệm
Cĩ rất nhiều phương pháp chọn lựa thuộc tính theo kinh nghiệm. Nhìn chung, các phương pháp 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 phương pháp tìm kiếm theo kinh nghiệm vẫn là tìm ra một tập con tối ưu.
Phương pháp đơn giản nhất trong các phương pháp tìm kiếm theo kinh nghiệm là “trích” ra một bộ phân lớp và thực hiện việc chọn lựa các thuộc tính bằng cách sử dụng bộ phân lớp được tạo ra trước đĩ. Dưới đây là pseudo-code của phương pháp tìm kiếm theo kinh nghiệm Wrap1:
Wrap1
Input: x – features
LA – learning algorithm
Initialize: set S ={} /* L stores selected features */ C = induceClassifier(x,LA)
S = findAllFeatures(C) /* Find all features in C */
Output: S
Trong phương pháp Wrap1, từ một tập dữ liệu N thuộc tính chúng ta áp dụng một giải thuật học trên bộ dữ liệu đĩ nhằm tìm ra một bộ phân lớp (các tham số) cĩ kết quả phân lớp tốt nhất. Sau đĩ, áp dụng bộ phân lớp này đối với tất cả các thuộc tính trong bộ dữ liệu cần phân lớp.
Một phương pháp phức tạp hơn trong việc sử dụng bộ phân lớp nhằm tìm ra các thuộc tính tốt nhất là việc sử dụng phương pháp chọn lựa thuộc tính tiến hoặc lùi (forward/backward selection). Kết hợp với việc sử dụng độ chính xác của bộ phân lớp như một tiêu chí quyết định xem một thuộc tính cĩ được chọn lựa vào tập kết quả tại mỗi lần thêm/loại bỏ thuộc tính hay khơng. Một giải thuật chọn lựa thuộc tính theo hướng tiến, tuần tự sẽ thực hiện như sau: Bắt đầu với một tập trống các thuộc tính, tại
Chương 3: Một số giải thuật trích chọn thuộc tính Trang 31
mỗi bước lặp (số lần lặp tối đa là N lần) chọn một thuộc tính từ tập các thuộc tính chưa được chọn lựa, sao cho khi thêm thuộc tính này vào bộ phân lớp sẽ cho độ chính xác phân lớp tốt hơn so với các thuộc tính đã được chọn lựa trước đĩ.
Dưới đây thể hiện pseudo-code một giải thuật tìm kiếm theo kinh nghiệm sử dụng tỷ lệ lỗi của bộ phân lớp như một tiêu chí đo lường cho việc quyết định thêm/loại bỏ thuộc tính.
Accuracy
Input: D - the training data set; F - the full set of features; Ai - feature i, i = 1,2,…..,N
Initialize: S=F /*S - full feature set */ L={} /* L - empty list */
ER = induce(D, S) /*ER - error rate with set S */
repeat min = ER; for i = 1 to N begin Si = S – Ai; ERi = induce(D, Si); if min > ERi min = ERi; index = i; end N = N-1;
remove Aindex from S and append it to L
reorganize S from 1 to N
Chương 3: Một số giải thuật trích chọn thuộc tính Trang 32
append A1 to L /*Features in L are in original indexes*/
Output: reversed L /*The first Ai in L is the best */
3.3. Tìm kiếm xác suất
Cĩ thể nĩi rằng các phương pháp xác suất là kết quả của việc các nhà nghiên cứu tiếp tục theo đuổi mục đích tìm kiếm tập con tối ưu mà khơng muốn thực hiện việc tìm kiếm tồn bộ trong khơng gian tìm kiếm. Khơng giống như hai phương pháp tìm kiếm theo kinh nghiệm và tìm kiếm tồn bộ được trình bày ở trên, các thuộc tính khơng tuần tự được loại bỏ/thêm vào từ một tập các thuộc tính cho trước. Phương pháp tìm kiếm theo xác suất cho phép tìm kiếm các tập con thuộc tính mà ở đĩ các tập con này được tạo ra một cách ngẫu nhiên. Trong nội dung này chúng ta tìm hiểu hai phương pháp xác suất là (i) LVF (Las Vegas algorithm for Filter feature selection) và (ii) LVW (Las Vegas algorithm for Wrapper feature selection).
3.3.1. Phương pháp LVF
Phương pháp LVF được Liu và Setiono đưa ra vào năm 1996, phương pháp LVF bao gồm một thủ tục cĩ thể tạo ra tạo ra các tập con thuộc tính một cách ngẫu nhiên và một thủ tục nhằm đánh giá xem mỗi tập con được tạo ra cĩ thỏa mãn tiêu chuẩn chọn lựa hay khơng. Dưới đây thể hiện pseudo-code của phương pháp LVF.
LVF
Input: maxTries - the maximum number of loops U - the inconsistency measure
D - a dataset with N features γ - an allowed inconsistency rate
initialize: list L = {} /* L stores equally good sets */ Cbest = N
for maxTries loops
begin
S = randomSet(seed)
Chương 3: Một số giải thuật trích chọn thuộc tính Trang 33
If (C < Cbest ^ CalU(S,)< γ) Sbest = S
Cbest = C
L = {S} /* L is reinitialized */ else if (C = Cbest ^ CalU(S,D)< γ)
L = append(S,L)
end
Output: L /* all equivalently good subsets found by LVF */
Kết quả của hai thủ tục trong giải thuật LVF là một tập con thuộc tính tối ưu. Đo lường được sử dụng để đánh giá trong LVF là tỷ lệ lỗi (inconsistency). Giải thuật LVF này cĩ hai tham số quan trọng đĩ là (1) Tỷ lệ lỗi của dữ liệu khi sử dụng tất cả các thuộc tính, (2) Số lượng tối đa các tập con thuộc tính được tạo ra ngẫu nhiên.
Trong pseudo-code của giải thuật LVF ở trên maxTries là một hằng số liên quan đến số lượng các thuộc tính cĩ trong tập dữ liệu ban đầu, bằng trực quan chúng ta nhận thấy rằng dữ liệu càng cĩ nhiều thuộc tính thì càng khĩ phân lớp. Thơng thường maxTries = c x N, trong đĩ c là một hằng số (c<=N). Giá trị maxTries càng lớn cĩ nghĩa là số lần lặp của giải thuật càng lớn và kết quả của giải thuật cũng tốt hơn. Một cách khác để xác định giá trị maxTries trong LVF đĩ là xác định giá trị maxTries theo khơng gian tìm kiếm mà người sử dụng muốn LVF thực hiện. Chúng ta biết rằng khơng gian tìm kiếm là 2N, nếu người sử dụng muốn LVF thực hiện việc tìm kiếm trong p% của khơng gian tìm kiếm thì maxTries=2N x p%. Hàm randomSet() yêu cầu một bộ sinh ngẫu nhiên tốt để thực hiện việc phân ngẫu nhiên các tập con thuộc tính khác nhau. Cĩ một bộ sinh số ngẫu nhiên tốt cũng cĩ nghĩa là cĩ ít hơn các tập con giống nhau được tạo ra.
3.3.2. Phương pháp LVW
LFV là một giải thuật tương đối đơn giản điều này cũng cĩ nghĩa là nĩ cĩ thể dễ dàng thay đổi được. Chúng ta cĩ thể thay đổi một trong hai thủ thục. Nếu chúng ta thay đổi thủ tục tạo ra ngẫu nhiên các tập con thuộc tính cũng cĩ nghĩa là chúng ta sẽ khơng cĩ được giải thuật tìm kiếm ngẫu nhiên. Do đĩ, chúng ta chỉ cĩ thể thay đổi thủ
Chương 3: Một số giải thuật trích chọn thuộc tính Trang 34
tục đánh giá nếu chúng ta vẫn muốn phương pháp này thuộc vào nhĩm các phương pháp chọn lựa thuộc tính dựa trên xác suất. Giả sử rằng chúng ta quyết định sử dụng độ chính xác ước lượng của bộ phân lớp như một tiêu chí đo lường, chúng ta cĩ phương pháp LWF. Psuedo-code của phương pháp LVW được thể hiện trong dưới đây.
Trong phương pháp LVW các phương pháp thống kê được áp dụng nhằm ước tính độ chính xác của bộ phân lớp. Giá trị maxTries trong LVW được xác định tương tự như trong LVF. Tuy nhiên, để chạy giải thuật học (LA) cĩ thể phải thiết lập một vài tham số khác theo yêu cầu của giải thuật học. Hàm estimate() được sử dụng trong LVW thay vì hàm CalU() trong LVF, cĩ nhiều cách để thực hiện hàm estimate() và mỗi cách cĩ thể đưa ra những kết quả chọn lựa thuộc tính khác nhau. Một điểm khác nhau nữa trong hai phương pháp này là LVF sử dụng tỷ lệ lỗi như một đo lường đánh giá, trong khi đĩ LVW sử dụng độ chính xác của bộ phân lớp như một đo lường đánh giá.
LVW
Input: maxTries - the maximum number of loops LA - a learning algorithm
D - a dataset with N features F - a full set of features
Initialize: list L = {} /*L stores sets with equal accuracy*/ Abest = estimate(D, F,LA)
for maxTries loops begin S = randomSet(seed) A = estimate(D,S,LA) if (A > Abest) Sbest = S Abest = A L = {S} /*L is reinitialized*/ else if (A = Abest)
Chương 3: Một số giải thuật trích chọn thuộc tính Trang 35
L = append(S,L) end
Output: L /*all equivalently good subsets found by LVW*/
3.4. Phương pháp trọng số thuộc tính
Một trong những phương pháp tiêu biểu nằm trong nhĩm các phương pháp trọng số thuộc tính là Relief. Phương pháp này được đề xuất bởi Kira và Rendell vào năm 1992, mục đích ban đầu của phương pháp là nhằm giải quyết một vấn đề thực tế trong phân lớp là mối tương tác quan giữa các thuộc tính (một vài thuộc tính phụ thuộc lẫn nhau trong việc xác định lớp của thực thể). Relief chọn lựa các thuộc tính dựa vào sự tương quan thống kê. Mặc dù mục đích của Relief vẫn là chọn lựa thuộc tính nhưng Relief khơng tạo ra các tập con thuộc tính, và kiểm tra các điều kiện ràng buộc của các tập con này như các phương pháp được trình bày ở trên. Thay vì việc tạo ra các tập con thuộc tính Relief tập trung vào việc lấy mẫu các thực thể (sampling) mà khơng tìm kiếm các tập con thuộc tính. Ý tưởng của Relief đĩ là: các thuộc tính tương quan là các giá trị cĩ thể phân biệt các thực thể, đĩ là các giá trị nằm gần lẫn nhau. Do đĩ, hai hàng xĩm gần nhau nhất (mỗi thực thể thuộc về một lớp khác nhau) đối với một thực thể (I) được đưa ra, một là near-hit (H) và một là near-miss (J). Về ý tưởng, một thuộc tính là liên quan nếu giá trị của nĩ là tương tự giữa I và near-hit, và khác biệt giữa I và near-miss. Trên thực tế việc kiểm tra này cĩ thể được thực hiện bằng cách tính khoảng cách tới một giá trị thuộc tính: khoảng cách này nên là bé nhất đối với I và H và lớn nhất đối với I và J. Khoảng cách của mỗi giá trị thuộc tính đối với mỗi thực thể được lấy ra ngẫu nhiên, được tổng hợp trong véc tơ w (weight), véc tơ này cĩ số chiều bằng số lượng thuộc tính. Những thuộc tính liên quan là những thuộc tính cĩ giá trị vector w vượt quá ngưỡng tương quan r. Ngưỡng tương quan này cĩ thể được xác định bằng cách sử dụng phương pháp thống kê để ước lượng khoảng. Cỡ mẫu m cĩ thể cĩ thể biến đổi và một giá trị m lớn hơn cĩ nghĩa là cĩ một ước lượng xấp xỉ tin cậy hơn.
Dưới đây là thể hiện pseudo-code của phương pháp Relief:
Relief
Input: x - features
Chương 3: Một số giải thuật trích chọn thuộc tính Trang 36
τ - adjustable relevance threshold
initialize: w = 0
for i 1 to m
begin
randomly select an instance I
find nearest_hit H and nearest_miss J
for j 1 to N
w(j) = w(j) – diff(j, I,H)2/m + diff(j, I,J)2/m
end
Output: w greater than τ
Trong pseudo-code của phương pháp Relief ở trên, hàm diff() tính khoảng cách giữa các giá trị của một số thuộc tính với hai thực thể. Đối với các thuộc tính rời rạc, giá trị khoảng cách này nhận cả giá trị 1 và 0 (1 nếu các giá trị là khác biệt và 0 nếu