Thuật tốn ID3

Một phần của tài liệu Luận văn: Nghiên cứu và áp dụng một số kỹ thuật khai phá dữ liệu với cơ sơ sở dữ liệu ngành Thuế Việt Nam. docx (Trang 69 - 70)

Thuật tốn ID3 được dùng để xây dựng cây quyết định, cho một tập các thuộc tính khơng phân loại C1, C2, …, Cn, thuộc tính phân loại C và tập các bản ghi để huấn luyện T.

function ID3 (R: tập các thuộc tính khơng phân loại, C: thuộc tính phân loại,

S: tập huấn luyện) trả lại một cây quyết định; begin

Nếu S rỗng, trả về một node đơn lẻ với giá trị Failure; Nếu S chứa các bản ghi tất cả cĩ cùng giá trị cho thuộc tính phân loại, trả về một node đơn lẻ với giá trịđĩ.

Nếu R là trống, thì trả về một node đơn lẻ với giá trị cĩ tần suất lớn nhất trong các giá trị của thuộc tính

phân loại mà tìm thấy trong các bản ghi của S; [chú ý rằng sau đĩ sẽ cĩ các lỗi, đĩ là, các bản ghi mà sẽ bị phân lớp khơng rõ ràng];

Cho D là thuộc tính với Gain lớn nhất Gain(D,S) trong số các thuộc tính trong R;

Cho {dj | j=1,2, .., m} là các giá trị của thuộc tính D; Cho {Sj | j=1,2, .., m} là các tập con của S gồm thứ tự

các bản ghi với giá trị dj cho thuộc tính D;

Trả về cây với gốc gán nhãn D và các cung được gán nhãn d1, d2, .., dm lần lượt tới các cây

ID3(R-{D}, C, S1), ID3(R-{D}, C, S2), .., ID3(R-{D}, C, Sm); end ID3;

Dùng t sut li ích (Gain Ratios)

Khái niệm lợi ích (Gain) cĩ xu hướng ưu tiên các thuộc tính cĩ số lượng lớn các giá trị. Ví dụ, nếu một thuộc tính D cĩ giá trị riêng biệt cho mỗi bản ghi, thì Info(D,T) là 0, như vậy Gain(D,T) là cực đại. ðể khắc phục, dùng tỷ lệ sau thay cho Gain:

GainRatio(D,T) = Gain(D,T) / SplitInfo(D,T)

Trong đĩ SplitInfo(D,T) là thơng tin do phân tách của T trên cơ sở giá trị của thuộc tính phân loại D. SplitInfo(D,T) là

I(|T1|/|T|, |T2|/|T|, .., |Tm|/|T|)

Trong đĩ {T1, T2, .. Tm} là sự phân hoạch T do giá trị của D.

Một phần của tài liệu Luận văn: Nghiên cứu và áp dụng một số kỹ thuật khai phá dữ liệu với cơ sơ sở dữ liệu ngành Thuế Việt Nam. docx (Trang 69 - 70)