ĐẠI HỌC QUỐC GIA TP.HCM
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
Tiểu luận môn: Hệ hỗ trợ ra quyết định
MÔ HÌNH CÂY QUYẾT ĐỊNH
DECISION TREE
GVHD: TS Đỗ Phúc
Nhóm thực hiện:
Nguyễn Thị Kim Anh – CH1301078
Nguyễn Phương Thanh Diệu –
CH1301085
TPHCM – 06/2014
Nội dung
Hệ Hỗ Trợ Ra Quyết Định - 2014 2
LỜI GIỚI THIỆU
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)
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. Nút dưới cùng được
gọi là nút lá, trong mô hình phân lớp dữ liệu chính là các giá trị của các nhãn lớp (gọi
tắt là nhãn). Các nút khác nút lá được gọi là các nút con, đây còn là các thuộc tính của
tập dữ liệu, hiển nhiên các thuộc tính này phải khác thuộc tính phân lớp. Mỗi một
nhánh của cây xuất phát từ một nút p nào đó ứng với một phép so sánh dựa trên miền
giá trị của nút đó.
Đối với phương pháp ước lượng có tham số,việc định nghĩa mô hình dựa trên tất cả
không gian đầu vào và học tất cả các tham số từ tập dữ liệu huấn luyện. Sau đó chúng
ta dùng mô hình xây dựng được với những tham số ban đầu để áp dụng cho bất kỳ tập
dữ liệu cần kiểm tra nào.
Đối với phương pháp ước lượng không tham số, chúng ta chia tập không gian đầu vào
thành hai tập được định nghĩa dựa trên đọ dô như Euclid. Một cây quyết định gồm có
phần nút decision node và terminal leaves.Với mỗi decision node m khai báo một hàm
kiểm tra fm(x) với tập kết quả rời rạc đánh nhãn các nhánh con.Với mỗi node thì đầu
vào việc kiểm tra và phân nhánh phụ thuộc và kết quả trả về. Quá trình kiểm tra bắt
đầu từ node gốc và được lặp lại đệ qui cho đến khi gặp node lá thì dừng.
Mỗi hàm fm(x) định nghĩa một biệt số trong không gian đầu vào d- chiều thình những
tập nhỏ hơn được phân nhánh từ gốc xuống. fm(.) đơn giản khi được viết ra dưới dạng
Hệ Hỗ Trợ Ra Quyết Định - 2014 3
cây và là hàm phức tạp khi phân rã thành chuỗi các quyết định đơn giản từ cây hiện
tại. Các phương pháp cây quyết định khác nhau sử dụng các mô hình khác nhau cho
hàm fm(.).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.
1. Giới thiệu về cây quyết định:
Trong lý thuyết về quyết định, Cây quyết định là một công cụ hỗ trợ quyết định sử
dụng dạng cây như một đồ thị hoặc mô hình các quyết định, dự báo những kết quả
(lợi ích, rủi ro, hao phí tài nguyên) cũng như những cơ hội… Cây quyết định được
sử dụng để xây dựng một kế hoạch nhằm đạt được mục tiêu mong muốn.
Trong data mining, cây quyết định là một kiểu mô hình dự báo (predictive model),
nghĩa là một ánh xạ từ các quan sát về một sự vật/hiện tượng tới các kết luận về
giá trị mục tiêu của sự vật/hiện tượng.
Có 2 loại hình cây quyết định:
Cây hồi quy (Regression tree): ước lượng các hàm có giá trị là số thực thay vì
được sử dụng cho các nhiệm vụ phân loại. Ví dụ: ước tính giá một ngôi nhà hoặc
khoảng thời gian một bệnh nhân nằm viện
Cây phân loại (Classification tree): nếu y là một biến phân loại như: giới tính (nam
hay nữ), kết quả của một trận đâu (thắng hay thua). Một vài hình ảnh của cây
quyết định:
Hệ Hỗ Trợ Ra Quyết Định - 2014 4
Cây quyết định đơn giản.
Cây quyết định cho chiến lược nghiên cứu dự án kinh doanh.
Trong bài này giới thiệu chính về cây quyết định với vai trò phân lớp dữ liệu
dựa trên các thuộc tính đầu vào, việc phân lớp này có thể được giải quyết với
nhiều kỹ thuật khác nữa như: mạng nơ ron, SVM. Cây quyết định được ứng dụng
rộng rãi trong nhiều lĩnh vực như: tài chính, marketing, kỹ thuật, y học.
Chi tiết về cây quyết định:
Cây quyết định là một cấu trúc phân cấp được thể hiện dưới dạng đồ thị cây
với các nút và các nhánh:
- Nút gốc: không có cạnh nào tới nó.
- Nút nội bộ: mang tên thuộc tính của CSDL
- Các nút lá đại diện cho các phân lớp
- Các đường nối các nút đại diện cho các kết hợp của các thuộc tính dẫn
tới phân lớp đó.(mô tả tình huống rẽ nhánh)
Tóm lại, cho dữ liệu về các đối tượng gồm các thuộc tính cùng với lớp của nó (cho
tập dữ liệu huấn luyện cùng với lớp tương ứng), cây quyết định sẽ sinh ra các luật
Hệ Hỗ Trợ Ra Quyết Định - 2014 5
để dự đoán lớp của các đối tượng chưa biết.
Kích thước cây: kích thước cây chính là độ phức tạp của 1 cây, theo [Breiman et
al. (1984)] độ phức tạp của 1 cây thì ảnh hưởng nhiều tới độ chính xác của cây
đó, cây càng phức tạp thì độ chính xác càng cao. Và độ phức tạp của cây thường
được đánh giá qua các chi tiết: tổng số node, tổng số nút lá, độ sâu của cây, số
lượng thuộc tính sử dụng.
Trích rút luật từ cây quyết định:
Tri thức biểu diễn trong cây quyết định có thể được rút ra và biểu diễn dưới
hình thức của quy tắc phân lớp IF-THEN. Một quy tắc được tạo ra thay thế cho một
đường dẫn tới một nút lá. Mỗi một cặp thuộc tính-giá trị theo một hướng đi cụ thể
hình thành phần đầu của quy tắc (phần “IF”). Nút lá chứa lớp dự đoán, hình thành
phần sau của quy tắc (phần “THEN”). Quy tắc IF-THEN có thể làm cho người đọc dễ
hiểu, đặc biệt trong trường hợp cây lớn.
2. Phát triển một cây quyết định
2.1. Tập huấn luyện
Dữ liệu huấn luyện được cho dưới dạng n mẫu hay n ví dụ huấn luyện, mỗi ví dụ
có dạng(xi, yi), trong đó xi là véctơ các thuộc tính và yi là giá trị nhãn phân loại.
Ví dụ biểu diễn một tập dữ liệu huấn luyện.
Các thuộc tính tham gia vào quá trình phân lớp thông thường có các giá trị liên tục
hay còn gọi là kiểu số (ordered or numeric values) hoặc kiểu rời rạc hay còn gọi là
kiểu dữ liệu phân loại (unordered or category values).
2.2. Bài toán phân lớp:
Mục đích: để dự đoán những nhãn phân lớp cho các bộ dữ liệu/mẫu mới. Đầu vào:
một tập các mẫu huấn luyện, với một nhãn phân lớp cho mỗi mẫu dữ liệu. Đầu ra:
mô hình (bộ phân lớp) dựa trên tập huấn luyện và những nhãn phân lớp
Học bằng cây quyết định là phương pháp thông dụng trong khai phá dữ liệu. Khi
đó, cây quyết định mô tả một cấu trúc cây, trong đó, các lá đại diện cho các phân
loại còn cành đại diện cho các kết hợp của các thuộc tính dẫn tới phân loại đó.
Hệ Hỗ Trợ Ra Quyết Định - 2014 6
2.3. Xây dựng cây quyết định:
Giải thuật học cây quyết định gồm 2 bước lớn: xây dựng cây (Top-down) (có
nhiều thuật toán xây dựng cây như: ID3 [Quin-lan (1986)],C4.5 [Quinlan
(1993)],CART [Breiman et al. (1984)]), cắt nhánh (Bottom-up) để tránh học vẹt.
Quá trình xây dựng cây được làm như sau:
- Việc xây dựng cây quyết định được tiến hành một cách đệ qui, lần lượt từ nút
gốc xuống tới tận các nút lá. Tại mỗi nút hiện hành đang xét, nếu kiểm tra thấy
thoả điều kiện dừng: thuật toán sẽ tạo nút lá. Nút này được gán một giá trị của
nhãn lớp tùy điều kiện dừng được thoả. Ngược lại, thuật toán tiến hành chọn
điểm chia tốt nhất theo một tiêu chí cho trước, phân chia dữ liệu hiện hành
theo điều kiện chia này.
- Lưu ý dữ liệu hiện hành không phải hoàn toàn là tập dữ liệu ngay khi bắt đầu
thuật toán, có thể là tập dữ liệu đã được phân chia theo điều kiện chia của nút
liền trước đó (nút cha).
- Sau bước phân chia trên, thuật toán sẽ lặp qua tất cả các tập con (đã được
chia) và tiến hành gọi đệ qui như bước đầu tiên với dữ liệu chính là các tập
con này.
Quá trình xây dựng cây chủ yếu phụ thuộc vào việc chọn thuộc tính tốt nhất để
phân hoạch dữ liệu.
2.4. Điều kiện dừng:
Quá trình đệ quy xây dựng cây quyết định được tiếp tục thực hiện cho đến khi
gặp một trong các điều kiện dừng:
- Mọi các mẫu trong tập huấn luyện đều được phân lớp.
- Không còn thuộc tính nào có thể dùng để phân chia mẫu nữa.
- Không còn lại mẫu nào tại nút.
3. Đánh giá cây phân lớp:
3.1. Giới thiệu:
Một vấn đề quan trọng trong quá trình khai thác hệ thống thông tin là việc đánh giá
chất lượng của các kết quả phân tích. Trong chương này, chúng tôi giới thiệu các
khái niệm chính vả các chỉ tiêu đánh giá chất lượng trong việc đánh giá cây quyết
định.
Hệ Hỗ Trợ Ra Quyết Định - 2014 7
Đánh giá hiệu suất của một cây phân loại là vấn đề cơ bản trong máy học. Như đã
nêu ở trên, cây quyết định có tham số đầu vào là tập huấn luyện, từ đó xây dựng
cây phân lớp để phân loại dữ liệu vào các lớp. Cây quyết định và cây phân lớp đều
được đánh giá bằng một số tiêu chuẩn đánh giá. Việc đánh giá này rất quan trọng
để đánh giá được chất lượng cây phân lớp. Từ đó xác định lại các tham số phù hợp
trong quá trình khai thác dữ liệu. Các tiêu chuẩn đánh giá được chia làm 3 loại:
hiệu suất phân loại, độ phức tạp tính toán, tính dễ hiểu của cây phân lớp.
3.2. Các phương pháp đánh giá mô hình phân lớp:
Ước lượng độ chính xác của cây phân lớp rất quan trọng, nó cho phép dự đoán
được độ chính xác của các kết quả phân lớp những dữ liệu tương lai. Độ chính xác
còn giúp so sánh các mô hình phân lớp khác nhau. Có 2 phương pháp đánh giá phổ
biến là holdout và k-fold cross-validation. Cả 2 kỹ thuật này đều dựa trên các phân
hoạch ngẫu nhiên tập dữ liệu ban đầu.
Trong phương pháp holdout, dữ liệu đầu vào được phân chia ngẫu nhiên thành phần
là: tập dữ liệu đào tạo và tập dữ l iệu kiểm tra. Thông thường 2/3 dữ liệu cấp cho tập
dữ liệu đào tạo, phần còn lại cho tập dữ liệu kiểm tra.
Trong phương pháp k-fold cross validation tập dữ liệu ban đầu được chia ngẫu nhiên
thành k tập con (fold) có kích thước xấp xỉ nhau S1, S2, …, Sk. Quá trình học và test
được thực hiện k lần. Tại lần lặp thứ i, Si là tập dữ liệu kiểm tra, các tập còn lại hợp
thành tập dữ liệu đào tạo. Có nghĩa là, đầu tiên việc huấn luyện được thực hiện trên
các tập S2, S3…, Sk, sau đó test trên tập S1; tiếp tục quá trình dạy được thực hiện trên
Hệ Hỗ Trợ Ra Quyết Định - 2014 8
tập S1, S3, S4,…, Sk, sau đó test trên tập S2, và cứ thế tiếp tục. Độ chính xác là toàn
bộ số phân lớp đúng từ k lần lặp chia cho tổng số mẫu của tập dữ liệu ban đầu.
3.2.1. Một số khái niệm:
Một số chỉ số thông dụng được dùng để đánh giá một giải thuật máy học, hay
cụ thể là để đánh giá một bộ phân loại hai lớp tạm gọi là dương và âm:
- Số đúng dương (TP- True positive): số phần tử dương được phân loại
dương
- Số sai âm (FN - False negative): số phần tử dương được phân loại âm
- Số đúng âm (TN- True negative): số phần tử âm được phân loại âm
- Số sai dương (FP - False positive): số phần tử âm được phân loại dương
3.2.2. Một số độ đo:
Các độ đo đánh giá thường được áp dụng là: precision, recall và f-measure
Precision là độ đo tính chính xác và đúng đắn của việc phân loại.
- Độ chính xác (Precision) = TP/(TP + FP)
Hệ Hỗ Trợ Ra Quyết Định - 2014 9
Recall là độ đo tính toàn vẹn của việc phân lớp
- Độ đo tính toàn vẹn (Recall) = TP/(TP + FN)
Mặc dù precision và recall là những độ đo được dùng rộng rãi và phổ biến nhất,
nhưng chúng lại gây khó khăn khi phải đánh giá các bài toán phân loại vì hai độ đo
trên lại không tăng/giảm tương ứng với nhau. Bài toán đánh giá có recall cao có
thể có precision thấp và ngược lại. Hơn nữa, việc so sánh mà chỉ dựa trên một
mình precision và recall không phải là một ý hay. Với mục tiêu này, độ đo F-
measure được sử dụng để đánh giá tổng quát các bài toán phân loại. F-measure là
trung bình điều hoà có trọng số của precision và recall và có công thức:
Nếu B càng cao thì sẽ tác động mạnh tới hệ số Recall, B càng thấp thì sẽ tác
động mạnh tới hệ số Precision, giá trị B thường dùng là 0.5
3.2.3. Ví dụ minh họa:
Hệ Hỗ Trợ Ra Quyết Định - 2014 10
Hệ Hỗ Trợ Ra Quyết Định - 2014 11
3.3. Độ phức tạp tính toán
Độ phức tạp tính toán cũng chính là chỉ về việc sử dụng tài nguyên CPU. Để dễ
so sánh ta mô tả 3 khía cạnh của độ phức tạp tính toán trong việc chia lớp dữ
liệu:
• Độ phức tạp tính toán (gọi tắt là độ phức tạp) để thiết lập được một bộ phân
lớp: đây là một yếu tố khá quan trọng, đặc biệt là khi chúng ta cần xây dựng một
thuật toán để khai phá tri thức trong một khối dữ liệu khổng lồ, độ phức tạp tính
toán thường là cao và là vấn đề rất đáng để quan tâm vì nó ảnh hưởng tới tốc độ
làm việc.
• Độ phức tạp khi cập nhật bộ phân lớp: khi có một mẫu mới, độ phức tạp để hệ
thống cập nhật lại bộ phân lớp để thỏa mãn được cả mẫu mới là bao nhiêu?
• Độ phức tạp khi tiến hành phân lớp dữ liệu: yếu tố này thường không được chú
ý nhiều bởi vì nó ảnh hưởng rất nhỏ tới tốc độ. Tuy nhiên trong một số trường
hợp như phương pháp k-hàng xóm gần nhất, hay một số ứng dụng thời gian thực
thì yếu tố này ảnh hưởng rất nhiều.
3.4. Tính dễ hiểu:
Tiêu chí này thể hiện tính dễ hiểu của một bộ phân lớp, nó được thể hiện qua
việc con người nắm bắt, hiểu được hệ thống tới mức độ nào.
Nhiều phương thức phân lớp như: mạng neural, SVM sử dụng một lượng lớn các
giá trị thực làm đầu vào và các hệ thống này là không dễ hiểu, chúng được liên
tưởng tới hình ảnh hộpđen (black box), con người chỉ có thể thấy đầu vào và đầu
ra.
Tính dễ hiểu của hệ thống quan trọng trong một số trường hợp ví dụ: hệ thống
phân tích và cấp thuốc, người dùng cần hiểu được tại sao hệ thống ra kết quả như
thế để có thể an tâm và tiến hành các thí nghiệm, công việc một cách chắc chắn,
tương tự như vậy trong các hệ thống khoa học nghiên cứu.
3.5. Khả dụng với các nguồn dữ liệu đồ sộ:
Hệ Hỗ Trợ Ra Quyết Định - 2014 12
Ngày nay các csdl khổng lồ là phổ biến, việc khai thác thông tin trong các csdl
này là một vấn đề trong khai thác dữ liệu. Các dữ liệu lên đến hàng terabyte chỉ
trong những khoảng thời gian ngắn. Và một số ngành có số lượng dữ liệu khổng
lồ như ngân hàng, viễn thông điện thoại, Có nhiều công ty thì đặt sự phát triển
của họ dựa vào các hệ thống khai thác dữ liệu, họ phát triền công ty theo hướng
được phân tích trong dữ liệu của họ, và khi nguồn dữ liệu lớn thì các hệ thống tốt
đáp ứng được công việc là cực kỳ có ích.
3.6. Tính mạnh của hệ thống:
Tính mạnh thể hiện qua sự làm việc tốt với các dữ liệu nhiễu, thiếu thông tin mà
hệ thống vẫn cho ra đúng kết quả như mong đợi. Các thuật toán xây dựng cây
quyết định khác nhau thì có độ mạnh khác nhau.
Để ước lượng độ mạnh của một cây quyết định thông thường được đo bằng cách
cho cây học một tập huấn luyện nhiễu và lấy một cây khác tương đương cho học
một tập huấn luyện sạch, độ mạnh được đo bằng cách tính toán độ lệch về tính
chính xác giữa 2 cây.
3.7. Tính ổn định:
Tính ổn định của hệ thống khi làm việc với các tập dữ liệu khác nhau, độ chính
xác thay đổi là nhỏ.
4. Cắt tỉa cây:
4.1. Quá khớp dữ liệu
Có thể hiểu đây là hiện tượng cây quyết định chứa một số đặc trưng riêng của tập
dữ liệu đào tạo, nếu lấy chính tập traning Data để test lại mô hình phân lớp thì độ
chính xác sẽ rất cao, trong khi đối với những dữ liệu test khác nếu sử dụng lại
không đạt sẽ không chính xác.
Nguyên nhân chính là do dữ liệu test có những bộ dự liệu bị nhiễu (noise data) hay
bị lỗi và số lượng dữ liệu đem đi huấn luyện quá ít hay dữ liệu huấn luyện chỉ
nghiêng về một đặc trưng nào đó thôi chứ không bao quát toàn bộ trường hợp.
4.2. Phương pháp tránh quá khớp dữ liệu:
Hệ Hỗ Trợ Ra Quyết Định - 2014 13
Có hai cách tránh “quá khớp” dữ liệu trong cây quyết định:
- Ngừ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á khớp” dữ liệu, sau đó sẽ cắt, tỉa cây.
4.3. Các thuật toán cắt tỉa cây:
Mặc dù phương pháp thứ nhất có vẻ trực tiếp hơn, nhưng với phương pháp thứ hai
thì cây quyết định sinh ra được thực nghiệm chứng minh là thành công hơn trong
thực tế . Hơn nữa việc cắt tỉa cây quyết định còn giúp tổng quát hóa, và cải thiện
độ chính xác của mô hình phân lớp. Dù thực hiện phương pháp nào thì vấn đề mấu
chốt ở đây là tiêu chuẩn nào được sử dụng để xác định kích thước hợp lý của cây
cuối cùng.
• Tập dữ liệu được chia ra làm các phần riêng biệt, từ tập huấn luyện, tập
đánh giá cây sau khi cắt tỉa bằng phương pháp hậu cắt tỉa
Có 2 phương pháp chính : reduced-error pruning and rule post-pruning.
• Áp dụng một kiểm tra thống kê (Chi-square test) để đánh giá xem việc mở
rộng (hay cắt tỉa) một nút có giúp cải thiện hiệu năng đối với tập huấn
luyện.
• Dùng độ đo bằng cách mã hóa tập huấn luyện và cây quyết định, ngừng
phát triển cây nếu chiều dài của chuỗi mã hóa là nhỏ nhất.
o Dựa trên nguyên lý Minimum Description Length (MDL)
o Cần cực tiểu hóa:
o size(tree) + size(misclassifications(tree))
4.3.1. Cắt tỉa để giảm lỗi (Reduced error pruning)
Chia tập dữ liệu ra làm 3 phần do Quinlan đề xuất 1987 như sau:
• Tập huấn luyện để tạo cây (training examples).
• Tập đánh giá dùng cho việc cắt tỉa (validation examples).
• Tập kiểm tra dùng để đánh giá độ chính xác trong tương lai (test examples).
Hệ Hỗ Trợ Ra Quyết Định - 2014 14
Phương pháp cắt tỉa như sau:
• Mỗi node trong cây quyết định là một ứng viên (không tính node lá).
• Node bị cắt đi nếu làm tăng độ chính xác của cây quyết định trên tập đánh
giá.
• Lặp cho tới khi độ chính xác của phần đánh giá giảm thì dừng.
Hệ Hỗ Trợ Ra Quyết Định - 2014 15
4.3.2. Cắt tỉa theo luật (Rule Post-Pruning)
Phương pháp cắt tỉa như sau:
• Phát triển cây quyết định hoàn toàn phù hợp với tập huấn luyện.
• Chuyển biểu diễn cây quyết định học được thành một tập các luật tương
ứng (tạo một luật cho mỗi đường đi từ nút gốc đến một nút lá)
• Rút gọn mỗi luật bằng cách loại bỏ bất kỳ điều kiện nào giúp mang lại sự
cải thiện về hiệu quả phân loại của luật đó.
• Sắp xếp các luật đã rút gọn theo hiệu quả phân loại, và sử dụng thứ tự này
cho việc phân loại các mẫu trong tương lai.
Ta có ví dụ như sau:
Chuyển thành luật:
1. IF( Outlook=sunny ^ humidity=high) THEN (Play = No )
2. IF(Outlook=sunny ^ humidity=normal ) THEN(Play= Yes)
3. IF( Outlook=overcast ) THEN (Play= Yes)
4. IF(Outlook=rain ^ wind=strong ) THEN(Play= No)
5. IF(Outlook=rain ^ wind=weak ) THEN (Play=Yes)
Xét luật số 1: ta có thể chia ra thêm thành 2 luật mới:
1.IF( Outlook=sunny ^ humidity=high) THEN (Play = No )
2.IF( Outlook=sunny) THEN (Play = No )
3.IF( Humidity=high) THEN (Play = No )
Hệ Hỗ Trợ Ra Quyết Định - 2014 16
Ưu điểm của việc chuyển cây quyết định sang luật:
• Phân biệt giữa những ngữ cảnh khác nhau ở những node của cây quyết định
được dùng.
• Loại bỏ đi điểm khác biệt giữa những thuộc tính kiểm tra xảy ra gần o node
gốc của cây và xảy ra gần node lá của cây.
• Cải thiện tính dễ đọc.
4.3.3. Một vài phương pháp khác:
Complexity Pruning (Weakest link pruning)
Cost Complexity
Pruning xử lý hai giai đoạn. Ở giai đoạn đầu, một chuỗi các cây T0, T1, ,
Tk được xây dựng trên dữ liệu huấn luyện mà T0 là cây ban đầu trước khi
cắt tỉa và Tk là cây cuối. Giai đoạn hai, một trong các cây sẽ được chọn để
cắt tỉa dựa trên sự ước lượng lỗi. Cây Ti+1 được hình thành bằng cách thay
thế một hay nhiều cây con trong cây ban đầu Ti với một lá thích hợp. Để
làm điều này ta tính toán α trên mỗi node, cắt node với α nhỏ nhất.
Pessimistic Pruning
Pessimistic Pruning tránh việc dùng tập cắt tỉa và dùng một sự kiểm tra
thống kê tương quan. Ý tưởng cơ bản đó là tỉ lệ lỗi đã được ước tính trên
tập đào tạo không đủ độ tin cậy. Thay vào đó, một việc thực tế hơn là sự
hiệu chỉnh liên tục đối với việc phân phối nhị thức.
5. Khảo sát vài thuật toán cây quyết định
5.1. Khảo sát vài thuật toán về cây quyết định
5.1.1. Thuật toán ID3
ID3 là thuật toán cơ bản về cây quyết định, sử dung thông tin như là tiêu chuẩn
tách [Quinlan 1986], thuật toán sẽ dừng khi tất cả các thể hiện thuộc về giá trị duy
nhất hoặc thông tin tốt nhất thu được không lớn hơn 0. ID3 không áp dụng bất kỳ
thủ tục cắt tỉa xử lý thuộc tính số hoặc các giá trị bị thiếu
5.1.2. Thuật toán C4.5:
Hệ Hỗ Trợ Ra Quyết Định - 2014 17
C4.5, một sự cải tiến của ID3, trình bày bởi cùng một tác giả [Quinlan (1993), sử
dụng tỷ lệ đạt được như tiêu chí phân chia. Quá trình tách kết thúc khi số lượng
các trường hợp được phân chia dưới một ngưỡng nhất định. Loại bỏ lỗi cơ sở được
thực hiện sau giai đoạn phát triển. C4.5 có thể xử lý các thuộc tính số. Nó cũng có
thể được kết luận từ một tập huấn luyện kết hợp các giá trị bị thiếu bằng cách sử
dụng các tỷ lệ tiêu chuẩn hiệu chỉnh thu được như đã trình bày ở trên.
5.1.3. Thuật toán CART
o CART là viết tắt của cây phân lớp và hồi quy. Nó được phát triển bởi [Breiman
et al. (1984) và có đặc trưng được xây dựng bằng cây nhị phân, cụ thể là mỗi nút
trong có chính xác hai cạnh đi. Chia tách được lựa chọn bằng cách sử dụng các
chuẩn Twoing và thu được cây rút gọn bởi Cost-Complexity Pruning. Khi được
cung cấp, CART có thể xem xét các chi phí phân loại sai trong cây quy nạp. Nó
cũng cho phép người dùng để cung cấp phân phối xác suất trước.
o Một tính năng quan trọng của CART là khả năng của nó để tạo ra các cây hồi
quy. Trong cây hồi quy, ở nút lá đã dự đoán một số thực và không phải là một lớp.
Trong trường hợp của hồi quy, CART giống như chia tách tối thiểu các lỗi dự đoán
bình phương (độ lệch tối tiểu bình phương). Dự báo trong mỗi nút lá được dựa trên
trung bình trên bộ trọng cho nút.
5.1.4. Thuật toán CHAID
• Bắt đầu từ đầu trước những năm bảy mươi, các nhà nghiên cứu thống kê và
ứng dụng phát triển thủ tục để tạo ra cây quyết định, chẳng hạn như: AID
[Sonquist et al. (1971)]; MAID [Gillo (1972)]; THAID [Morgan và
Messenger (1973)]; và CHAID [Kass (1980)].
CHIAD (Chi-squared-Automatic-Interaction- Detection) đã được thiết kế để
xử lý các thuộc tính danh nghĩa chỉ. Đối với mỗi thuộc tính đầu vào ai,
CHAID tìm thấy các cặp giá trị trong Vi đó là ít nhất là khác biệt đáng kể
đối với thuộc tính mục tiêu. Sự khác biệt lớn được đo bằng giá trị p thu
được từ một thử nghiệm thống kê
Hệ Hỗ Trợ Ra Quyết Định - 2014 18
• CHAID xử lý các giá trị bị thiếu bằng cách xem tất cả như là cùng một thể
loại. CHAID không thực hiện cắt tỉa.
5.2. Ví dụ minh họa thuật toán cây quyết định dựa trên thuật toán ID3
Chúng ta hãy xét bài toán phân loại xem ta có đi chơi tennis ứng với thời tiết nào
đó không. Giải thuật ID3 sẽ học cây quyết định từ tập hợp các ví dụ sau:
Ngày
Quang
Nhiệt độ Độ ảm Gió
Chơi
cảnh Tennis
Dl Nắng Nóng Cao Nhẹ Không
D2 Nắng Nóng Cao Mạnh Không
D3 Âm u Nóng Cao Nhẹ Có
D4 Mưa Ấm áp Cao Nhẹ Có
D5 Mưa Mát Trung bình Nhẹ Có
D6 Mưa Mát Trung bình Mạnh Không
D7 Âm u Mát Trung bình Mạnh Có
D8 Nắng Ấm áp Cao Nhẹ Không
D9 Nắng Mát Trung bình Nhẹ Có
Dl0 Mưa Ấm áp Trung bình Nhẹ Có
Dl1 Nắng Ấm áp Trung bình Mạnh Có
Dl2 Âm u Ấm áp Cao Mạnh Có
Dl3 Âm u Nóng Trung bình Nhẹ Có
Dl4 Mưa Ấm áp Cao Mạnh Không
Bảng 6.2.1. Tập dữ liệu ví dụ cho chơi Tennis
• Tập dữ liệu này bao gồm 14 ví dụ. Mỗi ví dụ biểu diễn cho tình trạng thời
tiết gồm các thuộc tính quang cảnh, nhiệt độ, độ ẩm và gió; và đều có một
Hệ Hỗ Trợ Ra Quyết Định - 2014 19
thuộc tính phân loại „chơi Tennis‟(có, không). „Không‟ nghĩa là không đi
chơi tennis ứng với thời tiết đó, „Có‟ nghĩa là chơi tennis ứng với thời tiết
đó. Giá trị phân loại ở đây chỉ có hai loại (có, không), hay còn ta nói phân
loại của tập ví dụ của khái niệm này thành hai lớp (classes). Thuộc tính
„Chơi tennis‟ còn được gọi là thuộc tính đích (target attribute).
• Mỗi thuộc tính đều có một tập các giá trị hữu hạn. Thuộc tính quang cảnh
có ba giá trị: âm u , mưa , nắng; nhiệt độ có ba giá trị: nóng, mát, ấm áp; độ
ẩm có hai giá trị: cao, T và gió có hai giá trị: mạnh, nhẹ. Các giá trị này
chính là ký hiệu (symbol) dùng để biểu diễn bài toán.
• Từ tập dữ liệu rèn luyện này, giải thuật ID3 sẽ học một cây quyết định có
khả năng phân loại đúng đắn các ví dụ trong tập này, đồng thời hy vọng
trong tương lai, nó cũng sẽ phân loại đúng các ví dụ không nằm trong tập
này. Một cây quyết định ví dụ mà giải thuật ID3 có thể quy nạp được là:
Hình 6.2.2. Cây quyết định thuật toán ID3
• Các nút trong cây quyết định biểu diễn cho một sự kiểm tra trên một thuộc tính
nào đó, mỗi giá trị có thể có của thuộc tính đó tương ứng với một nhánh của cây.
Các nút lá thể hiện sự phân loại của các ví dụ thuộc nhánh đó, hay chính là giá trị
của thuộc tính phân loại.
• Sau khi giải thuật đã quy nạp được cây quyết định, thì cây này sẽ được sử dụng để
phân loại tất cả các ví dụ hay thể hiện (instance) trong tương lai. Và cây quyết
Hệ Hỗ Trợ Ra Quyết Định - 2014 20
định sẽ không thay đổi cho đến khi ta cho thực hiện lại giải thuật ID3 trên một tập
dữ liệu rèn luyện khác.
• Ứng với một tập dữ liệu rèn luyện sẽ có nhiều cây quyết định có thể phân loại
đúng tất cả các ví dụ trong tập dữ liệu rèn luyện. Kích cỡ của các cây quyết định
khác nhau tùy thuộc vào thứ tự của các kiểm tra trên thuộc tính.
Ta có: S = [9+, 5-]
Entropy(S) = entropy(9+,5-)
= – p+log2p+ – p-log2p- = – (9/14)log2(9/14) – (5/14)log2(5/14)
= 0.940
Values(Quang cảnh) =Nắng, Âm u, mưa
Snắng = [2+, 3-]
SÂm u = [4+, 0-]
Smưa = [3+, 2-]
Gain(S, Quangcanh) = Entropy(S ) -
= Entropy(S) – (5/14)Entropy(Snắng) – (4/14)Entropy(Sâm u)
(5/14)Entropy(Smưa)
Trong đó:
Entropy(S) = 0.940
Entropy(Snắng) = – (2/5)log2(2/5) – (3/5)log2(3/5) = 0.5288 + 0.4422 = 0.971
Entropy(SÂm u) = – (4/4)log2(4/4) – (0/4)log2(0/4) = 0 + 0 = 0 Entropy(SMưa) =
– (3/5)log2(3/5) – (2/5)log2(2/5)
= 0.4422 + 0.5288 = 0.971 Suy ra:
Gain(S, Quang cảnh) = 0.940 – (5/14)* 0.971 – (4/14)* 0 – (5/14)* 0.971 = 0.246
Values(Nhiệt độ) =Nóng, Ấm áp, mát
SNóng = [2+, 2-]
SẤm áp = [4+, 2-]
SMát = [3+, 1-]
Gain (S, Nhietdo ) = Entropy(S) - -
= Entropy(S) – (4/14)Entropy(SNóng) – (6/14)Entropy(SẤm áp) –
(4/14)Entropy(SMát)
Trong đó:
Entropy(S) = 0.940
Entropy(SNóng) = – (2/4)log2(2/4) – (2/4)log2(2/4)
= 0.5 + 0.5 = 1
Entropy(SẤm áp) = – (4/6)log2(4/6) – (2/6)log2(2/6)
Hệ Hỗ Trợ Ra Quyết Định - 2014 21
= 0.3896 + 0.5282 = 0.9178 Entropy(SMát) = – (3/4)log2(3/4) – (1/4)log2(1/4)
= 0.3112781 + 0.5 = 0.81128
Suy ra:
Gain(S, Temperature) = 0.940 – (4/14)*1 – (6/14)*0.9178 – (4/14)*0.81128 =
0.029
Values(Độ ẩm) = Cao, Trung bình
SCao = [3+, 4-]
STrung bình = [6+,1-]
Gain (S, doam ) = Entropy(S) -
= Entropy(S) – (7/14)Entropy(SCao) – (7/14)Entropy(STrungbinh)
Trong đó:
Entropy(S) = 0.940
Entropy(SCao) = – (3/7)log2(3/7) – (4/7)log2(4/7) = 0.5238 + 0.4613 = 0.9851
Entropy(STrung bình) = – (6/7)log2(6/7) – (1/7)log2(1/7) = 0.1966 + 0.4010 =
0.5976
Suy ra:
Gain(S, Độ ẩm) = 0.940 – (7/14)*0.9851 – (7/14)*0.5976 = 0.151
Values(Gió) =Nhẹ, Mạnh
SNhẹ = [6+, 2-]
SMạnh = [3+, 3-]
Gain (S, doam ) = Entropy(S) -
= Entropy(S) – (8/14)Entropy(SNhe) – (6/14)Entropy(SManh)
Trong đó:
Entropy(S) = 0.940
Entropy(SNhẹ) = – (6/8)log2(6/8) – (2/8)log2(2/8) = 0.3112 + 0.5 = 0.8112
Entropy(SMạnh) = – (3/6)log2(3/6) – (3/6)log2(3/6) = 0.5 + 0.5 = 1
Suy ra:
Gain(S, Gió) = 0.940 – (8/14)*0.811 – (6/14)*1 = 0.048
Ta thu được kết quả:
Gain(S, Quang cảnh) = 0.246
Gain(S, Nhiệt độ) = 0.029
Gain(S, Độ ẩm) = 0.151
Hệ Hỗ Trợ Ra Quyết Định - 2014 22
Gain(S, Gió) = 0.048
Ta thấy giá trị Gain(S, Quang cảnh) lớn nhất nên Quang cảnh được chọn làm
nút gốc.
Sau khi lập được cấp đầu tiên của cây quyết định ta lại xét nhánh
Nắng Tiếp tục lấy Entropy và Gain cho nhánh Nắng ta được hiệu
suất như sau:
Gain(S
Nắng
, Độ ẩm) = 0.970
Gain(S
Nắng
, Nhiệt độ) = 0.570
Gain(S
Nắng
, Gió) = 0.019
o Như vậy thuộc tính độ ẩm có hiệu suất phân loại cao nhất trong nhánh Nắng ->
ta chọn thuộc tính Độ ẩm làm nút kế tiếp ….
o Tương tự như vậy đối với nhánh còn lại của cây quyết định ta được cây quyết
định hoàn chỉnh như sau
Hệ Hỗ Trợ Ra Quyết Định - 2014 23
Với việc tính toán giá trị Gain để lựa chọn thuộc tính tối ưu cho việc triển khai cây,
thuật toán ID3 được xem là một cải tiến của thuật toán CLS. Tuy nhiên thuật toán ID3
không có khả năng xử lý đối với những dữ liệu có chứa thuộc tính số - thuộc tính liên
tục (numeric attribute) và khó khăn trong việc xử lý các dữ liệu thiếu (missing data)và
dữ liệu nhiễu (noisy data). Vấn đề này sẽ được giải quyết trong thuật toán C4.5 sau
đây.
Hệ Hỗ Trợ Ra Quyết Định - 2014 24
DEMO
1. Yêu cầu phần cứng và dữ liệu mẫu:
Chương trình được viết bằng ngôn ngữ Visual C#. Yêu cầu phần cứng để chạy
được chương trình:
Máy cài hệ điều hành window.
.Net Framework 3.5 trở lên.
Dữ liệu thử nghiệm mà nhóm chuẩn bị sẵn gồm có 5 tập tin (số ở đầu tên tập tin ký
hiệu các bộ train và test cùng nhau). Hai tập tin dùng cho quá trình đào tạo (có tiếp
đầu ngữ là trainning_) gồm:
02_training_210_rows_en.xlsx
03_training_32_rows_vi.xlsx
Ba tập tin dùng thử nghiệm quá trình phân lớp (sau khi đã có cây và rút trích luật,
có tiếp đầu ngữ data_) gồm:
02_data_210_rows_en.xlsx
02_data_1050_rows_en.xlsx
Hệ Hỗ Trợ Ra Quyết Định - 2014 25