LỜI GIỚI THIỆUCâ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 supervisedlearning như: dựa trên luật rule-based, mạng Bayes nạve Bayes, mạng nơron, SVM,… Ứng dụng
Trang 1ĐẠ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
TPHCM – 06/2014
Trang 2Nội dung
LỜI GIỚI THIỆU 3
1 Giới thiệu về cây quyết định: 4
2 Phát triển một cây quyết định 6
2.1 Tập huấn luyện 6
2.2 Bài toán phân lớp: 6
2.3 Xây dựng cây quyết định: 7
2.4 Điều kiện dừng: 7
3 Đánh giá cây phân lớp: 7
3.1 Giới thiệu: 7
3.2 Các phương pháp đánh giá mô hình phân lớp: 8
3.2.1 Một số khái niệm: 9
3.2.2 Một số độ đo: 9
3.2.3 Ví dụ minh họa: 10
3.3 Độ phức tạp tính toán 12
3.4 Tính dễ hiểu: 12
3.5 Khả dụng với các nguồn dữ liệu đồ sộ: 12
3.6 Tính mạnh của hệ thống: 13
3.7 Tính ổn định: 13
4 Cắt tỉa cây: 13
4.1 Quá khớp dữ liệu 13
4.2 Phương pháp tránh quá khớp dữ liệu: 14
4.3 Các thuật toán cắt tỉa cây: 14
4.3.1 Cắt tỉa để giảm lỗi (Reduced error pruning) 14
4.3.2 Cắt tỉa theo luật (Rule Post-Pruning) 16
4.3.3 Một vài phương pháp khác: 17
5 Khảo sát vài thuật toán cây quyết định 17
5.1 Khảo sát vài thuật toán về cây quyết định 17
5.1.1 Thuật toán ID3 17
5.1.2 Thuật toán C4.5: 18
5.1.3 Thuật toán CART 18
5.1.4 Thuật toán CHAID 18
Trang 35.2 Ví dụ minh họa thuật toán cây quyết định dựa trên thuật toán ID3 19
DEMO 26
1 Yêu cầu phần cứng và dữ liệu mẫu: 26
2 Giới thiệu chương trình: 27
3 Các bước lần lượt để sử dụng chương trình: 27
LỜI CẢM ƠN 29
TÀI LIỆU THAM KHẢO 29
Trang 4LỜ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 (supervisedlearning) như: dựa trên luật (rule-based), mạng Bayes (nạ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ự đố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 khố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àothà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àmkiể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
Trang 5Mỗ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ạngcâ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 (namhay 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:
Trang 6Câ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ụngrộ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ó
Trang 7- 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ẫntớ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ó (chotậ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
để 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
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)
Trang 82.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 đó
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útgố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ấythoả đ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ủanhã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ànhtheo đ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 (đã đượcchia) 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 connà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
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:
Trang 9- 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:
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
Đá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ợptrong 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
Ướ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
Trang 10Trong 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êntậ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ạidương
- Số sai âm (FN - False negative): số phần tử dương được phân loại âm
Trang 11- 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)
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 độ đotrê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:
Trang 133.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
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ộ:
Trang 14Ngà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
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
Trang 154.2 Phương pháp tránh quá khớp dữ liệu:
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
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ấuchố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: