Cấu trúc cây quyết định:

Một phần của tài liệu Nghiên cứu kỹ thuật cây quyết định và xây dựng ứng dụng hỗ trợ học sinh trường THPT võ nguyên giáp chọn nghề (Trang 31)

6. Cấu trúc luận văn

1.3.1.2. Cấu trúc cây quyết định:

Cấu trúc của một cây quyết định bao gồm các nút và các nhánh.

 Nhánh (branch): biểu diễn giá trị có thể có của thuộc tính.  Nút (node): mỗi nút mạng một thuộc tính bao gồm 3 loại:

 Nút gốc (root node) là đỉnh trên cùng của cây.

 Nút lá (leaf node) là nút ngoài cùng, mang thuộc tính phân lớp.

 Nút trong (internal node) là các nút còn lại, mang thuộc tính phân loại. 1.3.2. Kỹ thuật KPDL sử dụng cây quyết định

1.3.2.1. Gi i thiệu kỹ thu t KPDL sử dụng cây quyết định:

Có nhiều mô hình phân lớp dữ liệu trong các lĩnh vực khác nhau nhƣ mô hình thống kê tuyến tính bậc 2, cây quyết định, di truyền, …. Thì cây quyết định là một công cụ mạnh, phổ biến và đặc biệt thích hợp cho KPDL.

Quy nạp cây quyết định là việc tìm kiếm các cây quyết định từ những bản ghi huấn luyện đã có nhãn lớp. Mỗi cây quyết định là một cấu trúc cây kiểu lƣu đồ, trong đó mỗi nút trong biểu thị một sự kiểm tra trên một thuộc tính nào đó, mỗi nhánh biểu diễn một kết quả của sự kiểm tra đó, còn mỗi nút lá chứa một nhãn lớp. Nút ở trên cùng của cây là nút gốc, chứa tên của thuộc tính cần kiểm tra..

Các cây quyết định đƣợc dùng cho phân lớp nhƣ thế nào? Cho một bản ghi X nào đó mà ta chƣa biết nhãn lớp liên kết với nó, các giá trị thuộc tính của bản ghi đó đƣợc kiểm tra so với cây quyết định. Dựa theo những cuộc kiểm tra đó, ta lần ra một đƣờng đi từ gốc đến một nút lá chứa kết quả dự đoán lớp dành cho bản ghi ấy. Các cây quyết định có thể dễ dàng đƣợc chuyển đổi thành các luật phân lớp, tức hình thức phân loại đơn giản và dễ hiểu nhất đối với con ngƣời.

1.3.2.2. Xây dựng cây quyết định

Quá trình xây dựng cây quyết định gồm hai giai đoạn:

 Giai đoạn thứ nhất: phát triển cây quyết định: Giai đoạn này phát triển bắt đầu từ gốc, đến từng nhánh và phát triển quy nạp theo cách thức chia để trị cho tới khi đạt đƣợc cây quyết định với tất cả các lá đƣợc gán nhãn lớp.

Khung công việc của giai đoạn này:

- Bƣớc 1: Chọn thuộc tính ―tốt‖ nhất bằng một độ đo đã định trƣớc. - Bƣớc 2: Phát triển cây bằng việc thêm các nhánh tƣơng ứng với từng giá trị của thuộc tính đã chọn.

- Bƣớc 3: Sắp xếp, phân chia tập dữ liệu huấn luyện tới node con. - Bƣớc 4: Nếu các ví dụ đƣợc phân lớp rõ ràng thì dừng. Ngƣợc lại: lặp lại bƣớc 1 tới bƣớc 4 cho từng node con.

 Giai đoạn thứ hai: cắt, tỉa bớt các nhánh trên cây quyết định. Giai đoạn này nhằm mục đích đơn giản hóa và khái quát hóa từ đó làm tăng độ

chính xác của cây quyết định bằng cách loại bỏ sự phụ thuộc vào mức độ nhiễu, lỗi của dữ liệu huấn luyện mang tính chất thống kê, hay những sự biến đổi mà có thể là đặc tính riêng biệt của dữ liệu huấn luyện. Giai đoạn này chỉ truy cập dữ liệu trên cây quyết định đã đƣợc phát triển trong giai đoạn trƣớc.

1.3.2.3. Các vấn đề trong KPDL sử dụng cây quyết định

Các vấn đề đặc thù trong khi học hay phân lớp dữ liệu bằng cây quyết định gồm: xác định độ sâu để phát triển cây quyết định, xử lý với những thuộc tính liên tục, chọn phép đo lựa chọn thuộc tính thích hợp, sử dụng tập dữ liệu huấn luyện với những giá trị thuộc tính bị thiếu, sử dụng các thuộc tính với những chi phí khác nhau, và cải thiện hiệu năng tính toán.

Cây quyết định dễ xảy ra lỗi khi có quá nhiều lớp. Một số cây quyết định chỉ thao tác với những lớp giá trị nhị phân dạng yes/no hay accept/reject. Số khác lại có thể chỉ định các bản ghi vào một số lớp bất kỳ, nhƣng dễ xảy ra lỗi khi số ví dụ huấn luyện ứng với một lớp là nhỏ. Điều này xảy ra càng nhanh hơn với cây mà có nhiều tầng hay có nhiều nhánh trên một node.

Chi phí tính toán đắt để huấn luyện: Cây quyết định có rất nhiều node trong trƣớc khi đi đến lá cuối cùng. Tại từng node, cần tính một độ đo (hay tiêu chuẩn phân chia) trên từng thuộc tính, với thuộc tính liên tục phải thêm thao tác sắp xếp lại tập dữ liệu theo thứ tự giá trị của thuộc tính đó. Sau đó mới có thể chọn đƣợc một thuộc tính phát triển và tƣơng ứng là một phân chia tốt nhất. Quá trình cắt tỉa cây cũng ―đắt‖ vì nhiều cây con ứng cử phải đƣợc tạo ra và so sánh.

1.3.3. Thuật toán sử dụng xây dựng cây quyết định

Tạo cây quyết định chính là quá trình phân tích cơ sở dữ liệu, phân lớp và đƣa ra dự đoán. Cây quyết định đƣợc tạo thành bằng cách lần lƣợt chia (đệ quy) một tập dữ liệu thành các tập dữ liệu con, mỗi tập con đƣợc tạo thành chủ yếu từ các phần tử của cùng một lớp. Lựa chọn thuộc tính để tạo nhánh thông qua Entropy và Gain.

Cây quyết định có thể đƣợc mô tả nhƣ là sự kết hợp của các kỹ thuật toán học và tính toán nhằm hỗ trợ việc mô tả, phân loại và tổng quát hóa một tập dữ liệu cho trƣớc.

Dữ liệu đƣợc cho dƣới dạng các bản ghi có dạng:( , )x y ( ,x x x1 2, 3,...,x yk, ). Biến phụ thuộc (dependant variable) y là biến mà chúng ta cần tìm hiểu, phân loại hay tổng quát hóa. x x x1, 2, ...3 là các biến sẽ giúp ta thực hiện công việc đó.

1.3.3.1. Thu t toán CLS (Concept Learning System)

 Đầu vào: Tâp huấn luyện. Tập huấn luyện bao gồm các mẫu, mỗi mẫu là một bộ các thuộc tính mô tả một tình huống, hay một đối tƣợng nào đó, và một giá trị phân loại của nó.

 Đầu ra: Cây quyết định có khả năng phân loại đúng đắn các ví dụ trong tập huấn luyện.

Thuật toán đƣợc thiết kế theo chiến lƣợc chia để trị từ trên xuống, gồm các bƣớc:

Bƣớc 1. Tạo một nút T, nút này bao gồm tất cả các mẫu của tập huấn luyện. Bƣớc 2. Nếu tất cả các mẫu thuộc T đều thuộc cùng một lớp, giả sử có thuộc

tính quyết định mang giá trị "Yes" thì gán nhãn cho nút T là "Yes" và dừng lại. Nút T lúc này là nút lá.

Tƣơng tự nếu tất cả các mẫu trong T đều thuộc cùng một lớp và giả sử có thuộc tính quyết định mang giá trị "No" thì gán nhãn cho T là "No" và dừng lại. Nút T lúc này là nút lá.

Bƣớc 3. Trƣờng hợp ngƣợc lại tức các mẫu của tập huấn luyện thuộc cả hai

lớp "Yes" và "No":

o Chọn một thuộc tính X trong tập thuộc tính của tập mẫu, X có các giá trị x1, x2, x3,... ,xn.

o Chia tập mẫu trong T thành các tập con T1, T2, T3... Tn theo giá trị của X. o Tạo n nút con Ti (i=1..n) với nút cha là nút T.

o Tạo các nhánh nối từ nút T đén các nút Ti với nhãn là các giá trị của X.

Bƣớc 4. Thực hiện lặp cho các nút con Ti từ bƣớc 2.

Thuộc tính đƣợc chọn để triển khai cây ở bƣớc 4 là tùy ý. Do vậy cùng với một tập dữ liệu huấn luyện ban đầu, nếu sử dụng thuật toán với thứ tự chọn thuộc tính triển khai cây là khác nhau ta sẽ thu đƣợc các cây quyết định khác nhau. Việc lựa chọn thuộc tính sẽ ảnh hƣởng tới độ rộng, độ sâu và độ phức tạp của cây. CLS là một trong những thuật toán ra đời sớm nhất và thƣờng áp dụng cho các CSDL có số lƣợng các thuộc tính nhỏ, giá trị các thuộc tính là rời rạc, còn đối với các CSDL lớn và có chứa các thuộc tính mà giá trị của nó là liên tục thì CLS làm việc ít hiệu quả. Thuật toán có thể cho các kết quả khác nhau với cùng một tập dữ liệu đầu vào. Ƣu điểm chính của CLS là thuật toán đơn giản, dễ cài đặt.

1.3.3.2. Thu t toán ID3

a. Gi i thiệu thu t toán ID3

Giải thuật quy nạp cây ID3 (gọi tắt là ID3) là một giải thuật học đơn giản nhƣng thành công trong nhiệm lĩnh vực. Thuật toán ID3 đƣợc phát triển bởi Quinlan và đƣợc công bố vào cuối thập niên 70 của thế kỷ 20. Sau đó, thuật toán ID3 đƣợc giới thiệu và trình bày trong mục Induction on Decition Trees, Machine Learning năm 1986.

ID3 biểu diễn các khái niệm (concept) ở dạng các cây quyết định (decision tree). Biểu diễn này cho phép chúng ta xác định phân loại của một đối tƣợng bằng cách kiểm tra các giá trị của nó trên một số thuộc tính nào đó.

Giải thuật ID3 là học cây quyết định từ một tập huấn luyện hay còn gọi là dữ liệu rèn luyện (training data), giải thuật có:

 Đầu vào: Tâp huấn luyện, thuộc tính chứa giá trị phân loại của cây, danh sách các thuộc tính dùng kiểm tra tính quyết định của cây. Tập huấn luyện bao gồm các mẫu, mỗi mẫu là một bộ các thuộc tính mô tả một tình huống, hay một đối tƣợng nào đó, và một giá trị phân loại của nó.

 Đầu ra: Cây quyết định có khả năng phân loại đúng đắn các ví dụ trong tập dữ liệu rèn luyện, và hy vọng là phân loại đúng cho cả các ví dụ chƣa gặp trong tƣơng lai.

Giải thuật ID3 xây dựng cây quyết định từ trên xuống

- Entropy: dùng để do tính thuần nhất của một tập dữ liệu. Entropy của một tập S

có n phân lớp đƣợc tính theo công thức:

Entropy(S) = ( log ) 1 2    n i i i p p

Trong đó pi là tỉ lệ các mẫu thuộc lớp i trên tập hợp S các mẫu kiểm tra.  Các trƣờng hợp đặc biệt:

o Nếu tât cả các mẫu thành viên tron tập S đều thuộc cùng một lớp thì Entropy(S) =0.

o Nếu trong tập S có số mẫu phân bố đều nhau vào các lớp thì Entropy(S) =1.

o Các trƣờng hợp còn lại 0< Entropy(S)<1.

- Information Gain (viết tắt là Gain): Gain là đại lƣợng dùng để đo tính hiệu quả

của một thuộc tính đƣợc lựa chọn cho việc phân lớp.

+ Cho tập dữ liệu S gồm có n thuộc tính 𝐴𝑖(𝑖 = 1, 2 … 𝑛) giá trị Information của thuộc tính 𝐴𝑖ký hiệu là 𝐼𝑛𝑓𝑜𝑟𝑚𝑎𝑡𝑖𝑜𝑛 (𝐴𝑖) đƣợc xác định bởi công thức:

𝐼𝑛𝑓𝑜𝑟𝑚𝑎𝑡𝑖𝑜𝑛 (𝐴𝑖) = ∑ 𝑜 𝑛𝑡𝑟𝑜𝑝

+ Giá trị Gain của thuộc tính A trong tập S ký hiệu là Gain (S, A) và đƣợc tính theo công thức sau

𝐺𝑎𝑖𝑛( , 𝐴) = 𝐼𝑛𝑓𝑜𝑟𝑚𝑎𝑡𝑖𝑜𝑛(𝐴) − 𝑛𝑡𝑟𝑜𝑝 (𝐴)

= 𝑛𝑡𝑟𝑜𝑝 ( ) − ∑ | |

| |

𝑛𝑡𝑟𝑜𝑝 ( 𝑣)

Trong đó:

 S là tập hợp ban đầu với thuộc tính A. Các giá trị của v tƣơng ứng là các giá trị của thuộc tính A.

 𝑣 bằng tập hợp con của tập S mà có thuộc tính A mang giá trị v.

 | 𝑣| là số phần tử của tập 𝑣  | | là số phần tử của tập

 Trong quá trình xây dựng cây quyết định theo thuật toán ID3 tại mỗi bƣớc triển khai cây, thuộc tính đƣợc chọn để triển khai là thuộc tính có giá trị Gain lớn nhất.

b. Mã giả thu t toán ID3

Function ID3(Taphuanluyen, DuDoan, Tap_thuoc_tinh) begin

if mọi mẫu trong TapHuanLuyen đều nằm trong cùng một lớp then return một nút lá đƣợc gán nhãn bởi lớp đó

else if Tap_thuoc_tinh là rỗng then

return nút lá đƣợc gán nhãn bởi tuyển của tất cả các lớp trong taphuanluyen

else begin

1. Chọn một thuộc tính P có giá trị Gain lớn nhất, lấy nó làm gốc cho cây hiện tại;

2. Xóa P ra khỏi Tap_thuoc_tinh; 3. Với mỗi giá trị V của P

begin

1. Tạo một nhánh của cây gán nhãn V; 2. Đặt vào phân_vùng_V /* các mẫu trong

3. Gọi

ID3(phân_vùng_V, DuDoan, Tap_thuoc_tinh) Và gắn kết quả vào nhánh V

end end

end

c. Ví dụ minh họa thu t toán ID3

Xét bài toán xem ta đã chọn ngành đúng với tính cách và năng lực của học sinh chƣa. Giải thuật ID3 sẽ học cây quyết định từ tập hợp các ví dụ sau:

Bảng 2.1 Tập huấn luyện chọn ngành

nhomST DiemMh GT ChonLua

cao Gioi yes yes

cao Kha yes yes

cao Tb yes no

cao Gioi no yes

cao Kha no no

cao Tb no no

bt Gioi yes yes

bt Gioi no no

bt Kha yes no

bt Tb yes no

bt Tb no no

bt Kha no no

thap Gioi yes no

thap Kha no no

Tập dữ liệu này bao gồm 14 ví dụ. Mỗi ví dụ là kết quả chọn nghề và sở thích của học sinh gồm các thuộc tính nhomST, DiemMH, GioiTinh; Và đều có một thuộc tính phân loại ChonLua (yes, no). ‗Yes‘ nghĩa là ngành chọn phù hợp với sở thích, năng lực và giới tính, ‗No‘ nghĩa là ngành chọn không phù hợp. Giá trị phân loại ở đây chỉ có hai loại (yes, no). Thuộc tính ‗ChonLua‘ còn đƣợc gọi là thuộc tính đích. Mỗi thuộc tính đều có một tập các giá trị hữu hạn. Thuộc tính NhomST có ba giá trị: cao, bt, thap; DiemMH có ba giá trị: Gioi, Kha, tb; Gt có hai giá trị: yes, no.

Thuộc tính dự đoán S ‗ChonLua‘ có hai giá trị ―yes‖, ―no‖. S1: ChonLua = ―yes‖; S2: ChonLua= ―no‖

 I(S) = I(S1,S2) = I (4,10) = (-4/14)*log2(4/14)-(10/14)*log2(10/14)= 0.8631  Đối với thuộc tính GT có:

 GT= ―yes‖, S11=3, S21=4 có I(S11, S21) = 0.9852  GT= ―no‖, S12=1, S22=6 có I(S11, S21) = 0.5916

Entropy(GT)= 7/14*I(S11, S21) + 7/14*I(S11, S21) =0.7884  Gain(GT)= I (S) − Entropy ( GT) = 0.0746

 Tƣơng tự đối với thuộc tính DiemMH Gain(DiemMH)=0.2585  Gain (nhomST)= 0.1560

Chọn thuộc tính DiemMH làm nút gốc

Loại thuộc tính DiemMH ra khỏi tập thuộc tính, và xét các nút tại các nhánh:

Gioi, kha, tb

 Nhánh Gioi:

Bảng 2.2 Tập huấn luyện nhánh DiemMH chứa giá trị ―Gioi‖

nhomST GTNganh ChonLua

cao yes yes

cao no yes bt yes yes bt no no thap yes no o I(S) = I(S1,S2) = I (3,2) = 0.970950594 o Gain(nhomST) = 0.8281 o Gain(GTNganh) = 0.5710

 Chọn thuộc tính nhomST làm nút gốc, loại thuộc tính nhomST ra khỏi tập thuộc tính và xét

 Nhánh ―cao‖: yes  với ―thap‖: no

 Nhánh ―bt‖: với GTNganh = “yes‖: yes;

 Nhánh kha:

Bảng 2.3 Tập huấn luyện nhánh DiemMH chứa giá trị ―kha‖

nhomST GTNganh ChonLua

cao yes yes

cao no no bt yes no bt no no thap no no o I(S) = I(S1,S2) = I (1,4) = 0.7219 o Gain(nhomST) = 0.5709 o Gain(GTNganh) = 0.3219

 Chọn thuộc tính nhomST làm nút gốc, loại thuộc tính nhomST ra khỏi tập thuộc tính và xét

- Nhánh ―cao‖:

 với GTNganh = “yes‖: yes  với GTNganh = “no‖: no - Nhánh ―bt‖: no

- Nhánh ―thap‖: no  Nhánh tb: no

Ta có cây quyết định nhƣ sau:

1.3.3.3. Thu t toán C4.5

Thuật toán C4.5 do Quilan phát triển vào năm 1996. Thuật toán đƣợc cải tiến từ thuật toán ID3 với việc cho phép xử lý trên tập dữ liệu có các thuộc tính số và làm việc đƣợc với tập dữ liệu bị thiếu và nhiễu.

Hai độ đo đƣợc sử dụng trong C4.5 là information gain gain ratio.

RF(Cj, S) biểu diễn tần xuất (Relative Frequency) các case trong S thuộc về lớp Cj.

RF (Cj, S) = |Sj| / |S|

Với |Sj| là kích thƣớc tập các case có giá trị phân lớp là Cj. |S| là kích thƣớc tập dữ liệu đào tạo.

Chỉ số thông tin cần thiết cho sự phân lớp: I(S) với S là tập cần xét sự phân phối lớp đƣợc tính bằng:

I(S) = ∑ ( ) 𝑜

Sau khi S đƣợc phân chia thành các tập con S1, S2,…, St bởi test B thì

information gain đƣợc tính bằng:

Test B sẽ đƣợc chọn nếu có G(S, B) đạt giá trị lớn nhất.

Gain(S,B) = I(S) - ∑ | | | |

𝐼

Tuy nhiên có một vấn đề khi sử dụng G(S, B) ƣu tiên test có số lƣợng lớn kết quả, ví dụ G(S, B) đạt cực đại với test mà từng Si chỉ chứa một case đơn. Tiêu chuẩn gain ratio giải quyết đƣợc vấn đề này bằng việc đƣa vào thông tin tiềm năng (potential information) của bản thân mỗi phân hoạch

P(S,B) = -∑ | | | |

| | ||

Test B sẽ đƣợc chọn nếu có tỉ số giá trị gain ratio = Gain(S, B) / P(S, B) lớn nhất.

Trong mô hình phân lớp C4.5 release8, có thể dùng một trong hai loại chỉ số Information Gain hay Gain ratio để xác định thuộc tính tốt nhất. Trong đó

Một phần của tài liệu Nghiên cứu kỹ thuật cây quyết định và xây dựng ứng dụng hỗ trợ học sinh trường THPT võ nguyên giáp chọn nghề (Trang 31)

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

(91 trang)