Giải thuật chung xõy dựng cõy quyết định

Một phần của tài liệu (LUẬN văn THẠC sĩ) phương pháp xây dựng cây quyết định dựa trên tập phụ thuộc hàm xấp xỉ (Trang 72 - 78)

Cú rất nhiều giải thuật xõy dựng cõy quyết định, nhưng nhỡn chung cỏc giải thuật đều dựa trờn chiến lược chia để trị và từ trờn xuống. Xuất phỏt từ một tập cỏc bộ để huấn luyện, với cỏc nhón lớp. Tập huấn luyện được phõn chia đệ quy thành cỏc tập con khi cõy được xõy dựng. Giải thuật chung nhất để xõy dựng cõy quyết định được đặc tả như sau [2]:

Generate_Decision_Tree (TraningSet D, attribute_list)

1. Tạo một nỳt N

2. If cỏc bộ trong D thuộc cựng một lớp C then

3. Return N là nỳt lỏ với nhón là C 4. If attribute_list là rỗng then

5. Return N là nỳt lỏ với nhón là lớp đa số trong D

6. Áp dụng hàm Attribute_selection_method (TraningSet D, attribute_list) để tỡm thuộc tớnh phõn nhỏnh tốt nhất

7. Gỏn nhón cho nỳt N là thuộc tớnh phõn nhỏnh vừa chọn được

8. If thuộc tớnh phõn nhỏnh là rời rạc và được phộp chia nhiều

nhỏnh then

9. attribute_list <- attribute_list- thuộc tớnh phõn nhỏnh 10. for each j thuộc kết quả của hàm lựa chọn thuộc tớnh

tớnh Dj là tập cỏc bộ thỏa món j if Dj là rỗng then

Else

Thờm 1 nỳt trả về bởi

Generate_Decision_Tree (Dj, attribute_list) vào nỳt N End for

11. Return N

Giải thuật cú 2 nhiệm vụ quan trọng là lựa chọ thuộc tớnh để tiếp tục tiến hành phõn nhỏnh cõy quyết định và tiếp tục phỏt triển thờm nhỏnh con.

Vấn đề chọn thuộc tớnh phõn nhỏnh [9]:

1. Việc chọn thuộc tớnh phõn nhỏnh theo cỏch ngẫu nhiờn (Hunt) hay chọn theo độ đo (ID3, C4.5) đều phải chỳ ý đến kiểu thuộc tớnh như giỏ trị rời rạc (số giỏ trị lớn phải gộp lại, xỏc định ngưỡng), liờn tục (phải rời rạc húa), thiếu, số lượng thuộc tớnh lớn). Phõn nhỏnh theo thuộc tớnh nào tốt nhất? Cần thước đo độ hỗn tạp. Vớ dụ, giả sử trước khi phõn nhỏnh thỡ đang cú 10 bộ thuộc C0, 10 bộ thuộc lớp C1:

Về phương phỏp luận, cú thể tự đưa ra một độ đo khỏc nhau, vỡ đú chỉ là mẹo (heuristic), người ta thường dựng Information gain, Gain ratio, Gini index.

2. Vấn đề thứ hai đặt ra khi chọn thuộc tớnh phõn nhỏnh là cài đặt vũng lặp với điều kiện j như thế nào, vỡ với mỗi cỏch xỏc định điều kiện j khỏc nhau sẽ cho một dỏng cõy khỏc nhau.

Vấn đề cắt tỉa cõy O wn car Co:6 C 1:4 Co:4 C 1:6 Co:5 C 1:5 Co:9 C 1:1 Khụng đồng nhất, Độ hỗn tạp cao Gần như đồng nhất, Độ hỗn tạp thấp

Khi xõy dựng cõy, chỳ ý đến sự xuất hiện của cỏc phần tử ngoại lai và cỏc nhiễu (hiện tượng Overfitting) nờn cần cắt tỉa cõy (tỉa trước và tỉa sau) [2]: Cắt tỉa trước nghĩa là trước khi quyết định cú tiếp tục phõn nhỏnh khụng người ta dựa vào một độ đo nào đú. Cỏch này khỏ phức tạp, nhưng nếu chọn được một ngưỡng thich hợp thỡ ta hoàn toàn cú thể là cho cõy trở nờn đơn giản hơn.

Cắt tia sau nghĩa là sau khi hoàn thành việc xõy dựng cõy đầy đủ thỡ mới tiến hành cắt tỉa. Một cõy con sẽ bị tỉa đi một nhỏnh của nú và thay bằng một nỳt lỏ, với nhón là lớp đa số trong cõy con đó bị loại bỏ. Độ đo đưa ra khi tiến hành cắt tỉa cũng là một đại lượng heuristic. Cú nhiều phương phỏp khỏc nhau như hàm lượng giỏ của giải thuật CART (Classification And Regression Tree) hoặc cắt tỉa dựa trờn độ dài chuỗi bit dựng để mó húa cõy. Phương phỏp cắt tỉa sử dụng hàm lượng giỏ, ước lượng tỷ lệ lỗi của cỏc nỳt đưa ra trong giải thuật CART cũng cú thể đưa ra ỏp dụng để cắt tỉa cõy sinh ra bởi giải thuật ID3. Tại mỗi nỳt, thuộc tớnh dựng để kiểm tra được chọn khi lượng Information Gain lớn nhất.

ID3 cũng cú nhược điểm:

1-Chưa giải quyết được trường hợp thuộc tớnh cú giỏ trị liờn tục

2-Khi một thuộc tớnh cú rất nhiều giỏ trị thỡ cú thể sinh ra 1 cõy quyết định khụng cú nhiều ý nghĩa vỡ cỏc thuộc tớnh phõn lớp khi bị chia nhỏ sẽ khú cú độ hỗn tạp thấp.

Chiến thuật cắt tỉa cõy quyết định [4]:

Chỳng ta thấy rằng việc xõy dựng cõy bằng cỏch phỏt triển nhỏnh đầy đủ theo chiều sõu để phõn lớp hoàn toàn dữ liệu huấn luyện đụi khi gặp khú khăn trong cỏc trường hợp dữ liệu bị nhiễu hoặc bị thiếu, số lượng mẫu quỏ nhỏ khụng đủ để đại diện cho một quy luật; tức là tạo ra cỏc nỳt cú số mẫu rất nhỏ. Trong những trường hợp này, nếu thuật toỏn vẫn cứ phỏt triển cõy thỡ ta

sẽ dẫn đến một tỡnh huống mà ta gọi là tỡnh trạng "Over fitting" trong cõy quyết định.

Để giải quyết tỡnh trạng Over fitting này người ta sử dụng phương phỏp cắt tỉa cõy quyết định. Cắt tỉa cõy chớnh là việc làm: tại một nỳt của cõy, nếu sự chớnh xỏc của khi khụng chia tỏch cao hơn sự chớnh xỏc khi được chia tỏch, khi đú hóy thay thế cõy con này bằng một nỳt lỏ tương ứng, nhón của nỳt lỏ này được gỏn là nhón của lớp đa số (phổ biến) trong tập cỏc mẫu tại nỳt đú. Cú hai chiến lược cắt tỉa cõy quyết định:

1. Tiờ̀n cắt tỉa

Tiền cắt tỉa nghĩa là sẽ dừng sớm việc phỏt triển cõy trước khi nú vươn đến điểm mà việc phõn lớp cỏc mẫu huấn luyện được hoàn thành. Nghĩa là trong quỏ trỡnh xõy dựng cõy, một nỳt cú thể sẽ khụng được tỏch thờm bước nữa nếu như kết quả của phộp tỏch đú rơi vào một ngưỡng gần như chắc chắn. Nỳt đú trở thành nỳt lỏ và được gỏn nhón là nhón của lớp phổ biến nhất của tập cỏc mẫu tại nỳt đú.

2. Hậu cắt tỉa

Chiến thuật này ngược với chiến thuật tiền cắt tỉa. Tức là, cõy được phỏt triển đầy đủ sau đú mới thực hiện cắt tỉa (Trong quỏ trỡnh xõy dựng cõy cho phộp tỡnh trạng Over fitting xẩy ra). Nú cho phộp phỏt triển cõy đầy đủ sau đú mới cắt tỉa bỏ cỏc nhỏnh khụng hợp lý. Nếu một nỳt mà cỏc cõy con của nú bị cắt thỡ nú sẽ trở thành nỳt lỏ và nhón của lỏ được gỏn là nhón của lớp phổ biến nhất của cỏc con trước đú của nú.

Trong thực tế, hậu cắt tỉa là một phương phỏp khỏ thành cụng cho việc tỡm ra cỏc giả thuyết chớnh xỏc cao. Chiến thuật hậu cắt tỉa được tiến hành thụng qua việc tớnh toỏn lỗi như sau:

Giả sử ta gọi: E(S) là lỗi tĩnh của một nỳt S; BackUpError(S) là lỗi từ cỏc nỳt con của S (Back Up Error); Error(S) là lỗi của nỳt S. Cỏc giỏ trị này được tớnh như sau:

E(S) = (N - n + 1) / (N + 2)

Trong đú: N là tổng số mẫu ở nỳt S, n là số mẫu của lớp phổ biến nhất trong S.

Trong trường hợp tổng quỏt, nếu thuộc tớnh lớp cú K giỏ trị (K lớp) thỡ: E(S) = (N-n+K-1) / (N+K)

i i

BackUpError(S) = Pi Error(S )

Trong đú: Si là nỳt con của S, Pi là tỷ lệ số mẫu trong Si trờn số mẫu trong S.

Như vậy cỏc nỳt lỏ sẽ cú lỗi Error(Si) = E(Si) do nỳt lỏ khụng cú nỳt con dẫn đến khụng cú lỗi BackUpError. Nếu BackUpError(S) >= E(S) thỡ chiến thuật hậu cắt tỉa cõy quyết định sẽ cắt tại nỳt S ( nghĩa là cắt bỏ cỏc cõy con của S).

Vớ dụ:

Ta cú cõy trước khi cắt tỉa như hỡnh dưới đõy:

Hỡnh 2.3. Cõy trước khi cắt tỉa

Tiến hành tớnh lỗi cho cỏc nỳt trong ta cú:

[1+, 0-] 0.333 A [6+, 4-] B [4+, 2-] C [2+, 2-] [3+, 2-] 0.429 [1+, 0-] 0.333 D [1+, 2-] [1+, 1-] 0.5 [0+, 1-] 0.333

Xột nỳt B ta cú: N= 6, n= 4 E(B) = (6-4+1 )/(6+2) = 0.375

BackUpError(B) = (5/6)* 0.429 + (1/6)* 0.333 = 0.413

(Trong đú:Eb1=(N-n+k-1)/N+k=(5-3+2-1)/5+2= 0,429 và tương tự Eb2=0,333 như hỡnh trờn)

Error(B) = Min(E(B), BackUpError(B)) = Min (0.375, 0.413) = 0.375 Do BackUpError(B) > E(B) nờn cắt bỏ cỏc cõy con của nỳt B. Thay B bằng nỳt lỏ với lỗi của nỳt là 0,375.

Xột tại nỳt D ta cú: N= 3, n= 2 E(D) = (3-2+1) /(3+2)= 0.4

BackUpError(D) = (2/3)* 0.5 + (1/3)* 0.333 = 0.444

Error(D) = Min(E(D), BackUpError(D)) = Min (0.4, 0.444) = 0.4

Do BackUpError(D) > E(D) nờn cắt bỏ cõy con của nỳt D. Thay D bằng nỳt lỏ với lỗi của nỳt là 0,4.

Xột tại nỳt C ta cú: N=4, n=4 E(C) = (4-2+1) /(4+2)=0.5

BackUpError(D) = (3/4)* 0.4 + (1/4)* 0.333 = 0.383

Error(C) = Min(E(C), BackUpError(C)) = Min (0.5, 0.383) = 0.383 Do BackUpError(C) < E(C) nờn khụng cắt bỏ cỏc cõy con của nỳt C. Xột tại nỳt A ta cú: N=10, n=6

E(A) = (10-6+1) /(10+2)=0.417

BackUpError(A) = (6/10)* 0.375 + (4/10)* 0.383 = 0.378

Error(A) = Min(E(A), BackUpError(A)) = Min (0.417, 0.378) = 0.378 Do BackUpError(A) < E(A) nờn khụng cắt bỏ cỏc cõy con của nỳt A. Sau khi thực hiện cắt bỏ cỏc cõy con tại nỳt B và D ta thu được cõy như sau:

Hỡnh 2.4. Cõy sau khi cắt tỉa

Túm lại, cắt tỉa cõy nhằm tối ưu hoỏ cõy kết quả. Tối ưu về kớch cỡ cõy và về độ chớnh xỏc của việc phõn lớp bằng cỏch cắt bỏ cỏc nhỏnh khụng phự hợp.

Một phần của tài liệu (LUẬN văn THẠC sĩ) phương pháp xây dựng cây quyết định dựa trên tập phụ thuộc hàm xấp xỉ (Trang 72 - 78)

Tải bản đầy đủ (PDF)

(97 trang)