Thuộc tính liên tục

Một phần của tài liệu Tiểu luận khai phá dữ liệu GOM CỤM DỮ LIỆU VÀ CÔNG CỤ WEKA (Trang 27)

Thuật toán ID3 bị giới hạn bởi việc liên quan đến tập những giá trị rời rạc. Trong thuật toán C4.5 chúng ta sẽ mở rộng phạm vi hoạt của nó cho những thuộc tính có giá trị liên tục (giá trị số) để phù hợp với thế giới thực.

Bảng 2-3: Tập dữ liệu có giá trị liên tục

Quang cảnh Nhiệt độ Độ ẩm Gió Chơi tennis

Nắng Nóng 85 Nhẹ Không

Nắng Nóng 90 Mạnh Không

Âm u Nóng 78 Nhẹ Có

Mưa Ấm áp 96 Nhẹ Có

Mưa Mát 80 Nhẹ Có

Mưa Mát 70 Mạnh Không

Âm u Mát 65 Mạnh Có Nắng Ấm áp 95 Nhẹ Không Nắng Mát 70 Nhẹ Có Mưa Ấm áp 80 Nhẹ Có Nắng Ấm áp 70 Mạnh Có Âm u Ấm áp 90 Mạnh Có Âm u Nóng 75 Nhẹ Có

Mưa Ấm áp 80 Mạnh Không

Thuật toán C4.5 đưa ra định nghĩa những giá trị rời rạc mới để phân những giá trị liên tục thành những thuộc tính tượng trưng một lần nữa theo các quy tắc sau:

• Dựa trên một giá trị nếu muốn phân chia nhị phân. • Dựa trên vài giá trị nếu muốn có nhiều nhánh.

• Với mỗi giá trị tính các mẫu thuộc một lớp theo dạng A < v và A > v. • Cách chọn giá trị v hiệu quả:

o Chọn giá trị trung bình của từng cặp giá trị của thuộc tính để phân chia và tính chỉ số gia lượng thông tin.

o Chọn giá trị phân chia có chỉ số gia lượng thông tin cao nhất

Ví dụ: từ Bảng 2-3 ta tính gia lượng thông tin Gain(Sđộ ẩm, độ ẩm=67.5) như sau : Entropy(S) = - (9/14)log2(9/14) – (5/14)log2(5/14) = 0.940

EntropyĐộ ẩm =67.5(SĐộ ẩm) = (1/14)×Entropy(SĐộ ẩm≤67.5) + (13/14)×Entropy(SĐộ ẩm>67.5) = (1/14)(0) + (13/14)(-8/13)log2(8/13) – 5/13log2(5/13)) = 0.893

Gain(SĐộ ẩm, Độ ẩm=67.5) = 0.940 – 0.893 = 0.047  Tính tương tự cho các giá trị còn lại ta có bảng sau:

Độ ẩm 65 70 75 78 80 85 90 95 96 67.5 72.5 76.5 79 82.5 87.5 92.5 95.5 ≤ > ≤ > ≤ > ≤ > ≤ > ≤ > ≤ > ≤ > 1 8 3 6 4 5 5 4 7 2 3 2 8 1 8 1 Không 0 5 1 4 1 4 1 4 2 3 7 2 4 1 5 0 Gain 0.047 0.646 0.045 0.090 0.102 0.025 0.010 0.047

Như vậy ta có giá trị để phân chia là 72.5

2.4.3.2. Thuộc tính nhiều giá trị

Thuật toán ID3 bị giới hạn bởi việc liên quan đến những thuộc tính có nhiều giá trị, mà các giá trị này lại duy nhất. Khi đó, việc chia một tập dữ liệu thành thành quá nhiều các tập con dẫn đến số lượng các lớp tại mỗi nút giảm và do đó Entropy trên thuộc tính đó cũng giảm theo, nên gia lượng thông tin (Gain) sẽ cao hơn các thuộc tính khác. Vì vậy thuộc tính này sẽ được lựa chọn thường xuyên để tách, dẫn đến độ phân nhánh lớn, cây sẽ rất lớn và phức tạp.

Ví dụ : ta thêm thuộc tính “Ngày” vào Bảng 2-3 thì ta có:

Bảng 2-4: Bảng dữ liệu thời tiết về chơi tennis

Ngày Quang cảnh Nhiệt độ Độ ẩm Gió Chơi tennis

D1 Nắng Nóng 85 Nhẹ Không

D2 Nắng Nóng 90 Mạnh Không

D3 Âm u Nóng 78 Nhẹ Có

D4 Mưa Ấm áp 96 Nhẹ Có

D5 Mưa Mát 80 Nhẹ Có

D6 Mưa Mát 70 Mạnh Không

D7 Âm u Mát 65 Mạnh Có

D8 Nắng Ấm áp 95 Nhẹ Không

D10 Mưa Ấm áp 80 Nhẹ Có

D11 Nắng Ấm áp 70 Mạnh Có

D12 Âm u Ấm áp 90 Mạnh Có

D13 Âm u Nóng 75 Nhẹ Có

D14 Mưa Ấm áp 80 Mạnh Không

EntropyNgày(S) = × 14 1 Entropy(SD1) + × 14 1 Entropy(SD2) + … + × 14 1 Entropy(SD14) Entropy(SD1) = Entropy(SD2) = … = Entropy(SD14) = 0 → EntropyNgày(S) = 0 Gain(S, Ngày) = Entropy(S) - EntropyNgày(S) = 0.940

Lúc này, thuộc tính ngày có độ đo gia lượng thông tin cao nhất so với các thuộc tính khác trong tập dữ liệu. Nó sẽ được chọn làm thuộc tính phân tách.

Kết quả phép tách trên thuộc tính “Ngày”

 Điều gì sai với thuộc tính “Ngày” ?

Thuộc tính “Ngày” có nhiều nhất những giá trị trong việc phân chia tập dữ liệu huấn luyện thành những tập nhỏ. Cũng chính vì điều này nó sẽ có thu thập thông tin rất cao liên quan đến tập dữ liệu huấn luyện. Tuy nhiên nó lại là một công cụ tiên đoán tồi của hàm mục tiêu.

 Giải quyết vấn đề này như thế nào ?

Lựa chọn thuộc tính để phân tách theo nguyên tắc:

• Thuộc tính có tỉ lệ gia lượng thông tin (RatioGain) cao.

• Entropy của thuộc tính lớn hơn Entropy trung bình của tất cả các thuộc tính.

2.4.3.3. Thuộc tính thiếu giá trị

• Nếu giá trị của thuộc tính A bị mất trên một số bộ dữ liệu, hướng giải quyết sẽ thế nào ?. Giả sử rằng (x, C(x)) là một trong những tập huấn luyện trong S và giá trị A(x) là không được biết đến.

Ví dụ : Sử dụng Bảng 2-3 và thêm mẫu dữ liệu mới

Quang cảnh Nhiệt độ Độ ẩm Gió Chơi tennis

Nắng Nóng 85 Nhẹ Không

Nắng Nóng 90 Mạnh Không

… … … … …

Mưa Mát 70 ??? Không

TH1 : nếu Gió: [9 nhẹ, 5 mạnh]

→ Giá trị của thuộc tính “Gió” ở bản ghi thứ 15 sẽ là: Nhẹ TH2 : nếu Gió: [5 nhẹ, 9 mạnh]

→ Giá trị của thuộc tính “Gió” ở bản ghi thứ 15 sẽ là: Mạnh

2.3.4. Thuật toán C4.5

Dữ liệu vào: Tập dữ liệu E, tập danh sách thuộc tính, tập nhãn lớp

Dữ liệu ra: Mô hình cây quyết định

Tại hàm chính, gọi hàm đệ qui Tạocây() với ba tham số vào là tập dữ liệu E, tập danh sách thuộc tính của E và tập nhãn. Thuật toán làm việc bằng cách đệ qui chọn giá trị thuộc tính tốt nhất để chia, lưu ý là chọn giá trị của thuộc tính sao cho điều kiện chia tốt nhất (bước 7), tiếp tục tiến hành mở rộng nút con bằng cách gọi đệ qui cho đến khi điều kiện dừng (ở bước 1) được thỏa mãn. Dưới đây là phần chi tiết thuật toán. Tạocây(Tập dữ liệu E, tập danh sách thuộc tính F, tập nhãn lớp)

1 if điều_kiện_dừng(E,F) = đúng 2 nútlá = CreateNode() 3 nútlá.nhãnlớp=Phânlớp(E) 4 return nútlá 5 else 6 Nútgốc = CreateNode() 7 Nútgốc.điềukiệnkiểmtra = tìm_điểm_chia_tốt_nhất(E, F) 8 Đặt F = F \ {Nút chọn phân chia}

9 Đặt V = {v| v thoả điều kiện là phần phân chia xuất phát từ Nútgốc} 10 Lặp qua từng tập phân chia v ∈V

11 Đặt Ev = {e | Nútgốc.điềukiệnkiểmtra(e) = v và e ∈ E}

12 Nútcon = Tạocây(Ev, F, tập nhãn lớp) 13 Dừng lặp

14 End if

15 return nútgốc.

Gọi hàm Tạocây (E, tập danh sách thuộc tính của E, tập nhãn lớp).

 Dòng đầu tiên sẽ kiểm tra điều kiện dừng, nếu được thỏa mãn nghĩa là đã đệ qui để tạo ra được đến nút lá. Điều kiện dừng chỉ xảy ra khi:

⇒ Tất cả các dòng trong tập dữ liệu E thuộc về cùng một lớp duy nhất (1).

⇒ Không có bất cứ dòng nào trong tập E, điều này có thể xảy ra khi tập con được tạo ở bước phân chia các tập con là rỗng (2).

⇒ Trong trường hợp (1) chỉ việc tiến hành tạo nút lá bằng hàm createNode() và tiến hành gán nhãn cho nút lá này bằng cách gán nhãn duy nhất cho thuộc tính nhãn của nút vừa được tạo này.

⇒ Trường hợp (2) sẽ trả về nút lá bằng rỗng và tiến hành gán nhãn cho nút cha là nhãn lớp xuất hiện nhiều nhất như sau:

⇒ Nhãn lớp = max (tổng của từng giá trị nhãn lớp riêng biệt trong E).

⇒ Hàm Phânlớp(E) thực hiện việc xác định nhãn cho một tập dữ liệu E, nó tự động xác định và trả về đúng giá trị nhãn cho cả hai trường hợp trên.

 Dòng 3 và 4 xảy ra khi chỉ còn một thuộc tính trong nút cha (lưu ý nút cha là nút sau khi đã phân chia tạo ra tập dữ liệu D này). Nếu sau khi phân chia trên nút cha mà tập D không còn chứa thuộc tính để phân chia, trả về nút lá là giá trị nhãn xuất hiện nhiều nhất trong D.

 Xét dòng 5, nếu thuật toán chưa thỏa mãn điều kiện để dừng, tiếp tục xét bằng cách tìm kiếm điểm chia tốt nhất. Để tìm điểm chia tốt nhất cần sử dụng một hàm đánh giá, kết quả của hàm này sẽ trả về thuộc tính được chọn tương ứng. Về các tiêu chuẩn đánh giá cũng như chọn điểm chia sẽ được giải thích rõ hơn trong các phần bên dưới.

 Xét dòng 7 và 8, sau khi đã chọn được điểm chia tốt nhất, tiến hành phân chia tập D thành các tập con Di, cập nhật lại danh sách các thuộc tính.

 Dòng 9 và 10: lặp qua danh sách các tập con Di và tiến hành gọi đệ qui hàm Tạocây() với tham số mới tương ứng.

Ví dụ minh hoạ thuật toán C4.5: xét Bảng 2-4 dữ liệu thời tiết về chơi tennis • Dữ liệu vào:

 Tập dữ liệu thời tiết.

 Tập nhãn lớp: Có – Không.

• Dữ liệu ra: Mô hình cây quyết định chơi tennis.  Lần tạo cây đầu tiên

 Tìm_điểm_chia_tốt_nhất(E, F) với E là Tập dữ liệu thời tiết và F là các thuộc tính: Ngày, Quang cảnh, Nhiệt độ, Độ ẩm, Gió.

Thuộc tính quyết định “Chơi Tennis” chỉ có hai giá trị là “Co” và “Khong”, như vậy có 9 bộ dữ liệu có nhãn lớp là giá trị “Co” và 5 bộ giá trị “Khong”. Tính: Entropy(S) = -(9/14)log2(9/14) – (5/14)log2(5/14) = 0.940

Độ đo RatioGain cho thuộc tính “Quang cảnh”(QC):

• Tập_giá_trị (Quang Cảnh)={Nắng, Âm u, Mưa}, khi đó:

Snắng (2co, 3khong) ⇒ Entropy(Snắng)= (5/14)(-(2/5)log2(2/5)-(3/5)log2(3/5))=0.347 SÂm u(4co, 0khong) ⇒ Entropy(SÂm u)= (4/14)(0) = 0

Smưa(3co, 2khong) ⇒ Entropy(Smưa)= (5/14)(-(3/5)log2(3/5)-(2/5)log2(2/5))=0.347 EntropyQC(S) =(5/14)×Entropy(SNắng)+(4/14)×Entropy(SÂmu)+(5/14)×Entropy(SMưa)

= 0.347 + 0 + 0.347 = 0.694

Gain(S, QC) = Entropy(S) – EntropyQC(S) = 0.940 – 0.694 = 0.246

SplitInfo(S, QC) = -(5/14)log2(5/14) - (4/14)log2(5/14) - (5/14)log2(5/14)=1.577 RatioGain (S, QC) = 0.246/1.577 = 0.156

Độ đo RatioGain cho thuộc tính “Gió”:

• Tập_giá_trị (Gió)={Mạnh, Nhẹ}, khi đó:

SMạnh(3co, 3khong) ⇒ Entropy(SMạnh)= (6/14)(-(3/6)log2(3/6)-(3/6)log2(3/6))=0.429 SNhẹ(6co, 2khong) ⇒ Entropy(SMạnh)=(8/14)(-(6/8)log2(6/8)-(2/8)log2(2/8))=0.464 EntropyGió(S) = (6/14)×Entroy(SMạnh) + (8/14)×Entropy(SNhẹ)

= 0.429 + 0.464 = 0.893

Gain(S, Gió) = Entropy(S) – EntropyGió(S) = 0.940 – 0.893 = 0.047 SplitInfo(S, Gió) = -(6/14)log2(6/14) – (8/14)log2(8/14) = 0.985 RatioGain(S, Gió) = 0.047/0.985 = 0.048

Độ đo RatioGain cho thuộc tính “Độ ẩm”:

• Tập_giá_trị (Độ ẩm)={≤72.5, >72.5}, khi đó:

S≤72.5(3co, 1khong) ⇒ Entropy(S≤72.5)= (4/14)(- (3/4)log2(3/4)-(1/4)log2(1/4))=0.231 S>72.5(6co, 4khong) ⇒ Entropy(S>72.5)=(10/14) (-(6/10)log2(6/10)-(4/10)log2(4/10))

EntropyĐộ ẩm(S) = (4/14)×Entropy(S<=72.5) + (10/14)×Entropy(S>72.5)= 0.925 Gain(S, Độ ẩm) = Entropy(S) - EntropyĐộ ẩm(S) = 0.940 – 0.925 = 0.015 SplitInfo(S, Độ ẩm) = -(4/14)log2(4/14) – (10/14)log2(10/14) = 0.863 RatioGain(S, Độ ẩm) = 0.015/0.863 = 0.017

Độ đo RatioGain cho thuộc tính “Nhiệt độ”(ND):

• Tập_giá_trị (Nhiệt Độ)={Nóng, Ấm áp, Mát}, khi đó:

SNóng(2co, 2Khong) ⇒ Entropy(SNóng) =(4/14)(-(2/4)log2(2/4)-(2/4)log2(2/4))=0.286 SẤm áp(4co, 2khong) ⇒ Entropy(SẤm áp)=(6/14)(-(4/6)log2(4/6)-(2/6)log2(2/6))=0.394 SMát(3co, 1khong) ⇒ Entropy(SMát) =(4/14) (-(3/4)log2(3/4)-(1/4)log2(1/4))=0.231 EntropyND(S) = (4/14)×Entropy(SNóng)+(6/14)×Entropy(SẤm áp)+ (4/14)×Entropy(SMát)

= 0.286 + 0.394 + 0.231 = 0.911

Gain(S, ND) = Entropy(S) - EntropyNhiệt độ(S) = 0.940 – 0.911 = 0.029

SplitInfo(S, ND) = -(4/14)log2(4/14)–(6/14)log2(6/14)–(4/14)log2(4/14)= 1.557 RatioGain(S, ND) = 0.028/1.557 = 0.019

Độ đo RatioGain cho thuộc tính “Ngày”:

EntropyNgày(S)= (1/14)×Entropy(SD1) +…+ (1/14)×Entropy(SD14) = 14×(1/14)×(0)= 0 Gain(S, Ngày) = Entropy(S) - EntropyNgày(S) = 0.940 – 0 = 0.940

SplitInfo(S, Ngày) = 14×(- (1/14)log2(1/14)) = 3.807 RatioGain(S, Ngày) = 0.940/3.807 = 0.246

 Lựa chọn thuộc tính tốt nhất để phân chia: Tính Entropy trung bình của các thuộc tính:

(0.694 + 0.892 + 0.925 + 0.911 + 0)/5 = 0.684 Ta có: RatioGain(S, Quang cảnh) = 0.156

EntropyQuang cảnh(S) là 0.694 > 0.684

 Thuộc tính được chọn để phân chia: Quang cảnh

 Xét nhánh Quang cảnh “Nắng”:

SNắng(2co, 3khong)⇒ Entropy(SNắng)=-(2/5)log2(2/5)-(3/5)log2(3/5) = 0.971  Độ đo RatioGain cho thuộc tính “Nhiệt độ”(ND){Nóng, Ấm áp, Mát}:

SNóng(0co, 2khong) ⇒ Entropy(SNóng)= 0

SẤm áp(1co, 1khong) ⇒ Entropy(SẤm áp)=(2/5)(-(1/2)log2(1/2)-(1/2)log2(1/2))=0.4 SMát(1co, 0khong) ⇒ Entropy(SMát)=0

EntropyND(SNắng)=(2/5)×Entropy(SNóng) + (2/5)×Entropy(SẤm áp) + (1/5)×Entropy(SMát) = 0.4

Gain(SNắng, ND) = 0.971 – 0.400 = 0.571

SplitInfo(SNắng, ND) = - (2/5)log2(2/5) – (2/5)log2(2/5) – (1/5)log2(1/5)= 1.522 RatioGain(SNắng, ND) = 0.571/1.522 = 0.375

Độ đo RatioGain cho thuộc tính “Độ ẩm”: Chọn giá trị phân chia tốt nhất:

Entropy(SĐộ ẩm) = - (2/5)log2(2/5) – (3/5)log2(3/5) = 0.971

Độ ẩm 70 85 90 95 77.5 87.5 92.5 ≤ > ≤ > ≤ > 2 0 2 0 2 0 Không 0 3 1 2 2 1 Gain 0.971 0.420 0.171

EntropyĐộ ẩm(SNắng) = (2/5)×Entropy(S<=77.5) + (3/5)×Entropy(S>77.5)= 0 Gain(SNắng, Độ ẩm) = 0.971 – 0 = 0.971

SplitInfo(SNắng, Độ ẩm) = - (2/5)log2(2/5) – (3/5)log2(3/5) = 0.971 RatioGain(SNắng, Độ ẩm) = 0.971/0.971 = 1

Độ đo RatioGain của thuộc tính “Gió”{Nhẹ, Mạnh}:

SNhẹ(1co, 1khong) ⇒ Entropy(SNhẹ)=(2/5)(-(1/2)log2(1/2)-(1/2)log2(1/2))=0.4 SMạnh(1co, 2khong) ⇒ Entropy(SMạnh)=(3/5)(-(1/3)log2(1/3)-(2/3)log2(2/3))=0.551 EntropyGió(SNắng) = (2/5)×Entropy(SNhẹ) + (3/5)×Entropy(SMạnh)

= 0.4 + 0.551 = 0.951 Gain(SNắng, Gió) = 0.971 – 0.951 = 0.020

SplitInfomation(SNắng, Gió) = - (2/5)log2(2/5) – (3/5)log2(3/5) = 0.971 RatioGain(SNắng, Gió) = 0.020/0.971 = 0.021

SD1(0co, 1khong) ⇒ Entropy(SD1) = 0 SD2(0co, 1khong) ⇒ Entropy(SD2) = 0 SD8(0co, 1khong) ⇒ Entropy(SD8) = 0 SD9(1co, 0khong) ⇒ Entropy(SD9) = 0 SD11(1co, 0khong) ⇒ Entropy(SD11) = 0

EntropyNgày(SNắng) = (1/5)×Entropy(SD1) + (1/5)×Entropy(SD2) + (1/5)×Entropy(SD8) + (1/5)×Entropy(SD9) + (1/5)×Entropy(SD11) = 0

Gain(SNắng, Ngày) = 0.971 – 0 = 0.971

SplitInfomation(SNắng, Ngày) = 5×(-1/5×log2(1/5)) = 2.322 RatioGain(SNắng, Ngày) = 0.971/2.322 = 0.418

 Thuộc tính được chọn để phân chia: Độ ẩm

 Xét nhánh “Mưa”:

SMưa(3co, 2khong) ⇒ Entropy(SMưa) = -(3/5)log2(3/5)-(2/5)log2(2/5)=0.971  Độ đo RatioGain cho thuộc tính “Nhiệt độ” {Ấm áp, Mát}

SẤm áp(2co, 1khong) ⇒ Entropy(SẤm áp)=(3/5)(-(2/3)log2(2/3)-(1/3)log2(1/3))=0.551 SMát(1co, 1khong) ⇒ Entropy(SMát)=(2/5)(-(1/2)log2(1/2)-(1/2)log2(1/2))=0.4 EntropyNhiệt độ(SMưa) = (3/5)×Entropy(SẤm áp) + (2/5)×Entropy(SMát)

= 0.551 + 0.4 = 0.951 Gain(SMưa, Nhiệt độ) = 0.971 – 0.951 = 0.020

SplitInfo(SMưa, Nhiệt độ) = - (3/5)log2(3/5) – (2/5)log2(2/5) = 0.971 RatioGain(SMưa, Nhiệt độ) = 0.020/0.971 = 0.021

Độ đo RatioGain cho thuộc tính “Gió”{Nhẹ, Mạnh}:

SMạnh(0co, 2khong) ⇒ Entropy(SMạnh)= 0

EntropyGió(SMưa) = (3/5)×Entropy(SNhẹ) + (2/5)×Entropy(SMạnh) = 0 Gain(SMưa, Gió) = 0.971 – 0 = 0.971

SplitInfomation(SMưa, Gió) = - (3/5)log2(3/5) – (2/5)log2(2/5) = 0.971 RatioGain(SMưa, Gió) = 0.971/0.971 = 1

Độ đo RatioGain cho thuộc tính “Ngày” {D4, D5, D6, D10, D14}:

SD4(1co, 0khong) ⇒ Entropy(SD4) =0 SD5(1co, 0khong) ⇒ Entropy(SD5) = 0 SD6(0co, 1khong) ⇒ Entropy(SD6) = 0 SD10(1co, 0khong) ⇒ Entropy(SD10) = 0 SD14(0co, 1khong) ⇒ Entropy(SD14) = 0

EntropyNgày(SMưa) = (1/14)×Entropy(SD4) + (1/14)×Entropy(SD5) + (1/14) ×

Entropy(SD6) +(1/14)×Entropy(SD10)+ (1/14)×Entropy(SD14) = 0 Gain(SMưa, Ngày) = 0.971 – 0 = 0.971

SplitInfomation(SMưa, Ngày) = 5×(-1/5×log2(1/5)) = 2.322 RatioGain(SMưa, Ngày) = 0.971/2.322 = 0.418

 Thuộc tính được chọn để phân chia: Gió

Hình 2-6 : Cây quyết định xây dựng theo thuật toán C4.5  Xây dựng luật từ cây quyết định:

 Luật 1: if (Quang cảnh = Nắng) and (Độ ẩm ≤ 77.5) then Chơi tennis = Có

 Luật 2: if (Quang cảnh = Nắng) and (Độ ẩm < 77.5) then Chơi tennis = Không

 Luật 3: if (Quang cảnh = Âm u) then Chơi tennis = Có

 Luật 4: if (Quang cảnh = Mưa) and (Gió = Nhẹ) then Chơi tennis = Có

2.4. Phương pháp phân lớp Naïve Bayesian

2.4.1. Giới thiệu

Các phương pháp học Bayes thích hợp với nghiên cứu máy học trong phân lớp vì các thuật toán Bayes tính toán các khả năng cụ thể đối với các giả định chẳng hạn như bộ phân lớp Naïve Bayes là một trong các cách tiếp cận thực tế nhất đối với các kiểu học chắc chắn. Michie et al. (1994) đã đưa ra một nghiên cứu chi tiết việc so sánh giữa bộ phân lớp Naïve Bayes với các thuật toán máy học khác trong đó có cả các thuật toán học theo cây quyết định và mạng nơron. Các nhà nghiên cứu đã chỉ ra rằng bộ phân lớp Naïve Bayes là một thuật toán tương đối mạnh và có thể so sánh với các thuật toán khác trong nhiều trường hợp và trong một số trường hợp nó còn cho kết quả tốt hơn. Trong phần này chúng tôi sẽ trình bày bộ phân lớp Naïve Bayes theo sau phần giới thiệu lý thuyết Bayes.

Các phương pháp Bayes rất quan trọng đối với nghiên cứu về máy học (đặc biệt trong vấn đề phân lớp) là chúng cung cấp cho chúng ta sự am hiểu đầy ý nghĩa về các thuật toán máy học nhưng không xử lý theo xác suất tường minh.

2.4.2. Định lý Bayes

Định lý Bayes cho phép tính xác suất xảy ra của một sự kiện ngẫu nhiên A khi biết sự kiện liên quan B đã xảy ra. Xác suất này được ký hiệu là P(A|B), và đọc là "xác suất của A nếu có B". Đại lượng này được gọi xác suất có điều kiện vì nó được rút ra từ giá trị được cho của B hoặc phụ thuộc vào giá trị đó.

Theo định lý Bayes, xác suất xảy ra A khi biết B sẽ phụ thuộc vào 3 yếu tố:  P(A): Xác suất xảy ra A của riêng nó, không quan tâm đến bất kỳ thông tin nào về

B.

 P(B): Xác suất xảy ra B của riêng nó, không quan tâm đến A. Đại lượng này còn gọi là hằng số chuẩn hóa (normalising constant), vì nó luôn giống nhau, không phụ thuộc vào sự kiện A đang muốn biết.

 P(B|A): Xác suất xảy ra B khi biết A xảy ra và đọc là "xác suất của B nếu có A". Đại lượng này gọi là khả năng (likelihood) xảy ra B khi biết A đã xảy ra.

 Khi biết ba đại lượng trên, xác suất của A khi biết B cho bởi công thức: ) ( ) ( ) | ( ) | ( B P A P A B P B A P = Từ đó dẫn tới:

) ( ) | ( ) ( ) ( ) | (A B P B P A B P B A P A P = ∩ =

 Khi có n giả thuyết thì

) ( ) / ( ) ( ) | ( ) / ( 1 i n i i i i i A P A B P A P A B P B A P × × = ∑ =

2.4.3. Phân lớp Naïve Bayes (NBC)

Phân lớp Naïve Bayes[6] ra đời giúp cho việc tính đơn giản hơn dựa trên việc ứng dụng lý thuyết Bayes. Tính toán các xác suất đó với giả thiết là các thuộc tính độc lập với nhau (không phụ thuộc nhau).

• Mỗi mẫu được biểu diễn bằng X=(x1,x2,…,xn) với các thuộc tính A1, A2, …, An. • Các lớp C1, C2,…,Cm. cho trước mẫu chưa biết X. NBC gán X vào Ci nếu P(Ci|

X)>P(Cj|X) với 1 ≤ j ≤ m, j ≠ i (theo định lý Bayes). • Phân lớp Naïve Bayes giả định độc lập thuộc tính:

) C | P(x ) C | P(X n i 1 k k i ∏ = =

• Nếu thuộc tính thứ i là rời rạc thì P(Xi|C) được ước lượng bởi tần số liên quan của các mẫu có giá trị Xi cho thuộc tính thứ i trong C.

• Nếu thuộc tính thứ i là liên tục thì P(Xi|C) được ước lượng thông qua một hàm mật độ Gaussian : 2 i C 2 i C k i i i 2σ ) μ (x C C C k i k e 2 1 ) σ , μ , g(x ) C | P(x − − = = πσ

• Để phân lớp mẫu chưa biết X, ta tính P(X|Ci)P(Ci) cho từng Ci. Mẫu X gán vào lớp

Một phần của tài liệu Tiểu luận khai phá dữ liệu GOM CỤM DỮ LIỆU VÀ CÔNG CỤ WEKA (Trang 27)

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

(59 trang)
w