Xây dựng thuật toán ID3
Trang 1TÌM HIỂU THUẬT TOÁN ID3
I Tổng quan 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 tỏ ra thành công trong nhiều lĩnh vực ID3 là một giải thuật hay vì cách biểu diễn tri thức học được của nó, tiếp cận của nó trong việc quản lý tính phức tạp, heuristic của nó dùng cho việc chọn lựa các khái niệm ứng viên, và tiềm năng của nó đối với việc xử lý dữ liệu nhiễu 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 đó
Như vậy, nhiệm vụ của giải thuật ID3 là học cây quyết định từ một tập các ví
dụ rèn luyện (training example) hay còn gọi là dữ liệu rèn luyện (training data) Hay nói khác hơn, giải thuật có:
Đầu vào: Một tập hợp các ví dụ Mỗi ví dụ bao gồm 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
II Thuật toán:
Các thuật toán ID3 bắt đầu với ban đầu là các tập S như là các nút gốc Trên mỗi lần lặp của thuật toán, nó lặp qua tất cả các thuộc tính của tập S và tính toán dữ liệu ngẫu nhiên entropy H(S) ( hoặc độ lợi thông tin (information gain) IG(A)) của thuộc tính đó Sau đó chọn các thuộc tính trong đó có dữ
liệu ngẫu nhiên nhỏ nhất (hoặc thông tin thu được lớn nhất) có giá trị Tập S sau đó được chia bởi thuộc tính được lựa chọn (ví dụ độ tuổi <50, 50 <= tuổi
<100, tuổi> = 100) để tạo ra các tập con của dữ liệu Thuật toán tiếp tuc recurse(em nghĩ là đệ quy) trên mỗi tập con Vì rằng các thuật toán không bao giờ được lựa chọn trước Đệ quy trên tập con có thể dừng lại ở 1 trong những trường hợp
Mỗi phần tử trong tập hợp con thuộc về lớp tương đương (+ hoặc -), sau đó nút biến thành một lá và dán nhãn với các lớp trong những ví dụ
Trang 2Không có nhiều hơn nữa là các thuộc tính được lựa chọn, nhưng các
ví dụ vẫn không thuộc về cùng một lớp (một số được + và một số -), sau đó nút là biến thành một lá và dán nhãn với các lớp học phổ biến nhất của các
ví dụ trong tập hợp con
Không có ví dụ trong tập hợp, điều này sẽ xảy ra khi không có ví dụ trong tập cha mẹ đã được tìm thấy để được phù hợp với một giá trị cụ thể của thuộc tính lựa chọn, ví dụ nếu không có ví dụ với tuổi> = 100 Sau đó, một chiếc lá được tạo ra, và được dán nhãn với các lớp học phổ biến nhất trong những ví dụ trong tập cha mẹ
Trong suốt các thuật toán, các cây quyết định được xây dựng với mỗi nút không đại diện cho thiết bị đầu cuối thuộc tính lựa chọn mà trên đó các dữ liệu được chia,
và các nút thiết bị đầu cuối đại diện cho các nhãn lớp của tập cuối cùng của chi nhánh này
ID3 xây dựng cây quyết định (cây QĐ) theo cách từ trên xuống Lưu ý rằng đối với bất kỳ thuộc tính nào, chúng ta cũng có thể phân vùng tập hợp các ví dụ rèn luyện thành những tập con tách rờ i, mà ở đó mọi ví dụ trong một phân vùng (partition) có một giá trị chung cho thuộc tính đó ID3 chọn một thuộc tính để kiểm tra tại nút hiện tại của cây và dùng trắc nghiệm này để phân vùng tập hợp các ví dụ; thuật toán khi đó xây dựng theo cách đệ quy một cây con cho t ừng phân vùng Việc này tiếp tục cho đến khi mọi thành viên của phân vùng đều nằm trong cùng một lớp; lớp đó trở thành nút lá của cây
Entropy H(S) đo tính thuần nhất của tập dữ liệu : dùng để đo tính
thuần nhất của một tập dữ liệu Entropy của một tập S được tính theo công thức (1)
Entropy(S)= - P log (P ) P log (P )
Trong trường hợp các mẫu dữ liệu có hai thuộc tính phân lớp "yes" (+), "no" (-) Ký hiệu p+ là để chỉ tỷ lệ các mẫu có giá trị của thuộc tính quyết định là "yes", và p- là tỷ lệ các mẫu có giá trị của thuộc tính quyết định là
"no" trong tập S
Trường hợp tổng quát, đối với tập con S có n phân lớp thì ta có công thức sau:
Trang 3i 2 i=1
Entropy(S)= (- P log ( ))P i
Hoặc là:
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
- Nếu tất cả các mẫu thành viên trong tập S đều thuộc cùng một lớp thì Entropy(S) =0
- 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
- 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 Đại lượng này được tính thông qua hai giá trị Information và Entropy
- Cho tập dữ liệu S gồm có n thuộc tính Ai(i=1,2…n) giá trị Information của thuộc tính Ai ký hiệu là Information(Ai) được xác định bởi công thức
n
i=1
Information(A ) = -log ( ) Entropy(S)p i
(2.3)
- 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:
v
v
v value(A)
S ( , ) Information(A) - Entropy(A)= Entropy(S)- Entropy(S )
S
Gain S A
(2.4)
Trang 4Trong đó :
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
Sv bằng tập hợp con của tập S mà có thuộc tính A mang giá trị v
|Sv| là số phần tử của tập Sv
|S| là số phần tử của tập S
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
Xây dựng cây quyết định:
Gồm có 2 bước:
+ Bước một: Thiết lập cây quyết định
Bắt đầu từ gốc
Kiểm tra các giá trị của thuộc tính và phân chia các mẫu đệ quy
+ Bước 2: Tỉa bớt cây:
Xác định và loại bỏ các nhánh không ổn định hoặc
cá biệt Một cây quyết định tốt cần thỏa mãn các tính chất:
Đầy đủ: cây quyết định cần khớp với mọi trường hợp trong tập huấn luyện
Đơn giản: cây càng đơn giản thì càng tổng quát
Khi nào nên sử dụng ID3:
Trang 5Giải thuật ID3 là một giải thuật học đơn giản nhưng nó chỉ phù hợp với một lớp các bài toán hay vấn đề có thể biểu diễn bằng ký hiệu Chính vì vậy, giải thuật này thuộc tiếp cận giải quyết vấn đề dựa trên ký hiệu
(symbol – based approach)
Tuy nhiên, khác với một số giải thuật khác cũng thuộc tiếp cận này, ID3 sử dụng các ví dụ rèn luyện ở dạng xác suất nên nó có ưu điểm là ít bị ảnh hưởng bởi một vài dữ liệu nhiễu Vì vậy, tập dữ liệu rèn luyện ở đây có thể chứa lỗi hoặc có thể thiếu một vài giá trị ở một
số thuộc tính nào đó Một giải pháp thường được áp dụng đối với các
dữ liệu bị thiếu là sử dụng luật đa số, chương trình tiền xử lý dữ liệu
sẽ điền vào các vị trí còn trống giá trị có tần số xuất hiện cao nhất của thuộc tính đó