Tải bản đầy đủ (.docx) (29 trang)

Tiểu luận môn khai phá dữ liệu MÔ HÌNH CÂY QUYẾT ĐỊNH THUẬT TOÁN C4.5

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 (878.31 KB, 29 trang )

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
CHƯƠNG TRÌNH ĐẠO TẠO THẠC SĨ CNTT QUA MẠNG
________________
BÀI THU HOẠCH
CHUYÊN ĐỀ KHAI THÁC DỮ LIỆU VÀ KHO DỮ LIỆU
MÔ HÌNH CÂY QUYẾT ĐỊNH
THUẬT TOÁN C4.5
Giáo viên hướng dẫn:
PGS.TS. Đỗ Phúc
Học viên thực hiện:
Thái Hồng Quang
CH1101033
Lớp:
Thạc sỹ CNTT qua mạng khoá 06
Lời giới thiệu
Mô hình cây quyết định là một trong những phương pháp phổ biến và được áp dụng nhiều trong
thực tế cho các bài toán phân lớp và dự đoán. Chương này sẽ giới thiệu chung về mô hình cây
quyết định, một số độ đo phổ biến được áp dụng trong các thuật toán, thuật toán ID3, C4.5, và
một số vấn đề mở rộng của cây quyết định.
1. Giới thiệu
Mô hình học cây quyết định là phương pháp cho việc xấp xỉ các hàm mục tiêu có giá trị rời
rạc và được biểu diễn dưới dạng cây quyết định. Cây quyết định sau khi được học có thể biểu
diễn lại dưới dạng luật if-then để tăng khả năng dễ đọc. Đây là một trong những phương pháp
được sử dụng phổ biến nhất trong số các thuật toán học quy nạp, và nó đã được áp dụng khá
thành công trong ứng dụng y khoa và tài chính như chẩn đoán bệnh hay đánh giá rủi ro tín dụng.
1.1. Cây quyết định và một số ứng dụng
Cây quyết định là một phương pháp phân lớp thuộc nhóm học có giám sát (supervised
learning) như: dựa trên luật (rule-based), mạng Bayes (naïve Bayes), mạng nơron, SVM,…
Ứng dụng của cây quyết định dùng trong phân lớp dự đoán như:
 Dự báo thời tiết (dự báo trời nắng, mưa hay âm u,…) dựa trên một số yếu tố nhiệt
độ, sức gió, độ ẩm,…


 Dự báo trong kinh doanh (doanh số tháng tới sẽ tăng hay giảm) dựa các yếu tố chỉ số
tiêu dùng, yếu tố xã hội, sự kiện,…
 Tín dụng ngân hàng (khả năng chi trả tín dụng của khách hàng khi vay mượn)
 Thị trường chứng khoán (giá vàng, cổ phiếu sẽ tăng hay giảm)
1.2. Biểu diễn cây quyết định
Từ những nhu cầu trong thực tế trên, mục tiêu là xây dựng được cây quyết định có thuộc
tính quyết định (là các lớp có sẵn hay các thuộc tính cần dự đoán) dựa trên các thuộc tính quan
sát. Ví dụ như trong bài toán dự báo thơi tiết thì thuộc tính quyết định sẽ là thời tiết với các lớp là
“nắng”, “mưa”, “âm u” và các thuộc tính điều kiện là nhiệt độ, sức gió, độ ẩm,…
Thành phần chính của cây quyết định:
An
 Nút lá C
k
: nhãn của lớp thứ k (thuộc tính quyết định C)
 Nút gốc, nút trong A
i
: thuộc tính A
i
(thuộc tính điều kiện)
 Nhánh V
ij
: trường hợp thứ j (giá trị, khoảng giá trị) của A
i
. Khoảng giá trị trong
trường hợp các phép so sánh (>,<,>=,<=)
Như vậy, để xây dựng được cây quyết định thì cần phải sắp xếp các thuộc tính A
i
vào
các nút trong cây. Câu hỏi đặt ra là sẽ chọn nút nào làm nút gốc? nút nào làm nút trong? cho
mỗi bước thực hiện và tương tự cho các bước tiếp theo. Từ đây rút ra nhận xét liệu thứ tự sắp

xếp các thuộc tính trong cây có ảnh hưởng đến chất lượng kết quả không? Như vậy cần độ đo
giúp lựa chọn các thuộc tính thích hợp cho mỗi bước mà các độ đo này sẽ được giới thiệu ở phần
tiếp theo.
Dựa vào loại nhãn của thuộc tính quyết định C
k
có thể phân thành 2 dạng cây quyết định:
 Cây phân lớp (Classification tree): Nhãn của các C
k
là dữ liệu định danh
o Ví dụ: dự báo kết quả trận đấu “thắng” hay “thua”, kết quả học tập của học sinh là
“giỏi”, “khá” hay “trung bình”.
 Cây hồi quy (Regression tree): Nhãn của các C
k
là dữ liệu định lượng
(giá trị số).
o Ví dụ: ước tính giá một ngôi nhà hoặc khoảng thời gian điều trị bệnh.
Tương ứng với mỗi dạng sẽ có thuật toán phổ biến hiện nay: ID3, C4.5, CART
(Classification And Regression Tree).
 CART: giải quyết được bài toán cần sử dụng cây phân lớp và cây hồi quy
 ID3, C4.5: giải quyết được bài toán sử dụng cây phân lớp
Tùy vào mỗi thuật toán sẽ có các độ đo tương ứng để hỗ trợ việc đánh giá, lựa chọn thuộc
tính cho việc xây dựng cây ở mỗi bước.
2. Các độ đo
Như vậy để trả lời cho câu hỏi làm thế nào chọn được thuộc tính phân tách (splitting
attribute) cho mỗi bước khi thực hiện xây dựng cây quyết định? Các độ đo đã được đưa ra để giải
quyết vấn đề này.
Ak
Am
C1
C3

C2C1
Ai
C3
C2
Độ đo là phần quan trọng trong thuật toán để đánh giá thuộc tính nào sẽ được chọn làm
thuộc tính phân tách. Thuộc tính phân tách giúp đảm bảo sự trùng lắp, ngẫu nhiên ít nhất giữa
các phân hoạch tạo được từ thuộc tính đó. Cách tiếp cận này giúp tối thiểu số phép thử để phân
loại một phần tử.
Tùy theo các thuật toán cây quyết định, cách tiếp cận khác nhau mà sẽ sử dụng các độ đo
khác nhau. Trong phần này sẽ trình bày 2 độ đo được sử dụng khá phổ biến đó là độ đo dựa vào
lý thuyết thông tin (Information Gain, Gain Ratio được sử dụng trong thuật toán ID3 và C4.5) và
độ đo Gini (được sử dụng trong thuật toán CART).
2.1. Các độ đo dựa trên lý thuyết thông tin
Các độ đo thuộc nhóm này được xuất phát dựa trên lý thuyết thông tin (Information
Theory) của Claude Shannon có nguồn gốc từ lý thuyết xác suất và thống kê. Các độ đo dựa trên
lý thuyết thông tin đều sử dụng đến một khái niệm đó là entropy.
Entropy là đại lượng đặc trưng cho mức độ hỗn loạn của các phần tử trong quần thể S. Hay
nói cách khác đó là lượng thông tin cần để phân loại 1 phần tử trong S.
Nhận xét: nếu độ hỗn loạn của quần thể S cao thì lượng thông tin cần để phân loại 1 phần
tử trong S nhiều. Ngược lại, nếu độ hỗn loạn thấp thì lượng thông tin cần để phân loại 1 phần tử
trong S ít.
Hình bên dưới minh họa cho độ hỗn loạn của các phần tử trong quần thể S
Công thức tổng quát tính Entropy trong quần thể S:
Trong đó: p
i
là xác suất để 1 phần tử bất kỳ trong S thuộc về lớp C
i
(i = 1 m). Với C
i


giá trị của thuộc tính quyết định.
Ví dụ 1: Tập dữ liệu S có 14 phần tử trong đó giá trị của thuộc tính quyết định Play
Tennis? là “Yes”, “No”. Vậy có thể phân thành 2 lớp theo thuộc tính quyết định C
1
: Yes và
C
2
: No. Áp dụng công thức tính được entropy của S như sau:

Entropy(S)=
Công thức tính entropy ở trên là công thức tổng quát đối với trường hợp S có m lớp. Trong
trường hợp S có 2 lớp công thức tính entropy (S) :
 Nếu (p
1
= 0 hay p
2
=0)  entropy = 0: S đồng nhất (mọi phần tử đều thuộc 1 lớp)
 Nếu p
1
= p
2
= 1/2  entropy = 1: số phần tử thuộc C
1
và C
2
bằng nhau
 Nếu p
i
 (0,1)  entropy  (0,1): số phần tử thuộc C
1

và C
2
khác nhau
Các trường hợp trên được biểu diễn bằng đồ thị hay ví dụ minh họa như sau
Vấn đề đặt ra là ngoài thuộc tính quyết định C
i
, trong quần thể S còn có nhiều thuộc tính
điều kiện khác như A, A

,
A‟‟,…Vậy
khi đó nên chọn thuộc tính nào làm thuộc tính phân tách?
Phân hoạch S theo thuộc tính A
Phân hoạch S theo thuộc tính A’
2.1.1. Information Gain
Độ đo Information Gain được đưa ra để giúp việc lựa chọn thuộc tính phân tách. Độ
đo này được sử dụng trong thuật toán ID3. Mỗi thuộc tính điều kiện sẽ phân tách quần thể S
thành các phân hoạch. Information Gain sử dụng đại lượng entropy của lý thuyết thông tin để
cho biết mức độ trùng lắp giữa các phân hoạch được tạo ra, nghĩa là một phân hoạch sẽ chứa
các phần tử từ một lớp hay từ nhiều lớp khác nhau.
Thuộc tính A phân hoạch S thành v phân hoạch được ký hiệu như sau {SA1, SA2 ,…, SAv}.
Với v là tập giá trị của A. Công thức tính Information Gain:
Với Entropy (SAj) là mức độ hỗn loạn của các phân hoạch SAj do thuộc tính A tạo ra.
Chọn thuộc tính Aj nào có Gain(S,Aj) LỚN NHẤT làm thuộc tính phân tách
Nhận xét: Do Entropy(S) là hằng số đối với tất cả thuộc tính, mức độ hỗn loạn của các phân
hoạch do thuộc tính A
j
tạo ra (Entropy (S
A
))được mong đợi là có giá trị càng nhỏ càng tốt (ít

hỗn loạn). Do đó kết quả sẽ là chọn Gain (S,A
j
) của thuộc tính Aj nào có giá trị lớn nhất.
Ví dụ 2: Có tập dữ liệu Play Tennis như sau:
Xét thuộc tính Outlook: Outlook có 3 giá trị “Sunny”, “Overcast”, và “Rain”. Do đó
thuộc tính Outlook tạo ra 3 phân hoạch. Lần lượt tính Entropy cho mỗi phân hoạch theo công
thức tính Entropy phần 2.1 ta được:
j
Theo công thức tính Gain (S, Outlook):
phân tách.
Tương tự, lần lượt tính được Gain cho các thuộc tính khác:
Gain (S,Humidity)=0.151, Gain (S,Wind)=0.048, Gain (S,Temp)=0.029
Thuộc tính Outlook có Gain(S,Outlook) cao nhất nên chọn Outlook làm thuộc tính
Ví dụ 3: giả sử cũng tập dữ liệu Play Tennis như Ví dụ 2 nhưng có bổ sung
thêm một thuộc tính When (thời gian chơi Tennis) như sau:
Gain(S,When) = 0.940 – (4/14)*1 – (3/14)*0.918 – (3/14)*0.918 = 0.261
Nhận xét: bây giờ do thuộc tính When có Gain (S,When) cao nhất 0.261 (lớn hơn
Gain(S,Outlook)=0.246 đã tính ở Ví dụ 2), nên sẽ chọn thuộc tính When làm thuộc tính phân
tách thay vì là thuộc tính Outlook. Tuy nhiên, theo quan sát thì do thuộc tính When có nhiều giá
trị (5 giá trị) hơn thuộc tính Outlook (3 giá trị), trong đó có một phân hoạch là When=7pm chỉ có
1 phần tử, nên entropy của mỗi phân hoạch do thuộc tính When tạo ra thấp, từ đó dẫn đến Gain
(S, When) cao.
Như vậy với độ đo Information Gain có xu hướng “thiên vị” cho thuộc tính nhiều
giá trị (cây có nhiều nhánh). Điều này làm ảnh hưởng đến kết quả dự đoán. Do đó cần một độ đo
cải tiến hơn để giải quyết vấn đề này.
2.1.2. Gain Ratio
Độ đo Gain Ratio được đặt ra để giải quyết vấn đề một thuộc tính tạo ra rất nhiều
phân hoạch nhưng có thể mỗi phân hoạch chỉ gồm 1 phần tử. Độ đo này được sử dụng trong
thuật toán C4.5 và đã chuẩn hóa đươc Information Gain nhờ vào Split Information (thông tin
phân tách). [1] Công thức tính Split Information như sau:

Nhận
xét:Thông
tin phân tách này có ý nghĩa: nếu thuộc tính A có càng nhiều giá trị
thì thông tin phân tách của nó (SplitInfo (S,A)) càng lớn. Khi đó lấy Gain(S,A) chia cho
SplitInfo(S,A) để có được độ đo GainRation (S, A) như công thức:
Chọn
thuộc tính A
j
nào có GainRatio(S, A
j
) LỚN NHẤT làm thuộc tính phân tách.
Độ đo Gain Ratio đã giải quyết được xu hướng “thiên vị” cho thuộc tính nhiều giá
trị của độ đo Information Gain vì giả sử hai thuộc tính A và B có cùng Gain
(Gain(A)=Gain(B)). Nhưng nếu thuộc tính A có nhiều giá trị hơn thuộc tính B, khi đó SplitInfo
của A sẽ lớn hơn SplitInfo của B. Do đó theo công thức, giá trị Gain Ratio của B sẽ lớn hơn
Gain Ratio của A, và cuối cùng sẽ chọn B làm thuộc tính phân tách. Như vậy Gain Ratio đã
chuẩn hóa được trường hợp thiên vị cho thuộc tính nhiều giá trị của Information Gain trước đó.
Ví dụ 4: Tương tự bài toán ở Ví dụ 3 đã trình bày ở trên, tính lại GainRatio cho
thuộc tính Outlook và When
SplitInfo(S

,When)
Thuật toán C4.5
3.1. Giới thiệu C4.5
Với những đặc điểm C4.5 là thuật toán phân lớp dữ liệu dựa trên cây quyết định hiệu quả
và phổ biến trong những ứng dụng khai phá cơ sở dữ liệu có kích thước nhỏ. C4.5 sử dụng cơ
chế lưu trữ dữ liệu thường trú trong bộ nhớ, chính đặc điểm này làm C4.5 chỉ thích hợp với
những cơ sở dữ liệu nhỏ, và cơ chế sắp xếp lại dữ liệu tại mỗi node trong quá trình phát triển cây
quyết định. C4.5 còn chứa một kỹ thuật cho phép biểu diễn lại cây quyết định dưới dạng một
danh sách sắp thứ tự các luật if-then (một dạng quy tắc phân lớp dễ hiểu). Kỹ thuật này cho phép

làm giảm bớt kích thước tập luật và đơn giản hóa các luật mà độ chính xác so với nhánh tương
ứng cây quyết định là tương đương.
Tư tưởng phát triển cây quyết định của C4.5 là phương pháp HUNT đã nghiên cứu ở trên.
Chiến lược phát triển theo độ sâu (depth-first strategy) được áp dụng cho C4.5.
3.2. Các độ đo sử dụng trong C4.5
Phần lớn các hệ thống học máy đều cố gắng để tạo ra 1 cây càng nhỏ càng tốt, vì những
cây nhỏ hơn thì dễ hiểu hơn và dễ đạt được độ chính xác dự đoán cao hơn.
Do không thể đảm bảo được sự cực tiểu của cây quyết định, C4.5 dựa vào nghiên cứu tối
ưu hóa, và sự lựa chọn cách phân chia mà có độ đo lựa chọn thuộc tính đạt giá trị cực đại.
Hai độ đo được sử dụng trong C4.5 là information gain và gain ratio.
3.2.1. Information Gain
Trong đó: Value(A) là tập các giá trị của thuộc tính A, Sv là tập con của S mà A nhận giá trị v
Ví dụ mô tả cách tính information gain
Xét CSDL sau:
Xét
thuộ
c
tính
Outl
ook(
O)
X
tín
T
(T)


In
0.048
InfoGain(W) = 0.029

Suy ra: Ta sẽ chọn Outlook vì có InfoGain lớn nhất
Tính InfoGain cho từng nhánh (chưa được phân lớp) để tăng trưởng cây (một cách đệ
Quy)
Kết quả đạt được:
3.2.2. Gain Ratio trong C4.5
Với độ đo Information Gain sẽ ưu tiên cho những thuộc tính có nhiều giá trị, để giải quyết việc này Gain
Ratio bổ sung thêm thông tin phân tách (split information)
Ví dụ về Gain Ratio
13
InfoGain

S,

O



0.246
 GainRatio

S,

O


 0.246
/
1.58 
0.156
Tương tự ta có:

GainRatio(S, H) = 0.151/1.56 = 0.097
GainRatio(S, W) = 0.048/1 = 0.048
GainRatio(S, T) = 0.029/0.985 = 0.029
Suy ra: Chọn Outlook vì có Gain Ratio lớn nhất
3.3. Đặc điểm của C4.5
4.3.1. C4.5 có cơ chế riêng trong xử lý những giá trị thiếu
Một cải tiến hơn so với ID3 là C4.5 có cơ chế riêng để xử lý những dữ liệu thiếu:
VD: Gọi So là tập các mẫu có giá trị của thuộc tính Outlook bị thiếu.Khi đó độ đo
information gain của Outlook sẽ giảm vì chúng ta không học được gì từ các mẫu trong So
14
Tương ứng split information cũng thay đổi
Nhờ sự thay đổi này làm giảm giá trị của các
mẫu liên quan tới thuộc tính có tỷ lệ giá trị cao.
Ở ví dụ trên nếu Outlook được chọn, C4.5 không tạo một nhánh riêng trên cây quyết định cho So.
Thay vào đó, thuật toán có cơ chế phân chia các mẫu trong So về các tập con Si là tập con mà
có giá trị thuộc tính outlook xác định theo trong số |Si| / |S – So|.
3.3.2. Tránh “Quá vừa” dữ liệu
“Quá vừa” dữ liệu là một khó khăn đáng kể đối với học bằng cây quyết định và những
phương pháp học khác. Quá vừa dữ liệu là hiện tượng: nếu không có các case xung đột (là những
case mà giá trị cho mọi thuộc tính là giống nhau nhưng giá trị của lớp lại khác nhau) thì cây
quyết định sẽ phân lớp chính xác toàn bộ các case trong tập dữ liệu đào tạo. Đôi khi dữ liệu đào
tạo lại chứa những đặc tính cụ thể, nên khi áp dụng cây quyết định đó cho những tập dữ liệu khác
thì độ chính xác không còn cao như trước.
Có một số phương pháp tránh “quá vừa” dữ liệu trong cây quyết định:
+ Dừng phát triển cây sớm hơn bình thường, trước khi đạt tới điểm phân lớp hoàn hảo tập
dữ liệu đào tạo. Với phương pháp này, một thách thức đặt ra là phải ước lượng chính xác thời
điểm dừng phát triển cây.
+ Cho phép cây có thể “quá vừa” dữ liệu, sau đó sẽ cắt, tỉa cây Mặc dù phương pháp thứ
nhất có vẻ trực quan hơn, nhưng với phương pháp thứ hai thì cây quyết định được sinh ra được
thử nghiệm chứng minh là thành công hơn trong thực tế, vì nó cho phép các tương tác tiềm

nănggiữa các thuộc tính được khám phá trước khi quyết định xem kết quả nào đáng giữ lại.
C4.5 sử
dụng kỹ thuật thứ hai để tránh “quá vừa” dữ liệu.
3.3.3. Chuyển đổi từ cây quyết định sang luật
Việc chuyển đổi từ cây quyết định sang luật sản xuất (production rules) dạng if-then tạo
ra những quy tắc phân lớp dễ hiểu, dễ áp dụng. Các mô hình phân lớp biểu diễn các khái niệm
dưới dạng các luật sản xuất đã được chứng minh là hữu ích trong nhiều lĩnh vực khác nhau, với
các đòi hỏi về cả độ chính xác và tính hiểu được của mô hình phân lớp. Dạng output tập luật sản
xuất là sự lựa chọn “khôn ngoan”. Tuy nhiên, tài nguyên tính toán dùng cho việc tạo ra tập luật
từ tập dữ liệu đào tạo có kích thước lớn và nhiều giá trị sai là vô cùng lớn [12]. Khẳng định này
sẽ được chứng minh qua kết quả thực nghiệm trên mô hình phân lớp C4.5
Giai đoạn chuyển dổi từ cây quyết định sang luật bao gồm 4 bước:
• Cắt tỉa:
Luật khởi tạo ban đầu là đường đi từ gốc đến lá của cây quyết định. Một cây quyết định
có l lá thì tương ứng tập luật sản xuất sẽ có l luật khởi tạo. Từng điều kiện trong luật được xem
xét và loại bỏ nếu không ảnh hưởng tới độ chính xác của luật đó.
Sau đó, các luật đã cắt tỉa được thêm vào tập luật trung gian nếu nó không trùng với
những luật đã có.
• Lựa chọn
Các luật đã cắt tỉa được nhóm lại theo giá trị phân lớp, tạo nên các tập con chứa các luật
theo lớp. Sẽ có k tập luật con nếu tập training có k giá trị phân lớp. Từng tập con trên được xem
xét để chọn ra một tập con các luật mà 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
15
Sắp xếp K tập luật đã tạo ra từ trên bước 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 training 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.
• U
ớc lu

ợng, đánh giá:
Tập luật được đem ước lượng lại trên toàn bộ tập training, nhằm mục đích xác định xem
liệu có luật nào làm giảm độ chính xác của sự phân lớp. Nếu có, luật đó bị loại bỏ và quá trình
ước lượng được lặp cho đến khi không thể cải tiến thêm.
4.4. Nhận xét về C4.5
• C4.5 có cơ chế sinh cây quyết định hiệu quả và chặt chẽ bằng việc sử dụng độ đo lựa
chọn thuộc tính tốt nhất là gain-ratio.
• Các cơ chế xử lý với giá trị lỗi, thiếu và chống “quá vừa” dữ liệu của C4.5 cùng với
cơ chế cắt tỉa cây.
Thêm vào đó, mô hình phân lớp C4.5 còn có phần chuyển đổi từ cây quyết định sang luật
dạng if-then, làm tăng độ chính xác và tính dễ hiểu của kết quả phân lớp. Đây là tiện ích rất có ý
nghĩa đối với người sử dụng.
4. Các vấn đề trong việc học cây quyết định
4.1. Tránh Overfitting dữ liệu
Trong một số trường hợp giải thuật chỉ mô tả sự phát triển của cây chỉ đủ sâu để phân loại
hoàn toàn những dữ liệu đào tạo. Trong thực tế, ta thường gặp một số khó khăn như dữ liệu bị
nhiễu, lỗi hoặc khi số lượng dữ liệu là quá ít. Trong hai trường hợp nêu trên, giải thuật ID3 có
thể tạo ra trường hợp quá khớp (overfitting).
Nhóm tác giả phát biểu rằng một giả thuyết quá khớp với dữ liệu đào tạo nếu một số những
giả thuyết mà thích hợp với dữ liệu đào tạo nhưng thiếu chính xác trên toàn bộ sự phân bố của
trường hợp. Chương này sẽ giới thiệu các kỹ thuật thường được sử dụng nhất.
Định nghĩa:
Cho một không giả thuyết H , một giả thuyết h thuộc H được gọi là quá khớp trên dữ liệu
đào tạo nếu tồn tại một vài giả thuyết h‟ thuộc H mà h có ít lỗi hơn h‟ trên dữ liệu đào tạo,
nhưng
h‟
có ít lỗi hơn h trên toàn bộ sự phân bố.
Hình ảnh dưới đây minh họa các tác động của thao tác quá khớp trong một ứng dụng điển
hình của việc học một cây quyết định. Trong ví dụ này, thuật toán ID3 được áp dụng trong tin
học y tế.

- Trục ngang của đồ thị này chỉ tổng số các nút trong cây quyết định.
- Trục đứng cho thấy tính chính xác của cây quyết định.
- Đường liền cho thấy tính chính xác của các cây quyết định trên tập dữ liệu đào tạo
- Đường đứt liền cho thấy độ chính xác đo trên một tập hợp độc lập của các ví dụ kiểm
tra.
Tuy nhiên, trên đồ thị ta thấy rằng độ chính xác đo được qua các ví dụ kiểm tra độc lập đầu
tiên tăng, sau đó giảm dần. Trên đồ thị ta có thể thấy khi kích thước cây vượt quá 25 nút, nếu tiếp
tục xây dựng cây quyết định sẽ làm giảm độ chính xác của nó khi sử dụng trên tập dữ liệu kiểm
16
tra mặc dù tính chính xác của nó tăng trên tập huấn luyện.
Quá khớp trong việc học cây quyết định.
Làm thế nào để có thể cho cây h để phù hợp với các ví dụ đào tạo tốt hơn h‟ đồng thời cho
kết quả tốt hơn trên tập dữ liệu kiểm tra.
Một trong những trường hợp có thể xảy ra là trong các ví dụ huấn luyện có nhiễu, lỗi. Để
minh họa, ta xem xét các đặc trưng được thêm vào các ví dụ như sau:
(Outlook = Sunny, Temperature = Hot, Humidity = Normal,
Wind = Strong, PlayTennis = No)
Thay vì
(Outlook = Sunny, Temperature = Hot, Humidity = Normal,
Wind = Strong, PlayTennis = Yes)
Khi đó, việc tạo ra cây quyết định sẽ phức tạp hơn nhiều. Do dữ liệu ban đầu bị lỗi, thuật
toán ID3 tạo ra một cây quyết định khác phức tạp hơn so với ban đầu.
17
Cây quyết định ban đầu
Tuy nhiên, do dữ liệu sai, thuật toán ID3 có thể tạo ra thêm 2 nút từ một nhánh của cây.
Từ ví dụ trên, ta có thể thấy, nếu có bất kỳ một nhiễu, lỗi ngẫu nhiên trong các ví dụ huấn
luyện có thể dẫn đến tình trạng quá khớp. Trong thực tế, tình trạng quá khớp này có thể xảy ra
khi dữ liệu đào tạo bị lỗi hoặc tập dữ liệu quá nhỏ, không đại diện được cho tập dữ liệu. Hơn
nữa, tình trạng quá khớp là một khó khăn đáng kể cho việc học cây quyết định và nhiều phương
pháp học khác. Ví dụ, trong một nghiên cứu thực nghiệm của ID3 liên quan đến nhiệm vụ khác

nhau của việc học nhiễu, lỗi, tình trạng quá khớp có thể làm giảm tính chính xác của cây quyết
định từ 10-25%.
Có một vài cách tiếp cận nhằm tránh trường hợp quá khớp trong việc học cây quyết định.
Ở đây có thể được phân thành hai lớp:
 Phương pháp tiếp cận bằng cách ngừng phát triển cây trước khi nó đạt đến điểm cây
quyết định hoàn toàn phân loại dữ liệu huấn luyện.
 Phương pháp tiếp cận cho phép tiếp tục phát triển cây quyết định – vẫn để tình trạng quá
khớp xảy ra, sau đó tỉa lại cây.
Mặc dù cách tiếp cận của phương pháp đầu tiên có vẻ thực tế hơn, tuy nhiên trong thực tế
phương pháp thứ hai đạt kết quả thành công hơn. Nguyên nhân là do trong phương pháp đầu tiên
khó khăn là phải ước tính một cách chính xác khi nào ngừng phát triển cây; kích thước cuối cùng
của cây là kích thước nào? Sử dụng tiêu chí nào để xác định kích thước cuối cùng này? Phương
pháp tiếp cận bao gồm:
 Sử dụng một bộ dữ liệu kiểm tra riêng biệt, khác biệt so với tập dữ liệu huấn luyện để
đánh giá hiệu quả của việc cắt tỉa nút từ cây.
 Sử dụng tất cả tập dữ liệu có sẵn để đào tạo, nhưng áp dụng một bài thống kê kiểm tra
nhằm ước tính khả năng mở rộng. Ví dụ: phép thử nghiệm chi-square
 Sử dụng một biện pháp rõ ràng để mã hóa các ví dụ huấn luyện và các cây quyết định,
ngăn chặn sự tăng trưởng của cây này nhằm làm giảm kích thước tối thiểu của cây mã
hóa. Cách tiếp cận này, dựa trên nguyên lý mô tả chiều dài tối thiểu (Minimum
18
Description Length principle) được đề cập đến trong Quinlan và Rivest (1989) và Mehta
cùng các cộng sự (1995).
Cách đầu tiên của các phương pháp tiếp cận trên được sử dụng phổ biến nhất. Nhóm tác
giả thảo luận về hai biến thể chính của cách tiếp cận này. Trong phương pháp này, các dữ liệu có
sẵn được chia thành hai bộ: một tập hợp dữ liệu để đào tạo – được sử dụng để hình thành các giả
thuyết học, và một tập hợp dữ liệu riêng biệt để kiểm tra, được sử dụng để đánh giá tính chính
xác của giả thuyết này trên dữ liệu tiếp theo, và để đánh giá tác động của việc cắt tỉa.
Động lực của thao tác trên như sau: Mặc dù người học có thể bị nhầm lẫn bởi những lỗi
ngẫu nhiên và quy luật này trùng hợp ngẫu nhiên trong tập huấn luyện. Vì vậy, tập hợp xác nhận

được dự kiến có thể sẽ cung cấp một phép kiểm tra an toàn chống lại trường hợp quá khớp của
tập huấn luyện. Điều quan trọng là các tập xác nhận phải đủ lớn cho chính nó nhằm cung cấp
một mẫu ý nghĩa thống kê cho các trường hợp. Thông thường, người ta sử dụng một phần ba
trong tập dữ liệu để kiểm tra và hai phần ba để huấn luyện.
4.1.1. Giảm lỗi cắt tỉa
Làm thế nào để ta có thể sử dụng một thiết lập xác nhận chính xác nhằm ngăn chặn tình
trạng quá khớp. Một cách tiếp cận được gọi là giảm lỗi cắt tỉa (reduced-error pruning - Quinlan
1987) nhằm quyết định xem xét nút nào là ứng cử viên cho cắt tỉa. Một quyết định nút nào là nút
cắt tỉa bao gồm việc loại bỏ các cây con bắt nguồn từ nút đó, làm cho nó thành một nút lá và gán
cho nó một nút cha phù hợp nhất. Các nút được xóa khỏi cây khi kết quả tỉa cây không tệ hơn so
với trước khi tỉa. Phương pháp này có tác dụng khi bất kỳ nút lá nào bị thêm do quy tắc trùng
hợp ngẫu nhiên trong tập huấn luyện có thể bị lược bỏ bớt bởi vì những sự trùng hợp tương tự
không xảy ra trong các tập kiểm tra. Công đoạn tỉa các nút được lặp đi lặp lại và các nút được lựa
chọn để loại bỏ phải hầu hết tăng độ chính xác cho cây quyết định. Công đoạn cắt bỏ các nút này
tiếp tục cho đến khi việc cắt tỉa thêm là có hại (ví dụ, làm giảm tính chính xác của cây qua tập dữ
liệu kiểm tra).
Các tác động của thao tác giảm lỗi cắt tỉa làm tăng tính chính xác của các cây quyết định
được minh họa trong hình dưới đây. Như trong trong ví dụ về quá khớp trong tập cây quyết định,
độ chính xác của cây được kiểm tra trên cả hai tập dữ liệu huấn luyện và kiểm tra. Đường được
bổ sung trong hình dưới đây cho thấy độ chính xác của cây tăng dần khi thực hiện việc cắt tỉa
cây. Trong trường hợp này, dữ liệu có sẵn được chia thành ba tập con: tập dữ liệu đào tạo, tập
dữ liệu kiểm tra được sử dụng để cắt tỉa cây và tập dữ liệu thử nghiệm được sử dụng để cung cấp
một ước tính chính xác hơn.
19
Ảnh hưởng của phương pháp giảm lỗi cắt tỉa trong khi học cây quyết định.
Sử dụng một bộ dữ liệu riêng biệt để cắt tỉa là một cách tiếp cận hiệu quả.
Hạn chế chính của phương pháp này là khi dữ liệu bị hạn chế thì số phần tử của các tập dữ
liệu kiểm tra, đào tạo, thử nghiệm sẽ giảm.
Phần sau trình bày một cách tiếp cận thay thế để cắt tỉa đã được tìm thấy hữu ích trong
nhiều ứng dụng thực tế, trong trường hợp dữ liệu bị giới hạn. Rất nhiều kỹ thuật bổ sung đã được

đề xuất, liên quan đến phân vùng dữ liệu có sẵn nhiều lần khác nhau bằng nhiều cách, sau đó tính
trung bình các kết quả. Đánh giá dựa trên kinh nghiệm của cây thay thế phương pháp cắt tỉa
được báo cáo bởi Mingers (1989b) và Malerba cùng các cộng sự (1995).
4.1.2. Luật POST-PRUNING
Trong thực tiễn, một phương pháp thành công cho việc tìm kiếm những giả thuyết với sự
chính xác cao là một kỹ thuật mà chúng ta sẽ gọi là luật cắt tỉa (post-pruning). Một dạng khác
của phương pháp cắt tỉa được sử dụng trong C4.5 là một dạng phát triển của giải thuật ID3. Luật
toán cắt tỉa (post-pruning) gồm những bước sau đây:
 Xây dựng cây quyết định từ tập dữ liệu huấn luyện - cho phép tình trạng quá khớp xảy ra.
 Chuyển đổi cây đã học thành một tập luật tương đương. Mỗi luật là một đường đi từ nút
gốc đến nút lá của cây quyết định.
 Thu gọn mỗi luật bằng cách loại bỏ bất kỳ điều kiện tiên quyết mà kết quả được cải thiện
độ chính xác.
 Phân loại các quy tắc cắt tỉa và sắp xếp chúng theo độ chính xác ước tính của chúng, và
xem xét chúng trong trình tự khi phân loại các trường hợp tiếp theo.
Để minh họa, xem xét lại cây quyết định sau:
20
Trong khi rút gọn luật, mỗi lá tương ứng với một luật và được tạo ra bằng cách đi từ nút
gốc đến nút lá của cây. Mỗi lần kiểm tra thuộc tính dọc theo đường dẫn từ gốc đến lá sẽ trở thành
một quy tắc tiền đề (điều kiện tiên quyết) và phân loại tại các nút lá trở thành hệ quả
(postcondition).
IF (Outlook = Sunny) A (Humidity = High)
THEN PlayTennis = No
Tiếp theo, mỗi quy tắc như vậy được tỉa bằng cách loại bỏ bất kỳ tiền đề, điều kiện tiên
quyết, mà khi loại bỏ kết quả không tồi tệ hơn ước tính chính xác của nó. Luật cắt tỉa được chọn
tùy theo điều kiện nào của các bước cắt tỉa cải tiến hơn so với các điều kiện khác. Việc cắt tỉa sẽ
không được thực hiện nếu nó làm giảm tính chính xác của quy tắc ước tính. Ví dụ luật cắt tỉa sẽ
xem xét việc loại bỏ tiền đề (Outlook=Sunny) and (Humidity=High) trong luật đã được tạo ra.
Như đã nói ở trên, một trong những phương pháp để ước tính độ chính xác là sử dụng một
xác nhận ví dụ phân chia tập huấn luyện. Một phương pháp khác, được sử dụng trong thuật toán

C4.5 nhằm đánh giá hiệu suất dựa trên việc đào tạo thiết lập của chính nó nhằm ước tính khả
năng không phù hợp của một nút bằng cách tính toán quy tắc chính xác về các ví dụ huấn luyện
mà nó được áp dụng, sau đó tính độ lệch chuẩn trong tính chính xác ước tính này giả định một
nhị thức phân phối. Đối với một độ tin cậy nhất định, ước tính thấp hơn giới hạn sau đó được
thực hiện là biện pháp thực hiện quy tắc (ví dụ, cho một độ tin cậy là 95%, nguyên tắc tính độ
chính xác bi quan được ước tính bởi tính chính xác quan sát được qua tập đào tạo, trừ đi 1,96 lần
độ lệch chuẩn ước tính). Hiệu quả cho dữ liệu lớn, ước tính bi quan là rất gần với độ chính xác
quan sát (ví dụ, độ lệch chuẩn là rất nhỏ), trong khi nó phát triển hơn nữa từ các quan sát chính
xác là kích thước của các tập hợp dữ liệu giảm.
Có ba lợi thế khi chuyển đổi cây quyết định thành các luật trước khi cắt tỉa:
 Việc chuyển thành luật cho phép phân biệt trong những ngữ cảnh khác nhau khi một nút
trong cây quyết định được sử dụng. Bởi vì mỗi đường đi (tương ứng với một luật) sẽ
phân biệt thông qua một nút lá của cây quyết định cho ra một luật phân biệt, việc cắt tỉa
cây quyết định xem xét việc kiểm tra các thuộc tính có thể tạo thành những đường đi
khác nhau. Chỉ có 2 lựa chọn sẽ loại bỏ một nút lá hoàn toàn (khi đó cây quyết định được
thu gọn) hoặc giữ nó lại ở dạng nguyên thủy.
 Việc chuyển cây quyết định thành luật loại bỏ thuộc tính kiểm tra phân biệt mà xảy ra
21
gần với gốc của cây và những cái này xảy ra gần với những lá. Như vậy chúng ta có thể
tránh được sự lộn xộn trong vấn đề tính toán như là làm thế nào để tổ chức lại cây nếu nút
gốc bị cắt tỉa nhưng vẫn còn cây con thuộc nút gốc này.
 Chuyển đổi các quy tắc cải thiện khả năng học. Quy định nhằm dễ dàng cho việc hiểu.
4.2. Kết hợp các thuộc tính có giá trị liên tục
Trong những định nghĩa ban đầu của thuật toán ID3 chỉ giới hạn đến những thuộc tính mà
nằm trong tập giá trị rời rạc.
- Đầu tiên là giá trị thuộc tính mục tiêu, giá trị này của nó được tiên đoán bởi cây quyết
định phải là giá trị thực.
- Thứ hai những thuộc tính được kiểm tra trong những nút cây quyết định phải là giá trị
rời rạc.
Sự hạn chế này có thể dễ dàng được loại bỏ. Khi đó giá trị liên tục vẫn có thể được sử dụng

trong cây quyết định. Điều này có thể đạt tới bằng việc hạn chế tối đa những thuộc tính giá trị rời
rạc mới mà phân chia giá trị liên tục thành tập hợp của những giá trị rời rạc theo các khoảng.
Cụ thể với một giá trị thuộc tính A là giá trị liên tục, giải thuật có thể linh động tạo ra một
thuộc tính logic Ac mang giá trị true nếu A < c và false nếu ngược lại.
Vấn đề còn lại là lựa chọn giá trị tốt nhất cho ngưỡng c như thế nào.
Ví dụ, giả sử ta xét các thuộc tính giá trị liên tục Temperature. Giả sử trong một ví dụ liên
kết huấn luyện với một nút cụ thể trong một cây quyết định có giá trị Temperature và thuộc tính
PlayTennis.
Những ngưỡng ứng cử viên có thể được đánh giá bằng cách tính toán được thông qua các
thông tin có liên quan với nhau. Trong ví dụ trên, có hai ngưỡng ứng cử viên, tương ứng với giá
trị của nhiệt độ mà tại đó giá trị thay đổi PlayTennis là (48 + 60)/2 và (80 + 90)/2. Khi đó, giá trị
Information gain có thể được tính toán lại cho mỗi ứng cử viên thuộc tính, Temperature
>54
và Temperature
>85
. Vì Information gain (Temperature
>54
) > Information gain
(Temperature
>85
) nên giá trị Temperature
>54
được chọn. Giá trị thuộc tính này tự động tạo ra
có thể so sánh được với các thuộc tính ứng cử viên khác có sẵn cho việc phát triển cây quyết
định.
Fayyad và Irani (1993) thảo luận về một phần mở rộng để tiếp cận theo cách này chia tách
các thuộc tính liên tục vào nhiều khoảng hơn là chỉ hai khoảng dựa trên một ngưỡng duy nhất.
Utgoff và Brodley (1991) và Murthy cùng cộng sự (1994) thảo luận về cách tiếp cận xác định
các tính năng bằng cách kết hợp tuyến tính một số thuộc tính có giá trị liên tục.
4.2.1. Các

phƣơng
pháp thay thế cho các thuộc tính lựa chọn
Có một khuynh hướng tự nhiên trong Information gain đó là những thuộc tính được chọn
với nhiều giá trị trên những thuộc tính khác với một vài giá trị. Ví dụ, xét thuộc tính Date nó có
nhiều những giá trị có thể xảy ra (ví dụ ngày 4 tháng 3 năm 1979). Nếu ta thêm thuộc tính này
vào bảng ví dụ về quyết định có Play Tennis hay không, ta thấy rằng thuộc tính này có khả năng
phân loại mạnh nhất.
22
Điều này xảy ra bởi vì thuộc tính Date hoàn toàn độc lập tiên đoán hàm mục tiêu trên dữ
liệu đào tạo. Vậy thuộc tính này có bị sai hay không? Thật ra, thuộc tính này đặt ra cho tập dữ
liệu có nhiều giá trị mà có thể phân chia tập dữ liệu đào tạo thành những tập rất nhỏ. Do đó, nó
sẽ có thu thập thông tin rất cao trên tập dữ liệu đào tạo, mặc dù là một công cụ tiên đoán không
tốt của hàm mục tiêu trên những trường hợp khác. Một cách để tránh điều này là chọn lựa những
thuộc tính dựa trên một số đánh giá khác hơn là chỉ sử dụng thuộc tính Information gain. Một độ
đo sử dụng thành công hơn là Gain Ratio. Phương pháp sử dụng độ đo này cản trở những thuộc
tính tương tự Date bằng việc kết hợp một biểu thức gọi là Split Information
Trong đó S
1
đến S
c
là tập con của c kết quả của những trường hợp từ sự phân hoạch S
bằng thuộc tính được đánh giá với c là A. Để ý rằng SplitInformation thực sự chính là entropy
của S với với sự liên quan trên những giá trị của thuộc tính A. Điều này ngược với việc sử dụng
của Entropy trước đây trong đó chúng ta xem xét chỉ entropy của S với sự liên quan đến giá trị
mục tiêu mà những giá trị của nó được tiên đoán bởi cây quyết định.
Đánh giá Gain Ratio được định nghĩa trong biểu thức của đánh giá Gain trước đây cũng
như đối với SplitInformation như sau:
4.2.2. Xử lý huấn luyện đối với những thuộc tính thiếu giá trị
Trong một số trường hợp nhất định dữ liệu có thể thiếu những giá trị đối với một số thuộc
tính. Ví dụ, trong y khoa chúng ta mong muốn tiên đoán kết quả bệnh nhân dựa trên nhiều những

kiểm tra trong phòng thí nghiệm, nó có thể là kiểm tra thử máu trên một tập những bệnh nhân
cho phép. Trong trường hợp như vậy chúng ta thông thường phải ước đoán những giá trị thiếu
dựa trên những trường hợp mà thuộc tính này có một giá trị đã biết.
Xét một trường hợp mà trong đó Gain(S,A) được tính toán tại nút n trong cây quyết định
để xác định khi nào thuộc tính A là thuộc tính tốt nhất để kiểm tra nút quyết định này. Giả sử
rằng (x,c(x)) là một trong những tập dữ liệu đào tạo trong S và giá trị A(x) là không được biết
đến. Một trong những chiến thuật liên quan đến thao tác thiếu giá trị thuộc tính là gán cho nó giá
trị chiếm hầu hết trong tập dữ liệu huấn luyện tại nút n. Một thủ tục thứ hai phức tạp hơn là gán
một kết quả có thể xảy ra cho mỗi một giá trị của A hơn là đơn giản gán một giá trị chung cho
A(x). Khả năng có thể nhận được bằng cách quan sát tần số của những giá trị khác nhau cho A
trong số những ví dụ tại nút n.
Ví dụ: Giả sử thuộc tính A là một ứng cử cho thuộc tính kiểm tra ở nút n. Ta sẽ phải xử lý
như thế nào với ví dụ x không có (thiếu) giá trị đối với thuộc tính A (tức là: x
A
là không
xác định)?
 Gọi S
n
là tập các ví dụ học gắn với nút n có giá trị đối với thuộc tính A
 Giải pháp 1: x
A
là giá trị phổ biến nhất đối với thuộc tính A trong số các ví dụ thuộc tập
S
n
 Giải pháp 2: x
A
là giá trị phổ biến nhất đối với thuộc tính A trong số các ví dụ thuộc tập
S
n
có cùng phân lớp với x

23
 Giải pháp 3: Tính xác suất p
v
đối với mỗi giá trị có thể v của thuộc tính A
o Gán phần (fraction) p
v
của ví dụ x đối với nhánh tương ứng của nút n
o Những ví dụ một phần (fractional instances) này được sử dụng để tính giá trị
Information Gain
Nút n
Một thuộc tính kiểu nhị phân (0/1) A.
Nút n bao gồm:
4 ví dụ có giá trị đối
với A = 1
0.4 của x
6 ví dụ có giá trị đối
với A = 0
0.6 của x
- Một ví dụ x (giá trị thiếu đối với A)
- 4 ví dụ có giá trị đối với A bằng 1
- 6 ví dụ có giá trị đối với A bằng 0
P(x
A
= 1) = 4/10 = 0.4
5.2.3. Xử lý các thuộc tính có chi phí khác nhau
Trong một số những công đoạn của việc học những thuộc tính của thực thể có sự liên hệ
đến giá. Giả sử một bác sĩ cần phân loại hoặc chuẩn đoán một căn bệnh, vấn đề đặt ra là bác sĩ
phải cho bệnh nhân của mình thực hiện những kiểm tra hoặc xét nghiệm nào mà chi phí là nhỏ
nhất. Những kiểm tra hoặc xét nghiệm này chính là những thuộc tính cần phải xét đến trong cây
quyết định.

Khi đó, cần sử dụng những cách đánh giá khác InformationGain nhằm xác định các thuộc
tính kiểm tra
(w
*0,1+
là hằng số xác định
mức độ quan trọng giữa chi phía
và Information Gain)
Gai
n
(S
,
A)
Cost(

A)
Ga

in(
S

,

A)
(Cost(

A)1)
24
2
w




2











1
Trong những trường hợp như vậy, ta sẽ ưu tiên những cây quyết định sử dụng những thuộc
tính chi phí thấp, dựa trên những thuộc tính có giá cao chỉ khi cần tạo ra những sự phân loại đáng
tin cậy. ID3 có thể sửa đổi để chuyển thành thuộc tính tính toán phải trả bằng việc đưa ra một
biểu thức giá trị sang định lượng lựa chọn thuộc tính.
SplitInfo(S , Outlook)
= -
5
log
5
-
4
log
4
-
5

log
5
14
2
14 14
2
14 14
2
14
= 1.577
GainRatio(S,When)= Gain(S,When)/SplitInfo(S,When)=0.261/2.217= 0.118
GainRatio(S,Outlook)= Gain(S,Outlook)/SplitInfo(S,Outlook)=0.246/1.577= 0.156
Ta thấy thuộc tính Outlook có Gain Ratio lớn hơn do đó chọn Outlook làm thuộc
tính phân tách
Gain Ratio cũng gặp một số vấn đề do có phần mẫu số SplitInfo:
 SplitInfo có thể bằng 0 hay rất thấp (khi |S
A
|  |S|). Khi đó Gain Ratio sẽ không xác
định được hoặc rất lớn.
Cách giải quyết:
 Tính Gain cho từng thuộc tính và lấy giá trị Gain trung bình (Gain_Average)
 Sau đó chỉ áp dụng Gain Ratio trên những thuộc tính có Gain > Gain_Average
5.2.2. Gini Index
Độ đo Gini Index được sử dụng trong thuật toán CART (Classification And Regression
Tree). Thuật toán CART được sử dụng trong bài toán xây dựng cây phân lớp và cây hồi quy.[2]
Độ đo Gini có đặc điểm là khi xây dựng cây sẽ tạo ra sự phân tách nhị phân cho mỗi thuộc
tính A
j
(phân hoạch thuộc A
j

và phân hoạch không thuộc A
j
).
 Cho tập huấn luyện S, các lớp {C
1
, C
2
,…C
n
}. Công thức tính Gini của tập S
j

×