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 tốn, thuật tốn ID3, C4.5, và một số vấn đề mở rộng của cây quyết định.. Cây q
Trang 1ĐẠ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
Trang 2Thạc sỹ CNTT qua mạng khố 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 tốn phân lớp và dự đố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 tốn, thuật tố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 tố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 đố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 (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)
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ự đốn) dựa trên các thuộc tính quan
sát Ví dụ như trong bài tố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,…
Trang 3Thành phần chính của cây quyết định:
Nút lá Ck: nhãn của lớp thứ k (thuộc tính quyết định C)
Nút gốc, nút trong Ai : thuộc tính Ai (thuộc tính điều kiện)
Nhánh Vij: trường hợp thứ j (giá trị, khoảng giá trị) của Ai 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 Ai vàocá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? chomỗ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ắpxế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 độ đogiú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ầntiếp theo
Dựa vào loại nhãn của thuộc tính quyết định Ck 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 Ck 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 Ck 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ộctính cho việc xây dựng cây ở mỗi bước
2 Các độ đo
An
Ak Am
Trang 4Như 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 (splittingattribute) 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ảiquyết vấn đề này.
Độ đ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àmthuộ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ữacá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ânloạ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 độ đokhá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 (InformationTheory) 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 Haynó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 đó: pi là xác suất để 1 phần tử bất kỳ trong S thuộc về lớp Ci (i = 1 m) Với Ci là giá trị của thuộc tính quyết định
Trang 5Ví 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 C1: Yes và C2: No Áp dụng công thức tính được entropy của S như sau:
Trang 6Entropy(S)= −9 /14 log2〖 9/14 〗−5 /14 log2〖5 /14 〗
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 Trongtrường hợp S có 2 lớp công thức tính entropy (S) :
Nếu (p1 = 0 hay p2 =0) entropy = 0: S đồng nhất (mọi phần tử đều thuộc 1 lớp)
Nếu p1 = p2 = 1/2 entropy = 1: số phần tử thuộc C1 và C2 bằng nhau
Nếu pi (0,1) entropy (0,1): số phần tử thuộc C1 và C2 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 Ci, 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?
Trang 7Phâ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 Aj tạo ra (Entropy (SA ))đượ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,Aj) 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:
Trang 8Theo công thức tính Gain (S, Outlook):
Trang 9phâ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
Trang 10Độ đ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 Aj nào có GainRatio(S, Aj) 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)
Trang 11Thuậ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ớinhữ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âyquyế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ộtdanh 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éplà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ữngcâ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:
Trang 12= 0.029Suy 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)
Trang 13Kế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
Trang 14InfoGainS, O 0.246
GainRatio S, O 0.246 / 1.58 0.156Tương tự ta có:
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 đó độ đoinformation gain của Outlook sẽ giảm vì chúng ta không học được gì từ các mẫu trong So
Trang 15Tươ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ữngphươ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ớinhững luật đã có