Thuật toán C4.5 và Naive Bayes

Một phần của tài liệu Dự đoán khả năng gửi tiền của khách hàng cá nhân qua telemarketing tại NH với thuật toán phân lớp naive bayes và c4 5 072 (Trang 40)

CHƯƠNG II: XÂY DỰNG THUẬT TOÁN PHÂN LỚP C4 .5 VÀ NAIVE BAYES

2.3. Thuật toán C4.5 và Naive Bayes

2.3.1. Thuật toán C4.5

2.3.1.1. Lý thuyết về C4.5

Thuật toán C4.5 là một thành tựu của thuật toán học máy được ra đời vào nửa cuối thập kỷ 50 và đầu những năm 60 do Hunt (1962) và các cộng sự của ông nghiên cứu. C4.5 là một cải tiến của ID3 do Quinlan (1979). Thuật toán này thực hiện theo lược đồ của ID3 nhưng có cải tiến như:

- Ngồi việc áp dụng tiêu chuẩn Thu hoạch thơng tin cực đại, C4.5 còn đề xuất sử dụng tiêu chuẩn Tỷ lệ thu hoạch thông tin cực đại (Gainratio) để dùng cho các trường hợp mà tiêu chuẩn trước áp dụng không tốt.

- Áp dụng kỹ thuật chặn sớm sự phát triển của cây dựa trên thống kê tránh phù hợp trội và cây không quá lớn.

- Đề xuất giải pháp xử lý trường hợp mẫu có thuộc tính thiếu giá trị. - Đề xuất phương pháp áp dụng cho thuộc tính nhận giá trị liên tục.

Giả sử DL có thuộc tính A có giá trị liên tục, trong tập mẫu quan sát ddowwjc, các mẫu

nhận giá trị khi được sắp xếp thứ tự tang dần là aɪ, ÍÌ2.. .ii∣1∣. Thuật toán C4.5 chia xử lý

trường hợp này như sau: Đối với mỗi giá trị ai, chia tập mẫu thành hai lớp để tính thu hoạch

thơng tin: lớp thứ nhất gồm tập mẫu có giá trị thuộc tính A ≤ ai, và lớp thứ hai là các mẫu

Khóa luận tốt nghiệp

cịn lại. Thu hoạch thơng tin/Tỷ lệ thu hoạch thơng tin của các thuộc tính sẽ là cực đại của các đại lượng tính được tính theo các cách chia và ak tương ứng với nó sẽ được chọn làm điểm cho rẽ nhánh cho thuộc tính này. Neu thuộc tính liên tục này được chọn làm thuộc tính tốt nhất (theo tiêu chuẩn đang xét) thì tại nút tương ứng có thể gán nhãn là điểu kiện kiểm tra (x > ak).

Tới năm 1993, C4.5 đã được phát triển với 9000 dòng lệnh C chứa trong một đĩa mềm.

Theo Wikipedia “Vào năm 2011, các tác giả của phần mềm học máy Weka mô tả thuật tốn C4.5 là một chương trình cây quyết định mang tính bước ngoặt có lẽ là phương pháp học máy được sử dụng rộng rãi nhất trong thực tế cho đến nay. Nó trở nên khá phổ biến sau khi xếp hạng 1 trong iiTop 10 Algorithms in Data Mining” do Springer LNCS xuất

bản năm 2008”.

Dựa trên những đặc điểm của mình, C4.5 là thuật tốn phân lớp DL được sử dụng rộng

rãi trong ứng dụng KPDL, dựa trên cây quyết định, thích hợp với những CSDL có kích thước nhỏ.

Đa số các hệ thống học máy đề mong muốn có thể tạo ra cây quyết định nhỏ, vì những

cây nhỏ hơn thì dễ hiểu dễ nắm bắt và dễ đạt được độ chính xác dự đốn cao hơn những cây phức tạp.

a. Thuật tốn C4.5

Function Xay dung cay (T) {

1. <Tính tốn tần xuất các giá trị trong lớp của T> ;

2. If <Kiểm tra các mẫu, nếu thuộc cùng một lớp hoặc có rất ít mẫu khác lớp> Then

<Trả về một nút lá> Else <Tạo một nút quyết định N> ; 3 For <Với mỗi thuộc tính A> Do <Tính giá trị Gain(A)> ;

4 <Tại nút N, thực hiện việc kiểm tra chọn ra thuộc tính Gain có giá trị tốt nhất (lớn nhất). Gọi N.test là thuộc tính có Gain lớn nhất> ;

5. If <N.test là thuộc tính liên tục> Then <Tìm ngưỡng cho phép tách của N.test> ;

6 For <Với mỗi tập con T’ được tách ra từ tập T> Do (T’ được tách ra theo quy tắc:

-Nếu N.test là thuộc tính phân loại rời rạc theo các giá trị của thuộc tính này) 7 If <Kiểm tra nếu T’ rỗng> Then <Gán nút con này của nút N là nút lá> 8 Else <Gán nút con này là nút được trả về bằng cách gọi đệ quy đối với hàm

Xay dung cay (T’) với tập T’> ;

9 <Tính tốn lại các lỗi của nút N> ; <Trả về nút N> }

Độ lợi thông tin (Information Gain) là độ đo lượng thông tin kỳ vọng để phân lớp một phần tử trong tập dữ liệu D được đo bằng công thức sau [7]:

m

Info(D) = -∑ P log 2(pi)

Trong đó Pi là xác suất một phần tử dữ liệu trong D thuộc vào lớp Ci và nó được ước lượng bằng cơng thức Pi = -Di~ với Di là tập các phần tử dữ liệu trong D và thuộc vào lớp Ci, m là số lượng các lớp trong D. Hàm Info(D) còn được gọi là Entropy của D [7],

InfoA(D) là lượng thông tin kỳ vọng để phân lớp một phần tử dữ liệu trong D dựa trên

việc chia dữ liệu bằng thuộc tính A [7]. Thuộc tính A dùng để chia tập dữ liệu D thành V tập con {D1, D2, ..., Dv}. Mỗi phân hoạch Dj gồm |Dj| phần tử trong D. Lượng thông tin này sẽ cho biết mức độ trùng lặp giữa các phân hoạch.

x∏∣Dj∣

InfoA(D)= lɪ × Info(Dj)

í=1 1 D 1

Giá trị Gain(A) = Info(D) - InfoA(D) cho chúng ta biết ta lợi được bao nhiêu nếu chia

dữ liệu theo thuộc tính A. Thuộc tính được chọn là thuộc tính có Gain đạt giá trị lớn nhất [7].

Độ đo được sử dụng trong C4.5 là GainRatio. Độ lợi thông tin (information gain) hoạt động khơng tốt trong trường hợp một thuộc tính có nhiều giá trị. Ví dụ, thuộc tính số hiệu lệnh (od_autuid-được sử dụng trong đặt lệnh chứng khốn) sẽ có rất nhiều giá trị. Đặc biệt,

khi chia dữ liệu theo thuộc tính này thì mỗi một tập con dữ liệu sẽ chỉ có tương ứng một bản ghi, do đó các tập con này hồn tồn đồng nhất. Hay nói cách khác, lượng thơng tin cần để phân lớp tập dữ liệu D dựa trên cách phân chia dữ liệu trên thuộc tính này

Infoodautuid

(D)=0. Và giá trị độ lợi thông tin sẽ đạt giá trị tối đa Gain (od autuid) = Info(D) -

STT TUOI TT

HONNHAN HOC VAN SO DU NHA NO TG LLC SLLH NGAY LLGD

KQCD

TRUOC QUYET DINH

1 <=35 KET HON THCS CAO KHONG KHONG IT IT GAN KHONG RO KHONG

2 <=35 DOC THAN DAI HOC TRUNG

BINH CO KHONG IT IT XA THAT BAI KHONG

3 >=50 KET HON THCS CAO KHONG CO IT NHIEU GAN KHONG RO KHONG

Khóa luận tốt nghiệp________________________________________________________ Vì vậy, thuật tốn C4.5 đã cải tiến hơn thuật toán ID3 bằng cách đề xuất sử dụng một độ đo mới là tỉ số độ lợi (gain ratio) để khắc phục nhược điểm trên. Hàm này sử dụng một phương pháp chuẩn hóa độ lợi thơng tin bằng cách sử dụng giá trị phân chia thông tin (split

information) được định nghĩa tương tự như hàm Info (D):

SplitInfθA(D )= - ∑y-1 l^y x log2 (l77)

i-,j-1 |D| |D|

Giá trị này biểu diễn thông tin tiềm năng được sinh ra thông qua việc chia tập DL huấn

luyện D thành v tập con tương ứng với các giá trị của thuộc tính A. Chú ý rằng với mỗi giá trị của thuộc tính j, nó tính tốn số lượng các phần tử có giá trị thuộc tính A là j trên tổng

số lượng phần tử của D. Đây là điểm khác so với độ lợi thơng tin, do đó cơng thức tính tỉ số độ lợi sẽ là:

Galn(A)

GainRatio (A) = 77-7-7-7—77

SplitInfo(A)

Trong đó, hàm SplitInfoA (D) được viết ngắn gọn lại thành SpitInfo (A). Dựa trên độ

đo

này, các thuộc tính có giá trị tỉ số độ lợi cao sẽ được chọn làm thuộc tính phân chia DL. Cần chú ý rằng, nếu hàm SpitInfo (A) = 0 thì cơng thức trên khơng dùng được, do đó có thêm ràng buộc để tránh trường hợp này. Cụ thể giá trị độ lợi thơng tin của thuộc tính được

chọn phải đủ lớn, ít nhất là lớn hơn giá trị trung bình độ lợi thơng tin của tất cả các thuộc tính. [7]

b. C4.5 tránh “quá phù hợp”/ Overfitting dữ liệu

Một trong những khó khăn khi thực hiện học bằng cây quyết định là DL quá phù hợp. “Quá vừa”/ quá phù hợp DL là hiện tượng KPDL xảy ra tình trạng quá phù hợp với kết quả

đã biết. Khi đó, kết quả của mơ hình có thể sẽ phù hợp với tập DL huấn luyện nhưng lại không thực sự đưa ra được tri thức tốt ứng với tập DL kiểm tra. Nếu để xảy ra tình trạng overfitting thì mơ hình sẽ hoạt động kém hiệu quả. Đơi khi DL huấn luyện 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 DL khác thì độ chính xác

khơng cịn cao như trước. Để khắc phục tình trạng này thường phải thực hiện kiểm tra chéo

để đánh giá mơ hình hoặc sử dụng các biện pháp thống kê cổ điển. Thuật toán C4.5 sử dụng kỹ thuật cho phép cây có thể overfitting DL sau đó sẽ cắt tỉa cây để tránh quá phù hợp DL.

Khóa luận tốt nghiệp

2.3.1.2. Ví dụ thuật tốn C4.5

6 <=35 DOC THAN THCS THAP CO CO IT IT GAN KHONG RO KHONG

7 >=50 KET HON KHONG RO CAO CO KHONG IT IT GAN THANH CONG CO

8 36-49 LY DI THCS TRUNG

BINH KHONG KHONG NHIEU TRUNG BINH GAN KHONG RO CO

9 36-49 DOC THAN THPT THAP CO KHONG NHIEU IT GAN KHONG RO KHONG

10 <=

35 KET HON DAI HOC CAO CO KHONG TRUNG BINH IT GAN KHAC CO

11 >=50 KET HON THPT CAO CO KHONG IT TRUNG BINH GAN KHONG RO KHONG

12 36-49 LY DI DAI HOC THAP CO KHONG TRUNG BINH IT GAN KHONG RO KHONG

13 36-49 KET HON THPT THAP CO KHONG IT IT TRUNG BINH THAT BAI KHONG

14 >=50 KET HON THPT TRUNG

BINH KHONG KHONG TRUNG BINH IT XA THAT BAI CO

Thuộc tính(A) InfOA (D) Gain A SpilitInfo (A) GainRatio (A) TT HON NHAN 0.693 0.225 1.457 0.154 HOC VAN 0,800 0.180 1.876 0.063 SO DU 0.667 0.251 1.566 0.160

Chúng ta xây dựng cây quyết định với dữ liệu mẫu trên như sau: Trước tiên nút lá được khởi tạo gồm các mẫu từ 1 tới 15

Đầu tiên chúng ta tính Entropy cho tồn bộ tập huấn luyện D gồm: 5 bộ {5, 7, 8, 10, 14} có giá trị thuộc tính nhãn là “CO” và 10 bộ {1, 2, 3, 4, 6, 9, 11, 12, 13, 15} có giá trị thuộc tính nhãn là “KHONG”. Do đó

-51 5 10, 10

Entropy (D) = Info(D) = 77log277 -2E log^7 = 0, 918

pp no ' 15 2 15 15 2 15 ,

Tính IG cho từng thuộc tính:

Thuộc tính “TUOI” có 3 giá trị là “ ≤ 35”, “ ≥ 50” và “36-49”. Căn cứ vào bảng dữ liệu ta thấy:

• Với giá trị “ ≤ 35” có 5 bộ {1, 2, 4, 6, 15} có giá trị thuộc tính nhãn là “KHONG” và 1 bộ {10} có giá trị thuộc tính nhãn là “CO”.

• Với giá trị “ ≥ 50” có 2 bộ {3, 11} có giá trị thuộc tính nhãn là “KHONG” và 3 bộ {5, 7,

14} có giá trị thuộc tính nhãn là “CO”.

• Với giá trị “36-49” có 3 bộ {9, 12, 13} có giá trị thuộc tính nhãn là “KHONG” và 1 bộ {8} có giá trị thuộc tính nhãn là “CO”.

3 IDJ

l≠> InfoTUOI(D) = /•Info(DJ)

6.-1. 5u, 3_3.„„ E-1.„„

= — (~rlog2 - --log2 -)+—(—log, ---log2 -)+—(—log, ---log2 -)

1 ⅛ v /2 ζ~}2 £ S' c72^7 t "λ2 C Cc72^7 t "λ2 A A c72 /I 2 15 6 66 6 15 15 55 5 15 4 44 4 = 0∙8

■=> Gain (TUOI) = Info(D) - Info TUOi(D) = 0∙918 - 0∙8 = 0∙118

Tiếp theo, tính giá trị GainRatio cho từng thuộc tính

_ „ ,∙.τ r ST.' - DL Có: SplitInfo A (D) = -∑r⅛og2∏^ j=1 IDI IDI '> SplitInfo

TUOI(D) = -Ệ- log2 77 - ɪ log2 ɪ -~∑ log2 ʌ = 1.566

15 2 15 15 2 15 15 215

ʌ r.„i„tD„iM/Tỉĩrm - Gain(TUOI) _ 0∙118 _

Dr GaintRaito(TUOI) = ——ʌ-= _ = 0∙075

Nguyễn Thị Hương - 19A4040076 Page | 29

NHA 0.859 0.059 0.971 0.061 NO 0.784 0.134 0.722 0.186 TG LLC 0.669 0.249 1.371 0.182 SLLH 0.868 0.050 0.906 0.055 NGAY LLGD 0.781 0.137 1.242 0.110 KQCD TRUOC 0.673 0.245 1.533 0.160

Từ giá trị GainRatio của các thuộc tính, ta thấy thuộc tính “NO” có GainRaito = 0.186

là lớn nhất nên sẽ được chọn là thuộc tính phân chia. Ta chọn “NO” làm nút gốc, hai nhánh

được tạo ra lần lượt với tên là “CO” và “KHONG”. Hơn nữa nhánh “CO” có các mẫu {3, 6, 15} cũng thuộc lớp “KHONG” nên nút lá được tạo ra với nhãn là “KHONG”. Chúng ta có kết quả phân chia cây quyết định như sau:

Hình 12. Cây quyết định cho sau khi chọn thuộc tính NO

Thuộc tính(A) Info (D1) GainA SpilitInfo(A) GainRatio(A)

TT HON NHAN 0.730 0.250 1.500 0.167

Khóa luận tốt nghiệp________________________________________________________

Bước tiếp theo gọi thuật tốn C4.5 (D1, C-{NO}, {d})

Tương tự, để tìm điểm chia tốt nhất tại thuật tốn này, ta phải tính tốn chỉ số GainRaito

cho 9 thuộc tính cịn lại (trừ thuộc tính NO).

Đầu tiên, chúng ta tính Entropy tồn bộ tập huấn luyện D1 gồm 7 bộ {1, 2, 4, 9, 11, 12,

13} có giá trị thuộc tính nhãn là “KHONG” và 5 bộ {5, 7, 8, 10, 14} có giá trị thuộc tính nhãn là “CO”. Do đó:

-71. 7 5

Entropy (D1) = Info(D1) = — log; —-J-l∙ ' 1 j ỵ 1 12 2 12 l°g2-⅛ = 0.98012 2 12

Tính IG cho thuộc tính:

Thuộc tính “TUOI” có 3 giá trị là “ ≥ 50”; “ < 35” và “36-49”. Nhìn vào bảng dữ liệu ta thấy:

• Với giá trị “ < 35” có 3 bộ {1, 2, 4} có giá trị thuộc tính nhãn là “KHONG” và 1 bộ {10} có giá trị thuộc tính nhãn là “CO”.

• Với giá trị “ ≥ 50” có 1 bộ {11} có giá trị thuộc tính nhãn là “KHONG” và 3 bộ {5, 7, 14} có giá trị thuộc tính nhãn là “CO”.

• Với giá trị “36-49” có 3 bộ {9, 12, 13} có giá trị thuộc tính nhãn là “KHONG” và 1 bộ {8} có giá trị thuộc tính nhãn là “CO”.

3 IDJ

D Infoτuoι(D) = X^∣yj∣^.Info(Dl)

4 z-1. 1 3. 3 4 -3, 3 1. T 4 -1, 1 3. 3

l,A1 ɪ -zl -Z \ . 1 Z -Z 1 -Z ɪ 1 ɪ \ 1 Z ɪ 1 ɪ -Z 1

-Z \ z"\ 1 1

= ⅛(-2log24 . log24) + ττH-lθgDτ . log2τ)+ ⅛(--log2-- . log2H = 0.811

12 4 44 4 12 4 44 4 12 4 44 4

c> Gain (TUOI)= Info(D1) - Info τuoι(D1) = 0.980 - 0.811 = 0.169

Tính giá trị Gain Raito cho từng thuộc tính

, o j.,τ „ V DJ IDJ

Có: SplitInfo

A(D) = -£ Cj. logΛj

j=1 IDI IDI

4 4 4 4 4 4

φ SvlitInfθ^r^r(D)= -~logo —-— logo TT-— logo TT = 1585

no .

Khóa luận tốt nghiệp

NHA 0.908 0.072 0.980 0.073

TG LLC 0.784 0.196 1.500 0.131

SLLH 0.976 0.004 0.650 0.006

NGAY LLGD 0.833 0.147 1.252 0.117

Bảng 3. Bảng tính GainRatio của các 8 thuộc tính

|=> Nhìn vào bảng, ta thấy thuộc tính “TT HON NHAN” là thuộc tính có GainRaito =

0.167 là lớn nhất nên sẽ được chọn là thuộc tính phân chia. Do đó, thuộc tính “TT HON NHAN” được chọn làm nhãn cho nút bên phải nối với nhãn “KHONG”. Trong D1, thuộc tính này có 3 giá trị là “KET HON”, “DỌC THAN” và “LY DI” nên tạo thành 3 nhãn mới là KET HON, DOC THAN và LY DI.

• Với nhánh KET HON gồm 3 mẫu {1, 11, 13} có giá trị thuộc tính nhãn là “KHONG” và 3 mẫu {7, 10, 14} có giá trị thuộc tính nhãn là “CO”.

• Với nhánh DOC THAN gồm 3 mẫu {2, 4, 9} có giá trị thuộc tính nhãn là “KHONG” nên tạo thành nút lá với nhãn là “KHONG”

• Với nhánh LY DI gồm 2 mẫu {5, 8} có giá trị thuộc tính nhãn là “CO” và 1 mẫu {12} có giá trị là “KHONG”

Chúng ta xây dựng được cây quyết định mới như sau:

Hình 13. Cây quyết định sau khi chọn thuộc tính HON NHAN

Thuật tốn C4.5 với tập C4.5 (D3, C-{HONNHAN}, {d})

Với tập D3 gồm 3 bộ {5, 8, 12} thì 2 bộ {5, 8} có giá trị thuộc tính nhãn là “CO” và 1 bộ {12} có giá trị thuộc tính nhãn là “KHONG” nên ta quyết định chọn giá trị “CO” là nhãn của nhánh “LY DI”. Ta có cây quyết định mới như sau:

Tương tự với 7 thuộc tính cịn lại chúng ta thu được bảng sau:

Thuộc tính(A) InfoA(D2) GainA SpilitInfo(A) GainRatio(A)

HOC VAN 0.459 0.541 1.792 0.302 SO DU 0.667 0.333 1.252 0.266 NHA 1 0 0.918 0 TG LLC 0.541 0.459 0.918 0.500 SLLH 0.809 0.191 0.650 0.294 NGAY LLGD 0.667 0.333 1.252 0.266 KQCD TRUOC 0.333 0.667 1.918 0.348

Khóa luận tốt nghiệp

Hình 14. Cây quyết định sau khi thực hiện nhánh LY DI

Một phần của tài liệu Dự đoán khả năng gửi tiền của khách hàng cá nhân qua telemarketing tại NH với thuật toán phân lớp naive bayes và c4 5 072 (Trang 40)

Tải bản đầy đủ (DOCX)

(92 trang)
w