Tải bản đầy đủ (.pptx) (16 trang)

Tài liệu cay quyet dinh-decision tree docx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (191.51 KB, 16 trang )

CÂY QUYẾT ĐỊNH
Khái niệm

Là một cấu trúc cây phân cấp sử dụng trong bài toán phân
lớp dựa trên dãy các câu hỏi/luật về thuộc tính của lớp

Biến thuộc tính của lớp có thể là dạng bất kỳ, nhưng các
lớp phải ở dạng định tính

Ví dụ:
Sử dụng cây quyết định

Dự đoán mẫu hay phân lớp dữ liệu

Các luật (phụ thuộc vào thứ tự ưu tiên các thuộc tính)

Test data:

Alex: Train

Buddy: Bus

Cherry: Train
Tạo một cây quyết định

Cây quyết định được xây dựng và huấn luyện dựa trên tập dữ
liệu

Quá trình tạo gồm hai giai đoạn:

xây dựng



cắt tỉa: Xác định và loại bỏ những nhánh nhiễu hoặc tách khỏi nhóm
Các bước cơ bản xây dựng cây quyết định

Gồm 2 bước:

Phát triển cây quyết định: đi từ gốc, đến các nhánh, phát triển quy
nạp theo hình thức chia để trị.

Chọn thuộc tính “tốt” nhất bằng một độ đo đã định trước

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

Sắp xếp, phân chia tập dữ liệu đào tạo tới node con

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

Cắt tỉa cây: nhằm đơn giản hóa, khái quát hóa cây, tăng độ chính
xác
Các bước cơ bản xây dựng cây quyết định
BuildTree(DataSet,Output)
• If all output values are the same in DataSet, return a leaf node that
says “predict this unique output”
• If all input values are the same, return a leaf node that says “predict
the majority output”
• Else find attribute X with highest Info Gain
• Suppose X has nX distinct values (i.e. X has arity nX).

• Create and return a non-leaf node with nX children.
• The i’th child should be built by calling
BuildTree(DSi,Output)
Where DSi built consists of all those records in DataSet for which X = ith
distinct value of X.
Độ đo thuộc tính

Việc tính độ đo để lựa chọn thuộc tính quyết định đến hình
dáng của cây

Có nhiều độ đo, ứng với mỗi độ đo là thuật toán dựa cây
quyết định như độ đo Gain, độ đo tỉ lệ Gain, độ đo Gini

Các tiêu chí đánh giá độ đo càng tốt khi các tập con được
phân chia càng trở nên “trong suốt”
Overfitting

Cây quyết định bị ảnh hưởng quá nhiều vào dữ liệu huấn luyện gây
nên cây quá nhiều nhánh, độ chính xác kém trong những mẫu chưa
biết

Nguyên nhân:

Dữ liệu nhiễu và tách rời khỏi nhóm

Dữ liệu huấn luyện quá ít

Các giá trị tối đa cục bộ trong tìm kiếm tham lam

Khắc phục:


cắt tỉa lại cây quyết định sau khi học

cắt tỉa các luật sau khi chuyển cây về dạng luật.
Một số đại lượng dùng trong cây quyết định

Entropy

Gini Index

Classification error

Information Gain

Second Iteration

Third Iteration
Thuật toán ID3

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 đó

Học cây quyết định từ một tập các dữ liệu huấn luyện

Đầu vào: Tập huấn luyện, ví dụ gồm các thuộc tính mô tả một
tình huống, hay một đối tượng, 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


xây dựng cây quyết định theo cách từ trên xuống
Thuật toán ID3
Function induce_tree(tập_ví_dụ, tập_thuộc_tính)
begin
if mọi ví dụ trong tập_ví_dụ đề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 tập_thuộc_tính 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 tập_ví_dụ
Else
begin
chọn một thuộc tính P, lấy nó làm gốc cho cây hiện tại;
xóa P ra khỏi tập_thuộc_tính;
với mỗi giá trị V của P
begin
tạo một nhánh của cây gán nhãn V;
Đặt vào phân_vùngV các ví dụ trong tập_ví_dụ có giá trị V tại thuộc tính P;
Gọi induce_tree(phân_vùngV, tập_thuộc_tính), gắn kết quả vào nhánh V
end
end
end
Thuật toán C4.5

Là sự phát triển từ CLS và ID3, tư
tưởng thuật toán theo Hunt và
chiến lược phát triển theo độ sâu

Pseudocode:

Kiểm tra case cơ bản


Với mỗi thuộc tính A tìm thông tin nhờ
việc tách thuộc tính A

Chọn a_best là thuộc tính mà độ đo lựa
chọn thuộc tính “tốt nhất”

Dùng a_best làm thuộc tính cho node chia
cắt cây.

Đệ quy trên các danh sách phụ được tạo ra
bởi việc phân chia theo a_best, và thêm
các node này như là con của node
(1) ComputerClassFrequency(T);
(2) if OneClass or FewCases
return a leaf;
Create a decision node N;
(3) ForEach Attribute A
ComputeGain(A);
(4) N.test=AttributeWithBestGain;
(5) if (N.test is continuous)
find Threshold;
(6) ForEach T' in the splitting of T
(7) If ( T' is Empty )
Child of N is a leaf
else
(8) Child of N=FormTree(T');
(9) ComputeErrors of N;
return N
Thuật toán C4.5


Chuyển đổi sang luật: cắt tỉa cây

Dạng luật: if A and B and C… then class X. Không thỏa mãn điều kiện chuyển về
lớp mặc định.

Xây dựng luật: 4 bước

Mỗi đường đi từ gốc đến lá là một luật mẫu. Đơn giản luật mẫu bằng cách bỏ dần điều kiện
mà không ảnh hưởng tới độ chính xác của luật.

Các luật đã cắt tỉa được nhóm lại theo giá trị phân lớp tạo ra các tập con. Với mỗi tập con,
xem xét để lựa chọn luật để tối ưu hóa độ chính xác dự đoán của lớp gắn với tập luật đó.

Sắp xếp các tập luật trên theo tần số lỗi. Lớp mặc định được tạo ra bằng cách xác định các
case trong tập S không chứa trong các luật hiện tại và chọn lớp phổ biến nhất trong các
case đó làm lớp mặc định.

Ước lượng đánh giá: các luật được ước lượng trên toàn tập S, loại bỏ luật làm giảm độ
chính xác của sự phân lớp.

Hoàn thành: 1 tập các quy tắc đơn giản được lựa chọn cho mỗi lớp
Thuật toán C4.5

Ứng dụng vào bài toán phân lớp dữ liệu:

Bước 1 (Học): xây dựng mô hình mô tả tập dữ liệu; khái niệm đã biết

Input: tập dữ liệu có cấu trúc được tạo mô tả bằng các thuộc tính

Output: Các luật If…Then


Bước 2 (Phân loại): dựa trên mô hình đã xây dựng để phân lớp dữ liệu mới: đi từ gốc
đến các nút lá nhắm rút ra lớp của đối tượng cần xét.

Xử lý với dữ liệu thuộc tính liên tục:

Sử dụng kiểm tra dạng nhị phân: value(V) < h với h là hằng số ngưỡng (threshold)

h được tìm bằng cách:

Quick sort sắp xếp các case trong S theo các giá trị của thuộc tính liên tục V đang xét =>V = {v1,
v2, …, vm}

hi = (vi + v(i+1))/2. Test phân chia dữ liệu:V <= hi hay V>hi => chia V thành V1={v1,v2,…, vi} và
V2 = {vi+1, vi+2, …, vm} và có hi (i=1…m-1)
Từ điển âm tiết

Hướng xây dựng

Dựa vào bộ phân tách phiên âm

Dựa vào luật âm tiết

Thống kê
Từ điển âm tiết

Thông kê:

Thống kê các vần và khả năng ghép với các phụ âm đầu cuối


Khối lượng công việc lớn, tiềm ẩn sai sót

Bộ phân tách phiên âm

Chưa hoàn chỉnh

Không bỏ xót âm, nhưng xác nhận cả những tổ hợp vần và phụ âm
không phát âm được

Dựa vào luật phiên âm
-
Cần xây dựng luật âm tiết đúng đắn
-
Áp dụng học máy để bổ xung âm tiết mới

×